From 5ddccf89134583096917672ae6c435f21415b9d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jun 2026 09:29:50 +1000 Subject: [PATCH 01/40] chore(deps): bump dompurify from 3.4.9 to 3.4.11 in /src/frontend (#12199) Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.4.9 to 3.4.11. - [Release notes](https://github.com/cure53/DOMPurify/releases) - [Commits](https://github.com/cure53/DOMPurify/compare/3.4.9...3.4.11) --- updated-dependencies: - dependency-name: dompurify dependency-version: 3.4.11 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/frontend/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/frontend/yarn.lock b/src/frontend/yarn.lock index 7105e9fb66..5ee5ddcca6 100644 --- a/src/frontend/yarn.lock +++ b/src/frontend/yarn.lock @@ -2621,9 +2621,9 @@ dom-helpers@^5.0.1: csstype "^3.0.2" dompurify@^3.4.8: - version "3.4.9" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.4.9.tgz#b036637b2df8997126b58837bc90f85dbcad6b2f" - integrity sha512-4dPSRMRDqHvs0V4YDFCsaIZo4if5u0xM+llyxiM2fwuZFdKArUBAF3VtI2+n8NKg9P870WMdYk0UhqQNoWXbfQ== + version "3.4.11" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.4.11.tgz#29c8ba496475f279ef4015784068452fb14a0680" + integrity sha512-zhlUV12GsaRzMsf9q5M254YhA4+VuF0fG+QFqu6aYpoGlKtz+w8//jBcGVYBgQkR5GHjUomejY84AV+/uPbWdw== optionalDependencies: "@types/trusted-types" "^2.0.7" From f70d3e68d8b593667b5662092c79414f5f324001 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 19 Jun 2026 10:45:11 +1000 Subject: [PATCH 02/40] [UI] Fix status renderer functions (#12202) Broken in recent refactor --- src/frontend/src/components/render/Build.tsx | 2 +- src/frontend/src/components/render/Order.tsx | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/frontend/src/components/render/Build.tsx b/src/frontend/src/components/render/Build.tsx index eff0e68b0f..f856ea8d01 100644 --- a/src/frontend/src/components/render/Build.tsx +++ b/src/frontend/src/components/render/Build.tsx @@ -19,7 +19,7 @@ export function RenderBuildOrder( primary={instance.reference} secondary={instance.title} suffix={StatusRenderer({ - status: instance.status_custom_key, + status: instance.status_custom_key || instance.status, type: ModelType.build })} image={instance.part_detail?.thumbnail || instance.part_detail?.image} diff --git a/src/frontend/src/components/render/Order.tsx b/src/frontend/src/components/render/Order.tsx index c9475d7dea..493a693266 100644 --- a/src/frontend/src/components/render/Order.tsx +++ b/src/frontend/src/components/render/Order.tsx @@ -22,7 +22,7 @@ export function RenderPurchaseOrder( primary={instance.reference} secondary={instance.description} suffix={StatusRenderer({ - status: instance.status_custom_key, + status: instance.status_custom_key || instance.status, type: ModelType.purchaseorder })} image={supplier.thumbnail || supplier.image} @@ -50,7 +50,7 @@ export function RenderReturnOrder( primary={instance.reference} secondary={instance.description} suffix={StatusRenderer({ - status: instance.status_custom_key, + status: instance.status_custom_key || instance.status, type: ModelType.returnorder })} image={customer.thumbnail || customer.image} @@ -95,7 +95,7 @@ export function RenderSalesOrder( primary={instance.reference} secondary={instance.description} suffix={StatusRenderer({ - status: instance.status_custom_key, + status: instance.status_custom_key || instance.status, type: ModelType.salesorder })} image={customer.thumbnail || customer.image} @@ -138,7 +138,7 @@ export function RenderTransferOrder( primary={instance.reference} secondary={instance.description} suffix={StatusRenderer({ - status: instance.status_custom_key, + status: instance.status_custom_key || instance.status, type: ModelType.transferorder })} url={ From 6285a11a6538d9a4ff86e68b8d4f0af614f607bf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jun 2026 13:47:50 +1000 Subject: [PATCH 03/40] chore(deps): bump pypdf from 6.13.0 to 6.13.3 in /src/backend (#12201) * chore(deps): bump pypdf from 6.13.0 to 6.13.3 in /src/backend Bumps [pypdf](https://github.com/py-pdf/pypdf) from 6.13.0 to 6.13.3. - [Release notes](https://github.com/py-pdf/pypdf/releases) - [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md) - [Commits](https://github.com/py-pdf/pypdf/compare/6.13.0...6.13.3) --- updated-dependencies: - dependency-name: pypdf dependency-version: 6.13.3 dependency-type: direct:production ... Signed-off-by: dependabot[bot] * fix style --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Matthias Mair --- src/backend/requirements-3.14.txt | 6 +++--- src/backend/requirements.txt | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/backend/requirements-3.14.txt b/src/backend/requirements-3.14.txt index 055cc4a088..cf7e17b69f 100644 --- a/src/backend/requirements-3.14.txt +++ b/src/backend/requirements-3.14.txt @@ -1707,9 +1707,9 @@ pynacl==1.6.2 \ # via # -c src/backend/requirements.txt # paramiko -pypdf==6.13.0 \ - --hash=sha256:558683ec9daf6b91c280c322c84c32f5cc216afd3eaa3a37de5ae88ae0c3b787 \ - --hash=sha256:de1294ae49d6956edb4e5c41527fb9e8716ddd2b120f2185c68aab784d4ffe60 +pypdf==6.13.3 \ + --hash=sha256:c6e3f86afb625791510b02ad5480e94b63970bb957df75d44657c282ecc52224 \ + --hash=sha256:f3cb822769725f1bac658c406cfc9460399043f3750c2d3e4650e0a85eacabd7 # via # -c src/backend/requirements.txt # -r src/backend/requirements.in diff --git a/src/backend/requirements.txt b/src/backend/requirements.txt index d524f45453..8f55c3569f 100644 --- a/src/backend/requirements.txt +++ b/src/backend/requirements.txt @@ -1513,9 +1513,9 @@ pynacl==1.6.2 \ --hash=sha256:d29bfe37e20e015a7d8b23cfc8bd6aa7909c92a1b8f41ee416bbb3e79ef182b2 \ --hash=sha256:fe9847ca47d287af41e82be1dd5e23023d3c31a951da134121ab02e42ac218c9 # via paramiko -pypdf==6.13.0 \ - --hash=sha256:558683ec9daf6b91c280c322c84c32f5cc216afd3eaa3a37de5ae88ae0c3b787 \ - --hash=sha256:de1294ae49d6956edb4e5c41527fb9e8716ddd2b120f2185c68aab784d4ffe60 +pypdf==6.13.3 \ + --hash=sha256:c6e3f86afb625791510b02ad5480e94b63970bb957df75d44657c282ecc52224 \ + --hash=sha256:f3cb822769725f1bac658c406cfc9460399043f3750c2d3e4650e0a85eacabd7 # via -r src/backend/requirements.in pyphen==0.17.2 \ --hash=sha256:3a07fb017cb2341e1d9ff31b8634efb1ae4dc4b130468c7c39dd3d32e7c3affd \ From 01fb74af254d29c5f58ee10e352c7e2bb13b23dc Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 19 Jun 2026 15:33:12 +1000 Subject: [PATCH 04/40] [UI] Tree improvements (#12204) * Hide expand icon for items without children * Add searching to CategoryTree API * Add "level" filter * Automatically include parent tree when searching * Include tree_id field * Add search input to NavigationTree * Add more API filters * Load child nodes iteratively * Fix dynamic loading of nodes * Highlight selected item * Include pathstring * Fix insertion order * Auto-expand to the selected ID * Add "no results" message * Refactor into generic components * Expand to multi level * Use async node loading functionality * Add hovercard * Implement same functionality for StockLocationTree API endpoint * Adjust spacing * Add connecting lines * Add playwright test * Bump API version * Add CHANGELOG entry * Update docs * Update screenshot --- CHANGELOG.md | 1 + .../images/concepts/ui_navigation_tree.png | Bin 25041 -> 41520 bytes docs/docs/concepts/user_interface.md | 12 + src/backend/InvenTree/InvenTree/api.py | 41 +++ .../InvenTree/InvenTree/api_version.py | 5 +- src/backend/InvenTree/part/api.py | 38 ++- src/backend/InvenTree/part/serializers.py | 15 +- src/backend/InvenTree/stock/api.py | 35 +- src/backend/InvenTree/stock/serializers.py | 13 +- .../src/components/nav/NavigationTree.tsx | 315 ++++++++++++++---- .../src/pages/part/CategoryDetail.tsx | 1 + src/frontend/src/pages/part/PartDetail.tsx | 1 + .../src/pages/stock/LocationDetail.tsx | 1 + src/frontend/src/pages/stock/StockDetail.tsx | 1 + src/frontend/tests/pages/pui_stock.spec.ts | 18 + 15 files changed, 411 insertions(+), 86 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c441b199c..10a4265b85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- [#12204](https://github.com/inventree/InvenTree/pull/12204) adds new filtering options to PartCategoryTree and StockLocationTree API endpoints, allowing tree data to be fetched dynamically - [#12165](https://github.com/inventree/InvenTree/pull/12165) adds support for parameters against the PartCategory model - [#12103](https://github.com/inventree/InvenTree/pull/12103) adds column-based filtering to table views in the user interface. This extends the existing table filtering functionality by allowing users to apply filters directly to individual columns. - [#12093](https://github.com/inventree/InvenTree/pull/12093) adds "read_only" attribute to PluginSetting API endpoint, which indicates whether a particular plugin setting is read-only (i.e. cannot be modified via the API) diff --git a/docs/docs/assets/images/concepts/ui_navigation_tree.png b/docs/docs/assets/images/concepts/ui_navigation_tree.png index 5d274452ab8141e4bac90050a0e3631cc067519f..e124cd51bfa729103ee9ae47db7ca374c39ef765 100644 GIT binary patch literal 41520 zcmdqJ2UJr{^e<{dzYhfbL_nIT2na~;T|s&;p@b&ViS*uWfP#QVdX)|dA+!((RS=LG zffRZu(t8QL+{EvH%ergbSJqqqx9)pcCu?%foHJ);&&=Mx{hK}csIRL=P037o>Cz=? z4fW@Smo8mRC4IO4x=y-c>@gTaN-p~tswrJ6A7EW3om_Kzrt|F5rOE`VQ(Fqs`QM)E z=02A$(X^Alm%BVl>@Qu)?a+As%s9|`Z89Lx7%8#6=DUU%(2k?L~kl9XDC8P&hPSgvW4f4t`Z zi_{>}$KsaIWpY}3|HTz@`s!KhHF7%g_VwT7w1VO?9XWkLb%l$Zwle(hUx3%MD+`r& zU3*LU2@sdzB8YzOTUMHA(!pz7^3Ab7eYvvho{_b6HiCuRqHnA|Bsn1}o@7aRDW%wi z*PE1Ey1;hm*xBKnTFE6!k(4-I@_kRGeW#p+aw5);jH0wOfVHpEtb><1LBfB^$duW< z>~p-g9Jv`y!v-lUd%|RA|H;6_Bsq$Pjk$vV&pn~Co5-KnDJYf?x97kG?a{PQ%_QD% zqFOww0Tu$F8edpgIL2Nj-`Z2WdrydsMs4N<+5P5vecxq+%wQ`TAb>6b`mcIpt3dKBi(-|Xm7j4wQImC_&kjpTjo-OKt1nD zV8@p*UX&*(!f}e7a&WG}IG9e)kD!R_)h|0@A~zH6$*-6?@l#P!?m+nxn#Y5Ul@$hl zQO^zEIh$orNe~EhOAb*&MfHv3Z`Lv>qP?My$5V_wam)%$eJ4Ojl%62AO((icCtT8` zkZp*C@XE;Fz4_7dIQ5CRgBJ?HM5@*c3f^ zmKO1y0_k>Ppkv)=guHM{a%Z<`gLEs15=k|DdcQrI+Q8GZBA%@mONW*#CbEQAN^JX_ z9(u{|PH1UbHJN}DF~sXu45o?Sd&YujQ{9mbTW4Vhlf~21FQi#%NCyC7tU)Wc_0%>j zM$PE}a?Naum$Du2p%(xHoFl2ahgq>rHIdfg z8%zMmowEF{_~mY=96>KGQAt5PvQVLhcy%yp$`f{-5P~Fdd~jHAywNw)9=%%CD^ShA z=yNomvU+j8c~RCe--e-&Mg+AuaawkZ(qSvT9Kz%(%4_BRf${4-2c2J~7ArS(* z*d|@ET<~VA9WecQ$}da&I28_%hp|tZyTC2s-3PVvM_QzMUBfh*(>00p(1|3F6+ z)s)@~Srg_rt9VM!n}}AdQyfp7W4!+mA|<|^;OA>@?`doP&XqpVw^VB`7>he&gD@tq zV(2pGpPSz-zxfVSzt&J0my*f+e_uZqS4J!flxO3G=PB5`(W>F~_sn!O12aDhc}+rq?+(3lEO|o(KVm z%ZI!5=Uve-N_JY_B}O9@I82$;9D>N~vk zqHtnZ+cqgH{OpR$A%1=;AiMeN4KbsxqTFydP0{(ToBbAFONk9WiC!Z2t~@hpo8mZ~Ye#5PV7T;O&i-en&W25da~ zCb2ev%T}J+q-uV?O|9%VKJVviv(++18XF#c8hti(~_j-UoaaShaR z%yUo+c)80Q=|-h(omd`J$^>j#{owBu6^kKOjiK_Dr!7GF_tF-F=FW~w zX&;r?_TOp}1LZecXXLI;(0NnH`mGoK6MR~9SG|7U2%#>m;iNu&%(5!!K4ip^jUTk@y2Hv^RvfJeIZ({Z6<@_^frBSA3qm#; z+sD=$r9Ce1LgCGZuC5T8dvZ&r3K8d_VJGWIaDi@?OsUV}Ksb@4e1{!UtcpPJCLH`! ziCM@kfx%sV!RV!2brSOM1`Tv+(BgF1{`KdeO#qg7h?oHfJji{sx%sQdca^v1JS-hk zR+1>oLeWScFq8ah^5R*rZ7T1ne-8Ue!8i*;)K67(`94d&N9*Zs0Ss8N>}i|D_cQlm za@05l3$rvcNzZ%Dqp?tP)e$!sN}XEwjBhADkTOQMtvCr&W5TJ^B4}cp6pIcOJml0m z(6zR?TONDIs<%7hBjBZ|o|%Wxsca4x?&7&zj)$w27M$2pQ&A)If)Cd7Z!?c= zekchW|=PF0L{{HzT9RAjmM}rW4;#PS~y0n5?EjPlK zTlr15UT(3od2IEvOjLrV-#i7zcac?8%16VuI-;S~BzQ5-#l|@yk?yxv5Ui&@+{4y& zrA%Ul;I!L3w{o@t?`S3q{VZt5fAdp*vDe^wJ zAeQf(?TtNKf656A0sN9|wblsh8mT!*o$x3(z!_XTt(i`FGI>4#MEgDVpTgN)*H_9h zhwi)LAWfH7W7y$lZz3bkzGu>{5aBtYZH1KMcc{B|9fz}D5l`{7GO2ddZxvXFw5la} zW%0)i%hIa;*3H)Gh}??37Xw~IHl*2T{gFybex#<18cBAUwEY?4gR$r{EWB)$8gISj zS-Sg=(8cMZ;_5D15y_BKNm5MOSFhi!V6eG$Hf9XS2*%0Fu=PlR;l+yMaK*;#qLk+D zCk%(Ra!e%ktP0h!Lc66>Y&2D&Y86I}Epl9eQXxm3dD<Nd?_G|I!jf@M_v_y71?|IOx`GL6_ezCMhKh@ln_2~%Na^qX9 zF+FUvu)3nB7*Z=z-qp^9`mo;H-OlE_q0~eiyGS+e!R& zaowggV;sx>ik1YRcf0Q9Cnh+ZB=H}4rTMQ59EWTu@eEtoN1Se}S$TEPN9Hv6F6Z&V z8;9Wi+jCt>=_^4Sf&v1%^n47HdE6RW$xjBIa>7gwgGQ?yT=C^uHW^e8NF!eUY&5*z z+-Y*IYRMb*mNhuv^!@p-k%(lpylu2oES<;rGgA}3o5>WwGq>uhUCMZe#8937m$4K& z=GleCip1-zb3ymKh+B@?D2E$Oenl1TD>*DHB3g9_S26E60{`c)8_oq6PsX4W8BNII zp2vBv6k*#>`&{G$mZ38?rh$Z@_|1BiT8Iq`G?^piM1EKLwDYn2FCJ1O64^!fes@_= zDK@+n7#wpFOnIbpZkwQ&^@VTgwoU`LNs3C4`-waYHJFj1Ie?`6{m@qHri#G>3{Ap{ zFwZ`>)o9lR<&Fra)eC}Tw&c{swc?5KqAi9|2EBoUYjPfwa~eA0hbUE*tR}Rh!ugEM zCO3y^g%OK2s=PvB<;&X(ce$>*i?Pn&m4(!{V-11_o{l{*xkA7>TbftiI` zDGbdmpWAq?^1P6kp^%6&n1o-LlW44CT-ENUb2&E>e0B|rs;bbKW-7}Gm_L56rQuy- z(;$?Cz9$bf;g^Y0?ir9R%?Sv0JV`zU3Z2YTI&2EsZ{=6KNJVf_dp7ruOHv{uQVXEx*2`?eM2VZ6|R#(toQP{3prnymD zZ(yWMvPB0UvmTA$X+NQ*D4ZDMHDA>mtbMJQL&Dc*C(^7P3|n7}%@#s*s=ZGSoQOx$ zyHlpqJ2>h#OsNWguT+6~Z@}`K0MnAmVVhfGB=344|E*{J;SKboDdht~eg-Pw%Oe$B zDXda3&Ja-{#Maj{bRjQ1`!=#~wsf8~ljMb(TKOeehY}8Nb|J z35G?)wk--58s+?04kMI~WkRfrn~OM24k;%bd#BoD;A#ne62IpfoRC1@p?fee3ww`-*~ zKRFs0MY9I`Wjl%5kXn`)cY1ni6xDlW{(=1%vrw^Kj`d;q(y!c}o*uBUYUf=C2L~6@ z>E&_Ys9$E)4#p`hnN)1xIkU$!<0<8x^TLfq+Bm*m`rlhrX-3H>?xr)sA?vm+Tel24 z%n#*F#r9gP4!&ZeuUs3teaI?WHpCfxcto0Y z=kh2rTuhCY-Z+hCGC<@pW46jZ2dmg!sJvG&N3@Jca5bA0GCpy9q(K9K{f+>wytO$! z@ZuM5TwYUhBq8=G`j=EvVnN$9Bz;tE$^d)8Cv7Y%W=7qvRToxY<8{Y`!rh3!AaA1% z^`=Pfm$lD1{Ka+rZUmFLlWYbx$@~p(!|@kJcLmt*`kH>6se1Yx24voCtA;RHD@W6? z<0`nb2jBE*gQ`XBK&_T7;bAi;2KlNyVq!I0KF-c1s&UMK!=Qd<0+#O#X5EC^I;&?b zE-M?)C?1##aQVr7BJLEXYwOu7<8NqWdJh-7dlvEf9{_L3Geq7uLj*V?@Gy`#^YRVC zhYo$^3B`lm4*0=QWFJp&_1>)MRK+|s?NvcRphK-qgKPNr2eO+5?xA+E+=;>z(%5V}c(Mk20S<%h4)D2SY4xK42 zB(fi@MAnZt<;Zn4Rx5uud1!dCkDwy-HeC8eyf`$k4xh3y+xI#Chx(kL%74fS9jTMp z=;pbZL=`SwV#|IyYs#)}=5V2p5?TMi@JbFFfjK9HtQVeB?Z_#DzS{iEY+Fy zKtjlc#{@qjl;IM1$}F?6B`m|djv_L8@$4HPWO*9|dQ8G1eoQS^B(D}3!Q3kx8%UY{ z{>F0e3G*?war^9Y+>xWl-*!)qPpvPmuiRb#yCzNzMlAipMfCUf9`IYL{QN z+lb6(E_LZAxv^|)o-5;%S#cu{wAYjbpEUABJ0<=w*O}flCzx=tdp6LvDAE+JtC)B1 z0%))n%wk7Eg@At6+0m+kbGzNMbZsUK@MFLHg}Ud~(%)7WNcI};-jfiMpT+OchZ(AM zd;N2!^jM7;=HtkNtl~+`$!yYHqZ+n>x6~)t&A7azY)+mtb}LSg*3fnjoBr0thzmcR zJq$lTr3Fc?w^}dD`nz77Uv&*L=L2DR930q&AXrdhAmW1X(V-j1)JOO_i&kgI$?~C) z-3v`&4xcduA0uE8t{HlMB>yqHAZd~_M}P{7ty(wvru8#|lM+QLnh{C|Hde~rcnq)Y zr#A|WN%Vf(ja1MzOs^zu@n{NpA_*A&YgII<8Q;F! z>=u?%L>M1}Cq0t?Razbuz!M&J>S4nld@(IYpYN?2TM;JN3&Y*caxN!I%7y!?6@Uf&y6M+0KIOuDAHE}YG*Rz` zB7rM+t;_+G*=oLl*+}hAG=m{$E3Tcb$Cr`9UnK3rWu<`fFQE{P{`)PP&PH&Oh@tmh zjQ^v@0@~Y};I-%we5GyW|CCDdL;)E{$r+UmR$g!*D(zvFE1AQzu5upBr!4C~$Hr*B zVt{l9bS}-E0F$LMj-M8zfQJ!o7!CnT9T0saAi6!bmIy70IQa_^zw^HSd)DeQLQ&jw z_(NXAU1uP)%6gSCe;i(7)FXW-2o^y#iI>(yD9fYYGDv;>Jcr63 zks(d{)&&du@me>Fy5rRhkLFU@&Bkh>OC;WSB`aWR@G7m`eT|re1pH8;*4Z&*#i|tP z36i72y;XxZ_imVs+}v!~RG_$Vqj$#h=Zt5GVWDPZu0EK=S{ofs^_0(%@4hs^Zs8=f zyR+jQ8ri5zd1T0VTH%YZV&e|4`IY5wEho-=w4*qE$ToX4@WBs_~V} zTP8L;+D9hqe_-yuVf3BxUVlnnOn{00S#x+z5G1|h&#FU<&Hw(Z3IC55L}r9K?}BF1 zGzkdP5L(t6hJPvkFFADYx1nmd0kHz)b|S9AWmmh<#K zeJO{=?o%a0_D6b9xWV{{BW~8G$`0>-*68?dpZzDM`Rv9c4e@qRiDTRfstiDdg&B>H zkr&4*>0lCW@eKdOG*FUDoeOu+PmW%;cRF}Jde1}nHC%EM4y z-C=z!D|a)(%u)Vk=$h7<^|0cZb+3E?6S>=-rtvaf_BqIIinOgf(6Pc+gv*1zD#fv= zE+@O=wWjpbD+5{(ALVryobge{VMoL(VIl`0or{_!aY^DgggCiMryEJJuj^l7T{R3> zO;UIv?rb1G;W*~!%T*%`;DY(7=31Gcr+f_OB^? z91XdY*WUjK9kBmQe1vdjaD(w0XdCH`hfOv6%hZME*E-4?!!#O$EdwHD5FYu8HRNvs zo`~mKi88^KS&^Tg4uD%;>${qkZK2Dt`rHhvY0RBh^vI-k~~pnj<|Ut{uT zN$?7(&AYdYxjVDuf{v-iND$=2nChGm&Yc*70h(0JrM0+rzulzF!Ji)Pb{vQAK4U{l z$a(3rB%gh&&p{t33`^UHF2XULWnaVlV;GjCOZ)iw!~>@A=?VdnwTCs^p^FFU(&&@W zrA80&gJ?II-@~1A1tQ3Tm0ox=_NGSzI((u?`vOj0mVE7FC~(Db9XJCnm}Clp0XWCz z-7Jceow$Z|4G_?75~+09?&^kC@T2S{Agyf#NAo6w=m8D3bR7~fDDZn%Ql)KVv#$KN z(45+gWC48oCrfE4)*v>O%hjL-!pkcE4Xao-lx&$3W$kzY!lYeziUx@pM@>VD)gD&Xs8x17!QPNC+){XC93a zDRL==4rIqsVxdsY{qS`ePkq_iV!rjy2F`&cmTycBr0cb`nh6kP+d)*h9iRBelA`n( zaqKq(H|c|QOuT%wuZV~y;+^8@Ie)CAciSJCHkA>^oi zM22eCKPRSq&F`VMSVi#xdCP+eT-AFBO{!Elhn45*R#std7Kkz%2YYU zGK8OHHET}7+LQn8x3lnfMt^*PO>ilIgqv1_)A4Yw;wr!U`6WiaP!rebotCu+GXQ|b z&__BPi>ptPDWdeY9fYs0qF2N1%n$BOpSR@Cf5(ei@jI_UKc=Qi?>i>~^Z22eVYWBT zNg{c2w@ORJ1sd+RDM5KFl|wX!*3iv3oZB*vE3(#IYxvV>POmy@XQ!5u3g+teGUM|H zXOeL8+@0A9)4y{kCDoeP2$&U5a>tCVNvHDXTb`kQM8Nx&bHZWEikqg*1(~l1#Sis( z11b((<0zS3qzd^sBGi?o2%c{Zqzki>tDe@wYTAyoIeWNoqB4 z5APxOc6e`(&YmYpi|2a?lB#F|u5mmQ)J&7sy9fonwLaN=q?04A2f|%EB!Q{-{$3=W z2tpd~VlHDh9Tqdcd&8Yz;JmR~qh0;wALlpe`zozxJ=JAOzcEwO4?o(1dew0&+_P*k zXknG0OdySu01e|5==c)tHa|vW$nW}iuGDW&^`2hp3g8oRWh|xUxn5|3hl4(rF9#N$ zpLSWh(%}t>t11xh!WV$@J7vejhgga7KRKw}UG}|2MHH3tLdd3`qQ?W#k*fQ;{l9K$ zbS2iKQT`w=iW3kHbbFTlu}=*A6j-$aSpX-7>C0X%llc=^!KhhJnM$#uf-^v_$}aCW z%M*W|1uTC#*&JFA3xTW>vy73tZW>^|0&k|szIQ;P9Yn(6Sk8GlDd!C8Z?EAEF!;Xk zIG5N4z&>D`Kmjw#Y$9H^B*Q0ddHTLyaHQR+3H^Fu!d2)~YCfqi-S@!FvJy6ur%Z09 zXKrGwo92Lten$*RjcBt-xD9?UQy!~ui3N6w8Ii8yikzlX{oO~(s9W4gOEv)@{Q22f zr5&>N0;K|#*Z|a)7O1)j7|q?NKH5QjtUQUZfgq-NED}bSmYfsz=H3q%-0+*Kj zD1o>gIdvv*gucbWJ=`0ski?`6_*#=}A}ScVFRgqhGr*FYH=41Qf261YXna-Wxcm}d zsZty>B=ALwKl=zAHZEGDD66NIz&bRro{@w)`k>Tgk(B6vQ_red$yMB>eP!p`sz-|R z;PGS+^q)eRq(ZxK6W5Jdzp+$v1M1aCh|+5ba+3uF9MWcb=5H>fc}5!J*pNg+qN}Y; zs-HS(E;zV(M?rYX-9*J9OnLX`m#3Sr_KXBPJ*kSboH5W;Z!}zYJ+`jZx-$rADhFAa zV&CaL205kUUL69)X|we`Va|SFKziM2OgC;@%ON7P1e)~`+ zVfJEZG(VLV^2XcssGk5p60dN{pX>~iAdr`Cf2{N3oA$eQWsy!VJJM}1618cF!$w(f zRz44VXxX&pcjm+5DV!_0Ay1i{>ImBZqO?q)xno`IIfMD1jHCa2>{ffN?<;p4;xF?1 z^am3C{ACwkn?qH_3)g!d@4oqC`3I){1)#>H%b+AT*3MKP-Kgb;eb>!5?{H)Wm=qLa zNXk=D!BsJgcP9TEGSn(fc=%^hy#9|EqlW+V7^BGlkT+;d0Q3*JUf)ZsW6H$%#noox*Ny^kes3z_&?{ zz4kFJzgqN2ylj4Gtt(b(VW|H^F#B^*J7}!hNv{?EV+z-~NZ6;%#;4Y|EdBBV=>%bb z9ELs)x@*JHNC5H=T77(@C#)6IaZlur_Yg3f_gCsed-7m@S|2cYP5aDU*)e-)G2ZZC zM2I4U@h?i6SipgSPg1s%+iFru`KC2f$@@-~Fy6X0`tdWBe)JPyX-$7BKe&M3ZtRYL z0_KO)e0sNh3`2FdxtwMe$2)mK1Sn=Rh3BlnR7@zhvh6JugD|Cu+1xei(D{Z|yFDv$ zNkJ0a3qdZTD)$gB0d zRip2PCGX!bx5#vjjoA#i#<8b2Fo|MXG&uZNB@BA~8HgWCJ)eUX&rN-h zTG(-}?sflF)PjHp7<%MKVhKoxrYph@RbJvDS_C*2e2$zrAdJZ{avj!Coks3 zHMf#(`4!%csgJ-k0}E5sq<6qa(=$r78vhN}!ee$U1N593?tj+hyisHqgBtRQqsuRx z?B!aSl2|vMJ=SFUiiJL7k>8qe$1VrPPHa3!l=*6d7UT5~R8w36yBW!Yw$8Ip#kn`T zy=ZQDS39dE)OqD}UU_$?3kuT_DAUkTHSC5j*;fxC&wA|X_?b9$cKF3JRFUGk-BNZ@ z=_;cN^z|+a>jgp_(mLaV8KJx;>BTQIRlULP>P z;rTpbJQ}L5&a<;^+Qw+4He~Z|Xcr?Et-X68VpqkO_GP{O(<3^ZNAfn5U&^L<_?kJI z|HQ|~sbEpYk2RpRIPZnrU}r>~lji{8rU>FueqC`tu*JWgYke4f7Qw{{bOGmIjpL|D zLi>w`O=*gsrwHH+;?|ur!Cu6Sc~he;(Z8vvXgw7|`WD~4{A45&!{QPeu|po}L7s#C zFWkp7U>P>&sx4~@Pc$^0Z*O8OmzY!`x!iU{2O%xuH&KXLjHDP`p2i zc^_*Aob4KP@YwJvoIa(X^G)+m$V-v<-8;I?4wNW_=e-R*e*7GEFAPA7+~b#J8?UKt z^X$(NR)>Xl=?f`zET$Ugntv+`G?$!Yeen$o*Vb3oI2y0L z6Sdenu$2i%0o}3;Nnr$7&?zOGoJ~O50vjeK?E(vJzflr^zb0O8Wnt?V<(!MiN=Q|t ze*9p||5vM`L}HDWq9ASR7)fQlrdr7RJC)I@PR?{{wDwdw;EsUm+yzQ??%>$ptQg~W z1Rg83bLxFHEA3M9p6{w$$}*b`Ov{4jDa`cq>`NBS9{hRJV>t*X`{f?nLNyIG(L63sj13d={ix(n0)DHd)I z>>Sw1R0ft3dUIUu_8+(%1%7^+X@0!jy(+#W3TpSM-fvH+d0^uzd#ZfaU}FK;ZMrr- zTr<3wkIj9@X@z|YTEP^0aiYD+ri4+6WZjlee0+C%33sA;_jMw;Nz8uvMoDj$;W^{5 z_*_j9j=AK7dJw$t+QTBcmJ?Tvs!RY|f*IoRb^SO^cpvTF`Dti(Qh|abkZ;|ye33P; z6WLhUO)H+5SQu$@1L(fE#&1*q3~Y=H-)4Cu>NtQ!{x%d zmya}dxtrz~8GINNAwO&j_39S{LxGa!Xl|#@HE8FmZnI`p#_)#<0?-9|wIHm6q7f0@|= zR-q@U>@{el7I9o`y|);{`&dgce(9UOY28a%qRHk|7G{DTQfKQkj}*{1r1kUHJlbV9 zHr~};nG}DPrIvmE#Cmm+(OC)Y$rA=~huQ#aE3+EsV!?bh?^I6%pU=p1JAdDOgI7j$ zFlG8Iv@v2tWsJ+W%=}i?UFcX$0FuoOrUR+A$Ky<#wQk1;h|A&S2oThN{j%m4%ua4` z(j6{`h;ZaebWn4((W_KQz+uYXPi53VusXXWO_Qm4zDx-UX|t(YNeP{L26z8yst+v| z^RaYFGH@howt;LvJMEDdhTt#8$9yh^1}90~Tw_3!`;z^kGF2Ha<{Uqyn!>Ukh->E` zUUpn-6Z;Bs^Z3-QW8vIM^FcCB>0Kj%(O!wABjd6iW4f4Dw0sVChOS@Z`dg)bzl#wQ zGf9#Oi;?K&J42b-XJB}`i!6GXxqd9mBfsenKW;`c9l1eY zC{*}nGTkEl#Qf!Tj98Z68GeZ`wCB_D_I;gGOyKLjlWD$jjO>4X7(4}<6MI0M?SGBL zXIP4MKcbN8O6nd|1#6_+Yx}QQ6zTQq(>?MaF!SpmMVZM_>z?7#pM*P^W&U7wDWm!0 zfBm7>j(7jx-Hz}-!}R}y9Tg6?-n7!J@rE|?To$rq8MJo5CMf!>($xHh%(V2-8gt7w z?$;uDNf>&Xudxc@H9E3`^rb@$rPm@R_zLFH!J4sclg0*D;+IP4PC-Bl!=N z=V8p;&eOk1D7{-=F81$9;jZEE0X9xSp~RH)ENiCJZ=JT^Bi-J%GxOO_^BoJw|N4sy zO7e8nzRmy(S^4i_&A)ul7T(is)&WqiUg-_pWd?Xk8PC@;ab~lVWbryyk0eu4JufB# z0Jc9T8W+`DKbzkYkld7h7}P!=vC**dkSYbtbpY7&YZvo!h~l*gZkljMqJH3iRU&-E z^FsJ0CHRMj9_VS=G%ESc9fSHNsAWu=;!t&yE4OX5xQCKmW=~=tX~dC%`=sWFy}cOi ztx$i`&sUbdHJ_NyumuKc)ERZ!vRLDf?nn~&702rGXGm$YW&BuOF68WLG+e}Q-26~{YsQ+g%7jdF);T9Nye=L7E3GAs6pu^K zfqigfR5)+X7q%={SWw_RHDuLudaA3!tHs`OT2y-?hR*cQD3917nRf*Kr%H5URlFbM7*%m*0l{CPKj6d9ne7*J5a zpT5VgH$tpF(}~N;5mZ58;qMS+SFyFD%<{T+(ruB5(XhkWzf*iR9@kzJwg;aqxm^q% z2nHA>I`9hqj#6AL0)kCK;S`aDv3vMjc0R2y%zN8P@;-nMHaXu)+>Z}F4BKS;?~4jL zt2Ey^=nK_ZW^qW`s?)9N7fKb+^p>Nd|H(j4gZs59m{d4Z!b zQfY~j9y=zU9B=x(!!`tPci_rlo_Hd&$E2GBmOH&c%Wxu0b0f4|GGzc?CRoMkhxzt^ zlRw7TDqwOFpgRwmamuma{oF?m=L3UY4Q|Tkd_SwE3Ql*Hksp#7KN{V4T2&B3z`Ks$ISb! zlIIG`2N^UF<(ioKu4>=)5x!Dfp(|h#X!_`}fC)9{{3ZeV(kGRg&ex%}nc}-|ibASX zOG)4$G*}eiO$=8LpjabYt?8F08&``$9Ys#8vHD=l0VHZZWMRkGL3h{^Rl{$?A@;9k6Xcg2QllPUDQbMMn-gGFUMR@DOiIJIqqQ`SPs93qz?R6S zT&4tTXlHnWaS=~g!lsi3w(U2##%&oqTm8|gEWJ(c#xU5BCOHMAI{v8MRW;N6@y(UO z=o_k%8^XES4L%uZvSH276xCBM z2EA(njZNjHxGe@!)%Jdm_Q}-VE4b`sxSyG@H=^c~XtnZIiQGN`|7(3zrFbJ|hPlMr zMhG8NjVBl6;ivP#kf<84+MsxII7dDq^VsF=^oq_BlR%*!){O||E%SPd+TVbc|NR95 zY-#9(%WV+OligzyYgQ4UJ88cFO|s&qEpKm*9S8BJ{xX`;#AC)+psr?RGQQ z-Cqlrm@;wRFWZ>sF}0EJ_~2-)X-zb&N=yw4p$DiKb?>lOf(O-!W+ClrQHL zu6RCYA>KPG4WE=&Myeg&+v+oJS#|gG(*$cZv7@wpllMJMBYSN>3FDMnC4#&mb#KTyTufp}w=>%c56-g~7qu|U@h4eppGS{?6UZo$aoaxA}to;HzG$b)57ih3J zh*r8^(;g8Czc%;iZt@X~LZ z*54&F@t%~|v>UX^yd~+#MbQdW;gVl|xmUKjtoC`U(zRgrEgM9C*F>kc#w3}8LNP#z z9Axvf^$Ar2*Qt@{PFdlb`ToOVuC=OUazC|p6qCRhDcGTM-Y*ve0ciE;4z^55XSpD6 z#zly$j0&V!;vj?u97ke0$oC~78U;iBF;-85j5n@0k^&@Z8wFDL*Rdu?=@-Zp-LQt$ zJOkz?A)E4oM^OlDz-h*2Vwn|%o*9%=W>Yxu*4;@G z(w{S3G_zpnF_#ClH+1nfeoNpmvyGz@^W0$o8NqLc2}2rQw!e*S&foRy*P*=y-lcKv zz|5@Nv#_xJK1C6u$uta^(fREug|VwjOi?h+M|CmmQ~e=OZ63FeEgSQdER^9eGn4cz z8-^5{vzp&+;ty_04O)Ek3fln>?aSA`N)L4zH3Bu~;lQLOu}U0=2rTbz-| zmv=45S~0Ew)bc9Wz)Vq;4}Z5>Wc0a~>R`8Hp-qE%kxlBSJC5KfUD0|4z-Vk#`rTr* za3f74Vfejb z`Eu4Bj~kO*pQuT?*vT)htw{F59UZ)DzSw6D+@}-u{bJLyhTatW0{$YC?sX%Sx9`!{ zJ4@-TfrPz1>#zG9X9*78!+pi?a>P}f>W1XTVF^Ke*oXoy$^K94OJd+&vnW?C&TjQV zuF*{`E!(5|l#Q_66q@dZVKG8ZfiTw}=JgW>cWC3fDef7WRLb~x5W zvXXt7x=Vkh`d40$dwXkn?bXy4m2T%N=1H6sC!M7C*Wz#QU)Q_&T5xnfr#bEvv<&{8 zz8q$i{CTg5iIs;#CH)!U&ZdF(_XFO6J2yMKXz`?Z{>{~egLfQS^<2g9>4`jkjjC5y9lM*EjC<8Z&ZD=juhwf1J?a(w zf`20^!%}RYnMDwK^CzBUkrw$gIq92q@Q6=Nne{<~p8pqXHl)(gz(DW|br;DlN7sc3 zdT^d!*VQa~dzi^*nSfW^JQi9E!5({-#E%Ob;5z|1U|GgZgS^^^q1H>vrQr^5nKg&D z8)uR5|21RTi<&I^3zQ34?Rg&s-a)wa`hyBPc*AC;pG~H)E~Q^f4)Bb0JU;+Xv;VTN zqGKizAVOFs!!h+kdMVLBH`6g1jj=po zw??XEGi&j(2RwdpwdxQ*z{^s!AA=FHnc1xOQRzz+X-=2n>#$v(fmC7rK>!pw$$zjk zD7@*iKPxtmd6l~w^62qUaTZ|m_;QO1J)aDxhWU-Fif_yw0YGxxB|nB`zTfP>dlv@5 zjxQ&N+{30GID))@@vgOX*7CPCSzMU9Eg+2W^3q>Rt9!*E*@LS&eZwnZ4IRoKZcO zsd>o0b3c+tGw87K6GpA5Xwtta+tOG6i+tA#lz&u&y9yD3HsQ}o$*YtHS;%HGIjQLV zA{%po`&S&(C=KD!H+ZXF^nz93t`jk#(z1$0T^1H3cZkfmQUX#)wFVpRtlC8E4cz?0 z%hncZX`03DO~B5!INW}wjL}@^Uu@t_u%Sjf`(o>RN6sy-l)IVVk~4R%;aA!dBp%zi ziJ!JdKyAid!{3C507v6%>d?gVvM1es8B?j-CFO3cv!)rz&0U+-Iqf&J&V$M|iG2c+ zaezz&*~Cks|4Ma$wd+qZE{<0HjvpLGXbBL*mjsf61IiwizLD|!kXZ9fRFT&fP6uUa zD6KXcYTM>?Pw*~JhELp2@@xQg_SGMc0-d2O*nXe4%n?0wmI7$~Rmh>fsF;sCsWPd6 zUZPKP!I%NW1J;`XHz$F6t=P4!!i#>v{X1m^a{Uou;9B*V#^wefkQ}%9diT?7^M&-K z?Jr^ThLDB6QBD;aOnZ~==E6vulaw0g@>KnD2g6vmxx6*fpWVEsPV3it@XYpI=_H6j z*2(HS--~a&+?dp;oDqoZoP;LSvL1x&mlJoX#B!bL5)}YQEF4nN`S;3L0}{pc z9O8Pm!Q8S_r?)DK{~vhKkgj1K32m(GsaEjs2Ubq&FOWDi===L@N>fzPlnLoI%zPx@ zgSe6Y?I(nY4Lj8&HM8(uu#ARn4{k94Z)*068|_C0CH0!yy=BICfCm5d*KnGAyyi+_ zaa708QvP6K&q|Eu5`^qx0GhsRoNv%F?=ME-I2b-Q8?^(`gKlw+XTbpgC1XEvR7iYP z=FE!p42Qf~Xpl8&fK4}YyvSx`6WeQ+>c(0q-^en*{h=yQ^YAmXX8h`JD!a5(i zQq6Oc~EgiFADEo|C)ISNyo%LJJ`MrN|*i2frtX z=YhLOa_R+XP&nQ7I`KW*+P~C+hkjc_P>G#=E$ngK=Wc3RaB7+uSopHQW~i#F+KSIE zn*+a1+}gR)&o-*VZ^d0>H|msr-Y-bGy7x(eAZ2mpYEHWZO+MDKf$2qC3BXPahl?YM z976a?!cQ+XA-o$LC&C?D$oo#7nv?%j2C=1NPVxc}ac++MWN>!L@>=Tm|7`sKZ>%xw zQ~uC*%jJ>3mtWBYd!q$W1^%M{{s+tS6RAf4$bA4+@5;zC_pToIr--LPfMlkP%&QB+j%1ha(sZ7|pK~s%V{$RA9r;g0C!}xu`Intb z&s+bMO631__8Q%W=d10N-?59!tWmG;+J#}s#cnk`Z9?d29;s**Qrc$u9bABcod~pjPAhINH6kV`cCL&qy+D-C zZ@vF%G4A2Jpz?_8N{&i8rW=XqwMhH35hKrj8swULOoYrzR*r<7(%DE4G1YBP^m0V!tS z=P73`Q6%4luy~d#%KZrW%4ok>%on<{bpRQ^WwEIgGvX^p`iGXB`1-Z~b%-hRuo7p3 z2^M)Zw7=`PdH(ykG=EL9&tB7-murajKBWBOl9ArCfpgem){niEv$dYaANXci5HS(V zkRC;-W97R=^4=?UFR_9YtEo@=?r1q(LnYRa%X4dmB8te+@B)X}im@4y73cN-=zuB& z;Rd0fHwjuCwkJDQ%zAHS_|()k_ME~*RX$%uRo!pw@e}}M{CkHl`bx`GaW7Y~2LL&x zY2%8C?r5eWCs%pF^!rI;dC}8zd;)(iB1g zTL)Hlj1#MOMt6;vnq{?Qck+)YU+g&QedzN-kB%2p#@rnGh(Qev$`0Adimz(;TzbcO zwZkD_dbh|=>pPK4<9ttz7pcx;ZzWn^s-)_0?mrW`m{FtxbLHVssz|_9D|dN+uaE1z zS3kmW%vo_AuH&YKHGwJs_kaDO*Rs83!b0LUX}pShkZ1|7$%i|(=JkCTkf(mo8+q^R zZTq*^(kROg+Pa*KzG95L_XK{=#OO4XjyhhyIF~Bba6@@{GgfJg8dMT+tWUMohPs}3 z+&Xrw8xJ>-B(@r7S2G9tUH|NF6SG2M0s7q^#FsjZsp@Z4Tp_68_pb0-)hn`rECT`- zuH>twmCJ?DZ|tYAm6oZ#2jlkDbx6rK^uJ%+!g#&E8|awwBv(-EY##_ID$9Qv%Dj!YVykNN~N_)-z_NJGb?xf(gRn(-wNBS8Zv3^5z$e3^u-KeUH{a; zQ_|JBTu^lY%#cuE={zL_+DMSxoxK{(F*axzGTD)h*(!3fIXJUMeet2QP0nO|3|=tR zHyL~SYM=sjM;*;;B!V4)D-X(x+|>kEN;j2|2u3<_hRh7!{g5*of2G7z6& zqeKInFc6!ANyN5Ol9?ZX5x}ptb><>`owePz$o*~v8x887*0x+ z((x#DoWTYV5u?o;KA$y3oPyiN){mEo-^>rY_(FeFA7>!KD}6M=i&k4pRBOsgt=N$6 zEh{^l$Cd>2PXoQgqn{(^EVs-}?&_kC>LbrYPv63BAkdfqP1Eeb4Gb`-N36GPrfkOF zxG)7TLOJB&fkO28*8x*iYFQJ4@G;F< zvl`o&YSlbqJZEMVp?km9M^^JTgu24YCjP*n*Sff;GUwi>B0*bp!B0(WZK8srU|p24 zC5WGSo$PiDM-EK$gjyHwtKo2k`;_xE=kA*v=Nt7gK}ss1_w-_L;;BFTJzu^8tRIjS zJ}K&&Q>E^XLe(b8PK&12_Y4gpcO!5}F+H;+zLcUpm$FfbH?pSvS7y%v_uRECm5Rv_<~;Vt=Hf?&m^~m+uI;mcZ)VO1>}dPf1P*lz2p++uHbq7_UrS3mFp>$j9E3&@8oX zu-ZHJJ$0L2HDS4Vl62qBZu!TsG+N+7N)=O|Z$l!FBwHTZi#fqValAM~r%LyQRg)s8 zA3_lm57`Y-4N*)mm&QCh<-NY1W=Y$bWks9=F(nQu8jPF?mV?%ysxK@#uR7v?6c?zK zw+OBz|4^HK`A&00x$v;Qpvr!Y#7gou5cY0aRdb(=rgmTl4R;vJUS#m^xM@_g$<);D zLauCm7IZg`SDS0t8qSa{&15iQ7@IO9B4UYW3Iyj+k}1U# z%l56Lqg#?54$cc5wNiD{CmyH+&>k>pcQV-5>NSk zVPz{7}tE zmg$&Mo9X^h6bU_k-Rdj`^|AybPV)ZBTIl8;QlOMQct^GhL(F=maIMH|fEJ0Fpz{6b zJoAxC>Qf3Z3Cbe39Or?)Q6){#ZP~DK>59s;c=M7gZ5u)mFPP?5l%~Nod*_8y1CsCK zfcEBV#`i$7=;k!8N3vQsJaUg@Dp+O;c=5PsS&OSQ11xQjDsFyu*ZxO)+XcdD^}AH$ zSqYcjO6vBgqgNXKo`ikri;NXAI_ElMf@{$j@#T`MnY^X-fK?t%a{5P+{uMI9LDdyH zBWrFg?58P>ax2K4L4l>FM}1;z;$<(S<;AwatcKgpDlzfLa^7vZNdKhbny|b|_L2}0 zd>Ko^ow5NYP2~*kdQMMCsR-uc9~9PetGgCz>5L<@tI@|z7<8RE@fMLfn0NV z=m_M*Crjdq1Wq5DGxT@yf5EBq)!@m|=fAxvPb8WHl8QkY8xy3B(C>RDn*Qq-jCINM zyPoJRt?qvbC{?-dX(shOI7#nToLJXye9PaFlmtK~_*n71-)q5%-kRQP@{{HFCoeyE zmuWzP7!>r0|ELaf`mIlW8E|vXhIMt@uI?5B720~U^MQH5$#IL!B*bPxL^vZ=C z${;!szTuxE`>Msn?6+&FeLua;_=V9PkeHOII+nY-h(q<$z>+NyQ&E$7pLTnw*1eu< z*RL5FrPUbcM73DfOb1sU&zR^v1Uh8CPBCzao_^ehYWbz^B~FhSQFV=U9`Wft2q2hw zn=(dNzC;!6D;acO$4c)R@0A?4c8_I@kB!hsBI8M>!ozUhc(y~D4z2keik{}{`2Zk6 z9{+iWljQCGRgw)|pWn&xEcdLgApWlhn5PjZN4ZG@P$S|Ir5F9nl>qZe3Hnak>R8rq zDqB5Q*cm;h`>t(_pmMzz>)Uiui%33bz7E{A!KOhKcYSrL$`r0_yixmwcin`B+=bi) zWk@+?p|*W(u=^1jNn^XZr;>)yIkIwv>oQwVoop1n#YxY^>i#x#spSbq?D6NU3AFdD z(Z9+D6;B?Jr7nnGhy=I}WapR#?sU}!}|6e5k2F+^>otFYjJ1Yl=|J5tA^UFmX zdDI3RKH`0HZKw2>sS)e_UeCjZZQc^AV98H70rgVEMbo{Bm%w8AaH)9Sz|X~(DF;0D zaIgix#0j{GYD)wqCI0$$*E^PMwa6eWiAMdPE*FO6em<{1w-`{-GtWG7?T2~*ByuMQ zWX|I~X1OOBhr|~)H_H~TU!@VVw4k=Y6Ukjq^{}I?MdR`!JO63>c&MdiyBDUrK;J3j z(^6*L7Jc|rpY}YB=li@NuPWseN)^3}P-h0Ydtkbgk-6!L#!|k~o z&(u}Qk+XIDof;}@3ccNOw2J{#L2lRED8>Zr)7>!L5i zWMu!)4MhAGEwmZ#y~W$hryS})9D(o7`}W=~%lW00iMcTqD-ro2Yg=Meq}Q1T;Vd^L zoto{6e*1b=Vlekc!g|Kho|YKsxfs0feW;A~Gr0T10ZAp^z)IWcVFz>l%F#Gz(VjPJ zkFzX#ft}Ye4JOPgF!)Sdn*KtW0MMpSC%ErI!~K>AUNRkWf1dMSzIu`*@#XUyX)Q-Y zRAyGRb;VsE5xqRuaxsedO#ZGLyX%yOT1A^fKzqlA=%Q?ZgY>E0$eVU;=Z7k7!UhOA z4w@!^J$R?A{p87$g+B2NqQq_2GZ~oj(FnxNX3^z?&)I29-Jh2a-d5LanBI6`f9LE$ za=_L8>fR(fJ~PBMPrQ`0hT35Ea++4pBaz^|*@#Z#pioh6@M zG1(YvBe<97*8Jssd?$K!?#VA*5e3=`aTznhG6|QxI1lqxq;;1)D;`5x6 z5b95{Xx%cg?t3P;<0)t`Qn6}?>P9mFr_OdKdFNomYx%=tGC}b1Oy_x$*`k_oG*!mGTfcn!!DL| zve@0+-rK@Z{qwigz+|sHx2y)^q-kbcA|b6;vaxrnMjhIwt>4?RQ8vIBnw*}haXoE5 zdD^m9u*6m1c9TT*UrM%QoGyl28p^f?J>NrOdp97i-SD(08Q0-Mf}mP9Y7H99*_bFW24Sp z7KxLb|YOdH$T3OxXLdeN3ed;MXy{ZO8&7-iSySB=P5B!P&Fg|(fD6$5;UtV z1f`!ESYkzz*Tf_|Hv#nlszq$>iVr^LuYH-e777(}FkMy%87g^qhu1Zg60ae9y7|eB zBuK>DOQX4yxY-rymgG8AkND05Q1-$!T2#ESM!~hJ1{S(xvQdsp+ZN&I|hBEOb|04zkq!#rakfTtLIVKe7$B3ymyk2j0o_UgTo0{5p_K&-)HG zm92+*{cZ+YGWBu?s$;WfsxhA@-c-KqO7^%w)NZaqt4caeilqfFxRb5(Z zW}jw3apzsroB+b{>Sb%p`-ckVp6~Z|W;KUPZ8G354paly(-N0vOKav+BZ};u;^M_S zd6-+P_I5%PT@`dNONPnW#ezgvCzYc_E%i6FdKyhe=_OIiNzuueDqf=^cX;rL$aN-){ z2jCgh>JD_fW$T&UkT~07Z%`At>w94gV~0quKl3$1?c>}hzO>w-bEDPf)oF0HpU6K= zAP-5sw9X43b}ahp@`K-+x}}>v^m!fOZgh2@F2d;hdbZ!ZFnZxWH7n({*{3~w=Ys-j zkL2h>4~R4R8Ipp z_(k%he6QsBhb!p#r&eahz@h}~Bafq_x7-HSg}y)@UcdClUZ&! zh9=!D)c64VVMbQ?kIQ~t;L~yTU=H6*<(5%_+~xaN10L(g)e$0-sKna@5Cc(OM=5AG z7bx5VcWvKd147{4YlxMs_H9`+l`UdoEP_&ZFtsiSqjGzo3kkvwx}W=PNc8Up;Ct5p z0}q%OH31meJ$K0{YfA6*vD`R0D(ug`v&GI{Y=*g{VYXWuV|32+$&>eYAn)%U4^@Jb z#gvZ^XX-ny2a{(2L@3WNDp$Zz1)&Ayf+0lf>Tkw)4AL9;HsNR!L zW~ceoPB}V)&FR3~zVrW0@W&*$n!Z#B-Hao8kM1+|#_HgD2SiFy?!QZGQHiCm{ePub z269&n@3(SDZnpoS;0LCJz4lkrU@){wbGOO|?_o@jqTL1eYMPg>Y=tyywDQ$p(Y@N~ z=>uCVz-R`!+~QHHO+M>M1$xGE5k}03WG{3G7&YXo<|bcN?C0&3G70SBWKF z0+xpFSJ{O?_*GgDB7os#b-+V_0J=GJ6Et#jR=?qqCUYMt)nDUy^BR+uQ`sk*zC5YQ zAjFP5x|8!ic%ueDG4jTQMFqn}nR{QIm%zFSE$;*+y#0K?0R;U|d(DCkd5I5RwrE(e z@cmDq9Y8r10m*XAVi~=0`hgu zVY))DHy!8Pfp_p`3?EyYM(_TM#HOx*%2%gT((z!gVA6=v(ER(mTdx$x?S7tJW!T|X zVD~2-Bg_JMO~>b&hQV}df8w=M=IgBE!w-469TQh6CP?7SjJrEo{*wT9^L-nU7B z=ScK`ZKFj0VE}$tbK9=`$@(tyc9B&O3lO+=%6~KxJwsbCN3#5_-P^UV0IRYduYVrQH*aYo^ z2ds{My5c>ukAO#)d*S~-5bn|Q-W#@B|9er~$Tf?E6O~Ql$Fo5x&KtmhPb3QcQ8Z9( zh!;C0%qVifa`5NHlgimLs_mKf)JD64hqhU9f?o4Xqmu&Mj*g_Ttpd}>?eYmfm%VK) zy1qYtHSIKNBIZGs96iP977I){@n+Uf)=RfY+OJ{%fMbgz=Q_L7&+pwG1AyGsHu;)H zohu^_pC~}>)VH^a-L{QuJq;9d)1^)1uG};%^rRu5$0zp^_0RW9EkF)%?>wOA zrFG{y0NoUiLGR?}b~?1zK0*fqu|JxeXVuCGtz|1XU+M$F1K0v#_IGVae5aRt-aaBF z`-tRCa$Jpc0dbslehQF)P07t(zNUyov|bKnqjJ@lC^b8pzl1U(U91@DKW;-VoC+v~ zD%)Z!IErLdu7fiKw)!aG+a)H)2Ux-Rg*#)vkYPAw`@zgofIqqA_bBVs4&&O4{sxb| zh*|L?UAN@BTXAAyVhq;d+xJ$hyV|fZ*N$;amyWamY$ct^NO)8Tq zcpCRzKH|y2oZu+FsD?`wR)e@$HkbloVo4nB}UWP|uL=+*xoIHy+l8_qcjKGmPK z!nLHx_LW!$9Bgr2ZKm7yJTkjwlU#C3)jLpADP%_XdGAQ(C0mSBo$xeuVcAbU5?LVLHh2YHVYuGP5ppTZ>h8h|gJ(VFe(e}DKj<>%1w32$G zJ)BcI_t@{?qs$(JT~oS$@7{ffB!h8~0TXt6?nPi7tv9P9-1{q-p7JH${(lJ35Us-t z9_2H)K;FjaXUM*x{zfHpM(lR4pYB9($lE_U%l}sqn!}&jGl?eJSaoxrZ)79uElHVa z7(ts(jWmOks(tQlI9StXqwt?v=31i)rb@*nO6$fksC$kmt5-_pq3}Bg7xh-Ye0cax zO>@LUsEV&1ASZ9f|0kzWv$w~rOy81gEYk(?g44fxDb(qMGXmf?N>~Hj#^9F^)B(EU z*aPB2o)Y!yGeD=5T;xVPesdTGPpR;oQ6T%My$(MscL5t$rz7B<2;a;i;&ro$Vn?`5 zHh;do3n_P%ncEIBr(_F-j+-p=8Db{w{?1-w1$5WBa&j>vFZ!7IMQEqUTcRfBSBtWB zne-O|G#sZZXSxlkGl5C_-O2<(17D??zA0dkz}Yf5d;3>X40Si-wOE4+;(jn711`z}0+a!5a_SvvJ8p>p28zDpzr^pCM|wu`m6LdZPBWe)u7`^?YaXTQ2-Q;S!|>HDQ=8@fYpv&xdaQOa=`IPvJ%NloGNab8LUPvxNq9q}#n! z=GN+S>v7P4w3l9fR+goLAKo`#&LwAL`D@f-M4nqELe1ZMR2N8FOe31>#Cu8bse+y&xvw*E8 zGha){qD2+1`OEaOFujw57ypBAaA5fr8(I%uQ`3~S3#p?|5?JK9)Q5%6dluyjIW9tV z%5H-=fi=8;q5-d}(oPvQ`#&!8J97mg(HO4c+aI5KTk>kckeLv~0Xn_?O@l^`+vW-N z=0tEQ2I`6aHo~3vjeZ?r*gHv$I69i}4A{%?){u+K4+1eT7(W>;mHb&E$~IgH&;_#S zAslZ0+gA&SoBoUc6AtyuvpCzI$UBWa{21%K0*&;N5W#~1KY8HGQSbF`x2Szyd67%u zqradp@>q%Gck2`I@)Ge|;2IHSuN(Bl0?sk4M1FS&cW1o^WYq&%h(ln*F z`0cWpr@@RHfk+0xO4#sG|`-(X!9X1LcH#2h<0|q3*fFJQ~3iKmzSRVK1FgR?IFl~ zXDW5F?e|>B%m@5f=oeS5T^X3=E!oJC_!NOMfQbFng$N29M4F|$m(v02OB|qEEy4SB z_iG;OR9?{1Tl{2$`Q!1$@c&T9w-lG=huEoqAIiu34^ZZS5Pj9F^S<(k)kh`%Ciov2WG8?{yXti;NicO zS8_R_LCAVz__WZT_W%LTW9n(S;?uX`)0Z`7f(ZC7=Dr%)l;@U71^jE6x{#&71ew_s zh8WUPrTRJYk6hV`$CoZZ>y^7wm`t0cn16JrXpfPv*I&*!E$G`NrrmNN=Ivjz1Z$IW z|CQ;dRoYi(Y&8tI$_tW9H1UfD26`g16i@(bjDT#76nKh%l6X@d9YH%HvF z)L)Yp(hje|{Q$O>!h)buNwYMtM0M+zZ4+WBacj&49o49z%Rh%KSv4?1J8Q^g7E0o; zlQlU4Yt~HeLpUyvs=F6D2#&Apvx|pdCt`F6?)%{kT-$3X9K# z`t60PyT?AOz>SQt8jYLuFL|(E_0ofojD->Pzcr1^?B5t&{B^&@&?q;~&|U!aKh!b# zWlsh*WT7ZBvaO<7yD~YUKRUCWd$fs>nD_vfWJiu%O-<&G-?x6+$efDacxk5nTo^Q+ z3;_vD+b;pe22!Ak^hZPUNRG#u7<~N-7J2fU;u-eBINa+ICkvVP3gw%Z6J8()T zM|b7BL|5%SViQ5~5k( zs2F`DfC0m&H6*Nx*9K4?0WFs=HDiy013R-kv`UL$1w!!e0lPxMs#Bh?Y`J(Fd4eS$ zFGk|SO9!qTA+Fgg(BZ?pZ!xgDnmSe*s^LU?*oE<2RC9(D_|*a{UB$c`h(uXr4K*ar z?Yx5wSRPr*nVBHu*v}nMZ8|(-`+xO=^0-ekL2u_CwP^r$W7<(X1LFn0L8B%y*Oh=% zBY6j;uFDHHZm0_h+xuWm6K?A!i51Bgh74INbh^cV30Nz+%pzI+SWiSj<{=p1P$Jw9 z>ZSHA###zHk|gc{7AuJ1*p!7EK)kQ9~rvFFYWq~RqocD1OwAHQQBr*IS1D0K$||L71a9IVqz4% zHukUNxeDAxFP&jl_!Z}PJC6xW27#we(<`eladbKs)9-xZL}rOcaO8b@`19ZY z7YvN(fAD|CnbL-=)E7p+lD@`q9SeG)4e?;2VMhG|2b0#{MxOw;0Pbh?Mf*l{)&B_w z%cYazx@S$b=w3rej_dcsI~LAIRJ@eb`H{b1Xe!t>^-VWB`J%2-{UuM7>ad2FuYShM zRlmpHfFiuI!Td@J-F`vXgI~(%+m$2ryR-MAqZpI(m9=MOg+{^tFalr^`0E{A7yIR{ z!g$X@@hwxoGFc{=I{S7Ron3WezTcwdq_}&DRZCL^q>flA>N$RoyZJ5T$&yuOKV1h zZ&2W$RK@_uEZu|u%#;T^e$Zn)RI|vW#~5bqQYxZOxUTbFDlBWzkZnY|{B?&e^*uvWE9nO2IY2*T1$eXWFp^Idwr zM`D1Jme;$7YTSF$>+l5|g@dHpSHxWx{Pr_9nR*$8i^r5{QUpbCdsG^>LSO8-51!l9 zITFH;ZI_j>@n90cjC`oH+*A`rzEB{sG+!mYT_{Pcae^4iS~c;f3|OVlx*5>Om81G- z7lif7IGQ;aWe>VOgHOKc1G+w|Aec{7Zd#bHO7rg8wrE|f28f*Pic`mbkXDJF-&m}* zAXhv_-$^fhovo1fk$xD`vaTtE7M%>h@OzR*$wd60+15EM@TJ^$qa-%qeDgF7Z2IOO=iSLZJY*I!rC zr1Pw)WcCCK5pHL>9J`u+)$wbKC5Fc>P>j(b2JdEEJtRmt;l_WEM(v~*cF z%216kRFU@jfMX(2e?_P}VcO?V$T#aan;{b@gV`Wx_a97?29jd=o%@})GK|pGy8KxO zZ8wwcW;;q{-4i&ZM9a&|ojH^WJlo@bWgWY_4t#z7PRs`a1)J**h(?1(Qf+lMEXHNM zT~>_SwIjthT!qqFUwTV%z?8w}=ANAm+#|;+(3fDG*Xzt2PREIN+RZPk*Sy?Kz3FcyQh&Hxv~YM>uNlU} zp=*B>$Zt3IfoZjnCd9R*pm-n7K)9XZX4}grG1(9J8M%P-bYm(= zGQT)_FkAy)WUh$4m{A{f1UM!s%u#K(7(<$bI6$&>uEg}ly@H=j&zUie;=S}oMfyzc~e_wNKHoVldY(V5d+VKSx3f8@m&SagDCE8`3h7F!Q zWw~|;EVa!>2T54$%t8sg3X8}twXQ#_)KU%6L0-r)FW+nn8Xmg`N-BwL64|I;tPeBw z40JIv#%Fs!ODcd+eoR3E_pVKkoAz=2kntNHn?u`@XBLd%5I@=nBoYY;^xldpx(C8a zkR!3wO{I}tJ#T-{a*cE(>)!4@Sz+RtP=;tNlGhlHd_K{LC70s%X7)BsFy&!;K5b2h z>xQc{#ReH@LG^0cP7JT3=ghq#Ytr54J+PqME1^OP;0XxLUGB zOK`9^?L9b2!bE&?qwR1GqGpIJC`tDs#RhU>21#Sn6p>)q$rG=E@M!A{%NO1IE~(>0 zrr*VH^~$ZKv|ePln#e2=71}Dvu&jIT#Ft}YQ9-E z0k3Jf1)LPPZn1J?N%lP!Pk{8`3ddJ)R>G$${M&dVO)XP;$kWRW7OjUd{Zp=dc^@h5 z6n}@>(h+%+yqWXCDPICvQ z=7>VI5B#*-MKPmQk1u>p=qgICyH88-te*d6N^K)}ak)~aKFDX=?H?RVB&@OD2Xz#j zmr(>w10Uqm=Y(ey^V&8xYje}Y&5BDST2SH=j$8K?2Sxr$1Rts%#=}?1?@M)NLJAm zch6Dha6b0Up7q7EgxuS~x-K;$+1AI(2GS?>VllV5bb{SBT2He2;JnQ!-;>K4VFu~4 zR=o=1{0>$*%v!j~pUP7FGV2q=fvHJ#w}tX!G)Cf6q_$w^J=X(ukk(`NhMUTnvD;%9_>!fwe{{&0^e*t~v}cUNuBW~eTll&F zl3JOQ<3d_bBKS>$#4{426#QS%kinxvnSGr5s#caYJf8e$ahkNRj*I8l`MsslKz2yr z^X~nM^FCDSPO9GuiY;!~G)OKM262IK=n|;0vq$L_UoScZY0~nnXc;H75?H-`AE}6> zFeS+U8jg^0Ul6BAhwOa3@9&~nXF6Tuz1Vs9lWVir@|e6&U9dc}JRdB7-hCaI60fCm zfR!_0(ZMn?nMVXhNuOzw_Vua5XXys}SQ@ZrkOo79nB9(iPN`wKz57Dob*AHlY_ow9 zSDKaL_M90dfYv_lH1t^;1b^cgB=0-xZHmvq93oogxYSyi$J4;yYg-XRE*HVzFnS!%gHYY?)cDu zG|y5agVIWWwNNqrI2PJd1=^n3+kQzKl*~+sJ@og4m?c2@EmNn7zHZYUjl2DQ9wFvJ z10hH8nKk45wEZY&9e9%2*y6}eoqW)@ul=iqw-Ez0y)b_NU+%))q4j$~Xvc#v^U;7^ zmYR}!Gds;}`g@u}-Ai7VmQvIUcJfjg54>nt_}oU)@8>+^=lo}Edsu~iiE((gmo`~% z7JAKh3bAM7BUH&$e34bA3gYTo4(5+prw)Lz@_Ppgb6peTfe%Vkl&rOp-frUaSyxJd z{nQu{R5qO(9f>T_ZjNzX`ieuMP^k2W+i{RbLdGK&mXwZ7>xpoVty-;dMc=Ia&*2w- z1c*44%kHeJVmmq6TP=cN1}kzr&{K0}+Aa$DY`(o+O|4fvZ2^lzmF7D4;xj&3;o_aG ztx$Zx!Jy^V=XJ7|sWIx+@EEeB%U7pN?V?Mu0kmS-3Kk%;#WZUbeB3*1tTO)Ug5N>I zS`-ck`QH7;SOtRp=!hv-93tXB&C^$2pQ(^jHS}Gt6i1_xv8szP6&G2DSf7B9VQ=1* z#$P$EZGvH`oK^K1!3_N=rRr{N#caMiF@LRINX+ljuBNr5q( zzWVqTr^Qp)8N<1$Ywk?gc0+e$z^0`+%AsclvORcfn&e-+d*?wZB#^u)Vr3K^7-)Kk zJ7eU|<*QHr#^sKu)UUCo0@_V$n6{+CwkH2Eg%kkEuGoEw1*p&7U@Rv zpg;*V;|Y^M=5e59Q_W?buBn@yQn@KrxK$@#v-Cx)$wwQ$K&gq%vUWQ29GGmn^6z?J zF0YEnfgzi^LZ>b|5AK7udb#QpQo1;;5*)2vbw?6G(#M8vFteI=;Il$b{*geNsFNpQ zkCTp%eu)sKmB2YE_1-)nwlfz8<#e*s1XrxHSo6=0xdXNNmdAh6#eAwj!w5hNcmDa$ zIeKH~!(VhV-qqW5QPf>!8z5f2_rU#6;9rEJXy@(P}?K+P-i`Tf9F%T1Z_tHHqS@knR{V zsTA%L+;y8aUG2Q_jxv)O=|PHJlh%Tqx;RM=e0R2}Zi7%}`O3Q}Dm(6&{Dk&n+@`Ob z(r@XSb!=7hfYA!$3p~|B!O7TDq+*NR^61HiDk90iyw27C{tCT*;il?-CTj2+ zM;8Iq-Rhf|OQ=l>Rsm?N4Q5gig5-`yh;+ZJ&rJS2Tko%MQTDDo2!85f_enBwxAO{P^-FDd)v=6t zmvt&@0t7Toqx8}kfT=fuK0G?@0Ke1`h7KhF~KK;1!4xNWI_Y$Ul^(GyxX#yt0YI>GFLXHb|V$AstGe9X8~ zOQVpkaBAAGj&u*3*oX+l9BMoO^2!>d4AnN+0&PZ%wHkd?W6#IR3Juo6Xd~`lTjb-l zDV-=oF(lNQD$SWdx-OqK=$|}Qv#`r-e>hYTkw}$x__5DS*qudx(iw+sO;q6DII~Ie zj#o_lWOG-633Vmj&&G++sL|am{BT!h>kN>JZ0u?~X%oo>s4I59?>%@>ztkKnpR)9+ zC0O0D!ZO>vE!A#+DN{1fZC?=*LI^z^ed{TZAp+IS` z7IJ|nPf4*0upOz|uDicl{y-WCz8+<_`vp7cwSV5()pdY%G3M#9b;ZDkgK;me)NiA6 z$;p$9H36dwG9OWr<&IH(muMkrD8WtLz4)G@nc#)LZz>Sh%J$8+V25~AnPAcw}73&l8H#j!JbHE7{75? zP%*WOgONqM9BzcFL63O;v;r&m`Xv>lV7QF7+Puuj2^(bd^{kD)!AiCSq|_=2+c%qx zm&>oxFhE(5YTPvCf&+2SvxtgKb!)$B{=t4e%54gzviD0ywugapAm3oA1ZJaI-C2yH zWF3I+$|>7xAL}+%#!am=r;K<}kaa}UR$m?jVo+#O%9g%jg5TPuu>%pM!|z3F8yl9F zq&GP&RwPZMtp{8yj6uk%oB+4+ZD4D~ddeNUX=`IYsyG^Hj_=8ruydsvOO6}x3K_?a zR@*iMFjZ(K#TJQFH8kW^Hx?4o#sY<+5}X$v@GRRehq+hS)SmgW1&l7=P1Q_;}F@RO4dL>#54^cOtdR6ZKh{P_CnLKv`VFTMt{Vs4Ywu7ioN$ zH7+8jeK6F20aU&0?xsZxs{S`>l&M?!Qz49lDdrp|c!@V$rCTyrY<2sCK+ z)6Z%ZI^P>eimog0SuX3Jq9yWj^DTevfXg4n`hSAWKHutVBwx!}9Pw~jLF>3Fpw%Dp zgF2ek3B^1d=p*mhbm4(x85Z)Z`d=XNW5XDY?eEN-!~@D$%b=}>$H+G>t&eggCr`|4 z+XDjypSfAR2>CvLQ(-geFr`s*dqM=3eO4H{>F@3SW7_i>d_W0sw0gds&eZ+G%-3=C zY&Z``smCHYSP@&Ffp9;vF!AAWZdNEiyU9Qp#Pm?sBSG6Q+73;9_x|p_NOM>mE*6{W~lUusNvW}+rrCS z(!pTRn70E8(vz#X?|d1%H!nIBhn&}1acM?T?PpsTErWHFYi*}laC;tvs*G_@Etz|Z zx)Y=Nz{VN;?|qZQ^osOyn);D2V`WA>0IM!bc0~^qgW=(uQyoiU2b%?+_>>NK*}-#6 zi6?c}D|x1o52SKtvxQK1B>sR2G_`rG5ztaq@KGj3;b&w^lLKg32j)n1hea| zt?69!!;&p-9^wJD)wdo{DvHuLS4E>{>(9x<1?~1j2?#><4f@ zshJs3W=Z1EqdPL37n_5jopzL7&of#=i2im~$U}A!e;UguKNzH`85U{xLg9(19L+LS2TgG+zAJ7J!C6*QnDyF>o~?<4j^Z6c>GjJ*G~s<7y+{-CH?1B(_DRqANURJSOP6xsC{)G--^byL0->c z@a0agO!BF3|S1mrT@YwbEuD=oULTHQ}U|Zl|y=ql_a}H z_2d9tNAg;2MdbxK=+wj#E}1LfB=NlwVvkp#mJ237m5Ys(&IDqo8j8LG#dE0MCdv-cJ&*twTa~Uh4RL!f*)7)ONt<{m71AV8qZF!oa z;!OUZp`H11ZrVOgxk55o@y^d515 z;?7sLNu4cw3gg9=QmR}ErXRMYPVE^K@Z*Nh@lpD{ay%K3kx#;+RRn2Qn)bzWM@5PL zM=*>|>qtYx+M1jt2CNFqFoU*rc_KmF7fgqfn+eL{!qkj+5zw3hhtrStKqTXOlXH~! z747L2#w>k&C9xCRqRbS?FqKVV#s+t5On|@o@XM%=FY6=%HHaBS-y^E*o(;?W#OJC*h!RdbU8w3 zR?MG%Uk#S0u+i2cHrV@7aU+mET=Z2Gs}C%Do-KN>%}a+3i>bk6XHhaeB=yMC-Me91 z-=f8W7Fvju4M=-TB(WEuAj@`f=E{u;6Bu(KHV4l@Br5i_8K0mA3)0zum4tAcV;L5L zW_riC{q}uvCZ<3?dy-S#*NCL(blEIi*pW>y5Y&I zI`(N~_$Ol{K~i=Mr;}l3%gwgEHcNb+yQWg}IQMOc^}hRu5S^fRYPFws@5aj&g{w8* zZw#YeKd9MHcrE;EFRQ(*kcs(!Ul$(6v)uRn-1qnUS-#Kn-0;?QR%Tvi2n52a ztD^~pK=#uh5QamCn7}76z9@OH+2;ejt_~^dKD7Y;IN*Hk<~0c9LoCbQ9Y*l?;rlw4 zJ`f1oXZrWPcCP{l2;`2FuI4q9hjuIDh+rFxEsjPS*gu+^;NGSCuBzG!eI=}@Q+8Hl zS>3(wlCIL{$K1kZ<8NPmD}#^r##K1xwHcb)-bl7|(P-Gac-hvU>FhzRxk#pCwZgX+ z?30E%F4~_yFeE$Yo^<)anU3e`y`HXkQmm31zDbr>zs5n=#}3_Y|89Ov7LI=*feY!T zq{=3GjMhLPE~k~?D{(@WiCDD*5N-Dj(6jd=7s?qSF&xx=pd%Vb|C=|GuG@&Yx6ZzV zCeq@FdwGJRWrd_Z#xAH7-$b%g+4wF?#e-%+5??uv)~tBhNKz;iMc?^XD9gC2kX?UP zcJ|$reUOh13`%e_ku(TIPG50@hLu5B#%+G#H27BIF;rrIU=8)fX64*a10gm23bi~g_n?}8sb}ygH&t3HpQK^nzPJakB1S50F2shSXy+l4 zicZvhnIDAHc3`>_yVGJ#q|fN3Ccz@*^u8dq%~aH=*JSKW64cw zb}!vwA7^G{T)@eMbYp2hs=%2b5a}FYR+_o3UxLs=F^u9?T?)k;E7bH;f4NT%2C3N` zPD_*s!bGmply+#F>Flb-sO=^5y~yL16nFF_QW@^5B1g@x`SNlJ-Rxa9;_riAstz3| z>BiMiR|CzxAf@=`akU(^ZfCZo~rRxLbV2VP(TUmWp}BqeQT*D z%l@ua-UJk})#7c{yGkpAH|fW1cEg)119yovqn>Ya7uAwRyr{2@@1C_JV>2vsP}@I> zH+fK4Wkow0p@_nEDpWV9`MzEKz1n9o>wYDRv=UL2?4DnUGSL8=(TI^Jr^wGgf1*}m zfY=N)PzoEYA@ZvgX~gb5Z%*DhOFOOG%OcY)z7w7Ca|3O#5UH+0{Vefm^Mi)sdjyJf z?Y7-c-phqMlNqC*+qaDws`{sCS&;(0FZq>xi38^5qZ6wU^79ixgaHk9mDz;`uJiz^ zX-9>F?&8BHBwu|q#z%Sg_I2W9nw>-jwl3(yvC{cyhWjTez9q0GwUYyavDCuQT~hPB z!q%tgO7gad8nUp^6^X$1jcgCrK73g&x{^}ufstMrtJYV76WuCr&EID^0(lHy?(JTw zE!cv6I{sks8QUq<(wI?kgi}M6&!|%=k;HJMI+rDMJkkC&K^BcFO3Mgs-D#~MPLrC< z2$Y`)0wHfmBwvp537+OzWIK6%0#in!CRhGLYMHi-IkjVsA&v&N$C%IasJ<^7L7gED zAO>)>`&QM)!}Yr_n&S2 zk@T^9{sfqcp=W2}`^S86Rv}aPk<3o7$gnOuO2SSkvmKXma(z$V8!SnK~lB zRk7ud?>fCzF9k=+&o-~GF4#vZW3MIfuK%*99^=C8;Me0La76-Y+1a>xG5)pq+U?j~ zG(xAnix#jtSgk}6P`zy1^tDbewGrc^({8}u_qlAN>_BC{!GLXTBucWNb$4?kSlW*O z$D>bLxE@#8Q(J9e=ybRkxHardiCk3PU9P16HTCEq2z@`C)h6&KAr^7e>j6hsf8byV zomjOHLUT6nakcekIda!zy*7dJLBe-xRsUV+w5e|5#Df|4%_LMvsQ@Ky$(OWJp5Wk0 z4mbC^y{T2GJVRs8N1fG&wl9rt4iP+i>~~Wm%{?IR;V?&xfW8`EgPTArDj<{6q!xP1 z7)QHVA?eZN7}LDoCLMx}_UhXrmB2p{cL;8ipSv@DWT>g;bo`Qtb9AMQ5Prfa*J7!Q z?3b6yskeQI!5QRL>&kWgCJE9Do| zn!4&_r!xYSRH=^z5WPF@{@{EAoCgt_FqQ4IWTJstw^Ya+O9GLh41P~HgAy)4A+E-{ zwj0E&8SC@zN;pHd5F*{?85^rSp_;IuhsDiXtFcS0=1qAcY_|i(c!Dyr33ayihycyW z;5kcV=#FvVlC>gb+$^%tHO;(XaA0!V1HWv<{p8lkC|QXRz3W@Ci(f{hs@LPCn$fe% zMj@7jvV>FB89$9M>irA$!lgb5wfBbaYhPD+!baGs_3#Y+St+7jjQQw;Iqs3Hk|opN zhRu)V@15pcszO>Z`QFm(ng4xzhP`1P}(=3mhY$d zU`XYa)e!E8WWE+VEv9+My{sKe{#1?*ZM3bUeYnM6UR%Tf(H&8E*sKUy6}pjxQX;0g z6;Ni&tlFl!C*-h*%1fcWb#GRYv<+{$6NoL`q~VH$ZUcVZoX?6p+F`!=Wi3fqm(aLV z9o1Mlj%jxmkR1`Bu3;C~V0%+3MJo*iF<7kW!daEA>bHxHyI#wO&35&A@hg~sQ0jLt zDqXE@1Z$KE6(q?8)*XZx(9&cr;v5&=2$qaPo9b}Hz|lPaLgg;lj16}5 za`n>Ok8a%dn_64*-BZf6`&3eTEHx%{i9HRqg@6-o-Z}{Bnj7{(FL=FFL1LP>^uUsR zNx?cwG1w~S`_8T&{^9xY!L+d2N{Zi`;wT65P@m#xv*qX*QaHsEvx3)qv-P9C)T+5R zE5&O$zB{oft7ax~R0YFv#9yxxhaF>28{7;i46!ZUYnw!MM@W@nCUa9R*ETr)G*~F) ztQ>id^&g-{f6%S<8ZBYj!z^7K%^j6s$clh#Ga#iG4N*GhOyrx76*bH}=--D+iPyaO(Wh zSlXQbqkS!P3kV6CbQ#bR zQc=)?x1>z1+QwcjpI@Atif~sU2`>0{=_Fbix5*bc+^v3%N#{i9qE@_E5`rf zaZLC3??oXqd2=kDA!yex#t}Z7FP5IkS|qDn7&#A-|Hby+FE7u}E{)mli#3d`Rmldf z!5eQ}*Y%Js!^N9$cdpUN^rVi7Ku(d0<8+4X`_$vYd-CE$SF_&A9%}ST*{I#jNl1S` zJ7l8gg84JJMIzFDk!(Sp+rVDa(CCg1zBD-f)JmUBK%v5ZwJPxtK5Sm47CZj zn|6M;%sOp!I4)k%kR@d@7~e2L)2TzqNQt`276_1rfA2Sn8A1Z}ZexIL$P_=DU4E_e<*4>vI@s(JG`nKKFN61RiX%uvE<0ZT?XJiY| z0b}u`&FvpotcAWe(2&WYt!A5NWyIHC^Q5+;O^%0KkssAkm74M!i8yx36v^z#?6;(5 zBq?+|fYJs-=rfGk6~DyPcElmeRVf}#I1L=&G--Y28Pr4}eYKBkLDfDfvi9#Q;WvrV zpQ+QEa9oT$x{l%+12CD{yeZW;Sv&1~uRw}Wb#qm$KIFvgs6EUgUav`fh=vKWuE+%(`XlrVVPS6}Uhd68F~wHg2N zVP|Nb-`)on!d+RfC9j_`e7Tj^$16vu7@N?x_Pt7cpCWbhq^ri&Ym-;6dgBiS*I5pu z$u~!aREs%bTcL^77|U6J#qLHQqna1Fm%I5K-_fg%i}&vMj^2b7f(&fN>pgDjL4He8 zP}+`HGNZ}uP6ZO1cJ*Mk4anwESTS0-Q6i8nZz2;uHXke>_E`a4oo*Z4_-G49C{O*| z3y4g82PD(%n6bOJt=DiCjNNTFXfR;6qj!tsJI{ie9XBIPqeD?52!sHbC0C6c}`O}bo{ywf`cpRn zLcs!Wgi()MB+}qeEp#7z54N8fo93^p-ptLhP;;y;n1ui zp>N5vNQ&2vKH7TG>%uT|SV(m`f*PQ*_Jwm`c&|JdD^b5vGwM5FYQ9j1Ym{waSz(8? zsE?_g|EH^>e{itZ$426_Be_==5^ZlpH4DZxOb93F!^L4!exn|>x=><<=kFuhES~O2 z*@PKupp33PR(mflske=o&x)+FZ)dX&@k45A27cz7$P6MhnX{{GzRE9`&Q^m!Sgy^( zc-z{8CvAcNzs*P$-xjEoe)lRjKY_1Y$u>5pCwQF>oQ z*N&uc&AWv1!97kOmN*%8h626idGh3bh|DK&DCG7bu*pPT*ky;vJw<>IT8@Iv)h_!j zLCC4UAKW7zhPWt@Hc{pE?Wmw)1O0ou&j)5YC15jN`=w9H(!fz+r;~RMLaI_blY$3+ z>}`a@AV=E2t3g^$e24El&p#~)b~%6G-!`|o^bnBb7pv^x^AnH%51aFBN>s@C1V`AX z$*_EMXy4=kNQ?03$7w}G-{UbjjZz_5Om=Z7^M|-NCUJodTRfi-jMh(BE&qBtW0k!{ z^LKwvo;YD>ZOsQ7JEigCUpxM{|NqHN^DGOb#~a^3P^JII`_CQ&#Hu^EdD{F4=*6=N zdMAI6-hXl=fPDM$9*-kzSkP5R)3RV$BMg4_X+tXcfsypH4n?#>3C5WidlL4>D z5*4%ChIX$jqO20lc83l@AejkZe;Hk`=C9DjM-oE19g&F$Naj`bfYC(T5UvE~9VMxk z>K8>NlKUO`t-pLt+*AP?X+7|_x4n5E-wsCr{;Znu^2Q#6&=`o5FTR78RITnU6w0twQf-BDPGO>mQ zly-h5z8fy6JyJxa{79ntBo{YNj>_o#;08meW&L3q^~=xPikin={OX9fa<91rXQ#-e zlW@jab?7yTvJTB=EA4m#UtMM~)2al618$DmZSigiR}|VJchhk3qm@Sb)4oX;2fT9| zkG)wVS7h1PH1U=a56^OW#SO7^WR`5_9t*$(G`O|@dQ*0>;Kmo)W`KlHS%6x*U@^(k2>uwtOOTzi=Wb@UN|M?3s2F#+SJLPn zQ|$FH8+H7vh8TC3(x6FftS`omWFM3^{_vf&q<=rk%;Idwj=uB-W@MDN^iRJDJU{j% znT+v~vGWw-A%*&zoi9`uMH->qj})Ws3>#>^&3Zn96GV%}eUJ%!eE|&og5+q8c{>vs z3~FCXOBg)`aI*Wj`X7N<{fv4CA~J{&zK8w<=>MNKW}4fyB%hk*wbT`_GTF({XymIS zofVRkXF)8Ri)G)?j%r7~P&r5Hg3XinWtxt|CqqDDa=ES5 z4<>9%`G@$xDP~>hdKNu?Z&fhSSj2_o#?q2JM!U~)8cE~r*k76UGfRvotZlwl*W>oU za_$q^9IaW_yCNgRUG?kTjgRP2r0)>)(o*PJTtL&3*aI+09(M(hUQKhGaUeDuPprt zvRN9&N)NHjOc_DjHn%mgB*a)%d^)?>WzNKOQfn_wI=_dF$S96fW8^>e`dH9&Dmbpd z^7S+fs|4|C40L2dh!sz#a&>$>{)@cnd(ebeVg6ky>eZ{j`b7|d#FSFs)CWr6=Q*9* zZ}=r3bUIVJKcD|c1~>`ibIH&us)AUc^v}(gnCy_ti&DFXkr7;CNN)e~{vX=KEN~4K zTM(wP!u#WLe+STykMUj{UE17e#yRvBH zbEUNNW!meJ(3CQ*CaQ@LYp6qZOfsk9SCqzB&uEsB1*in7?h&vkZc z?2#PE2Plu~XE7Z$(R$%~za!tfqf{Pau~HS*;`_{cY;#=CHGh8|))ldeav@)eKO`zY z_78=JK3k0tC|X!9fE8VFrU91o+vEVVWw1r?tGF__5em2K7SkmfxLl64{Qt-k($p z?9zKmgb_%7Vy?59N|w%YsnIS4*IFB8MNjw*^hU=2fhf7h<9NR_#(#^gV`94y6H^z# z@#v{`vB;_lEKXf4rVgewSpH1!-HCEJ-F?E^#zpDEa=FjE-F!JUuuIZf7sczl`SfBE zCL;-Cb)|luSLfRK(A_d)%4kAE^N>Z}LePHDjD6FH*KJ$payQf6wxxv*CPZ&y(B$IG zHC^Y35!+99+ibfYw~LrCZ@ONme9X!#&gUJ$&5A8Nm$!I0hD>Kk&;3+~*FjK}iXJ2# z2v3mSiG>xhWT^Fw&$urb!E>&GD}-G;M2nV+?={T5_}QkXl|$?U9G`ir!=y7{jGc6Y zhV0OmvP|zi0~_u+f3gmsgv+E`tQaWaz6~y8!zk4XA*ut+JyspPAwC-&_Cz-B)1p%Uh-aevS zQw(TK&&VN~{^=@>5MCp~ltZ5-4Meiewx(!P7F{ig;s+XHtXg_{k>f0;l~H8#+U~;U zeqlZjlda10ADRv`dOtu*D}_6lbUcPPdt!O@2BcwRsM&xNUoj|h&= zPyorg8kSAE`2-dQUm6D7@sPIjAPn@hC1B%wnHwe zE>}v+UPz7B$Q@59_HgBnYpq`rjt7yhs?3y|O2ej>dMP{arYwE0o%|&xda}x)4f$f_ zDIE9O$XwAzEeLi3le>Qr?>cduuhJ1q5+MfN;DSq3BTmg_WBJ zOx~R!34+sHWw9`wMv!c2c5#~>GM5A(sXKY42BFj3y1fSj)0*{Vid7ck&YVQ7mLC$6 z<1!L!x<0H|c=JkW9GGQNmS!fX-b^VabB{(;)wdAy)@rAzyZR5mis(`Em@1+IJHsCr z3691SB0iFT_$ef;pT%DRmy|38BcN1X9ZwzNh6X@Zi9Xf)S}^E=#|W~$dBKKNao{~& zIZ;euUtek1IXSym>V?_M!Rq@!6dA2pxj<2WQlriAoK7QEE%EkUH5+=qrtIP;1dK9v zha7_MFofMRS+mi6>%_vwtjk#X@f_!lRe*7x{=$2uF=y`TPkL}in~*aT8zv4p%=t*o z39}2;xs3F9|JB-b8Wsl-8M2?D8}iT2D_~ua6|6fVQ>QWjdTQEv*TuD0T;Ja(SsM{( z(lO6d?j4y`V5Q9_CO21d_#0kV|G5$2L)No+KF?-j1F_Qkj{d6Y#{Yb%oo>lF(;!j` z6`EmP{BXhX4AgTd0IBY6SO;z>>7O%~%}~!2_!79$I}>!kn%G&yLR)8rsD31IhukN4 zGa+=bmJ|i?3C?oW-Q6X-bw5@d=XZux z`plr<>vQdbN<|>pSBy9c;MVGJ$X*;%^*ur5$H9 zD3^Oz^)&Lc%^|-MP*v_5LybIEp!S=5X z&SyH?Y|BCLqlGi^;~7zj00aFf$8Zn1yR+oJSh1_(>$BKl`8*cFE6IJoJL&nACGI&J zcW{NUw%fxswx~O*5J>URzwoD{fA|x}UtR0Jn>GP56 zJ&;o$o_|Z+^dUQNr)>nVe);MkpMpfQN#s8xtMIEYF2w0^&R{d_c`H5S3XX$(+u{f! zyBVW!P@lL~L{aq`7!tE!=<`OYQGbEAWmTWdOsZd`|KU!BTOT$K-~1}YSS-8p5*ld8 z>qnmD+=u;@DCurEj@?l5!28J9+zEy<`xdujCi?j4aOMad*}Xq?h?ZmxB8J~!6Xx*T zz{0BD&I@=}i7{_{-+hHFp13ESjK?|~@_%ZG#hlwO9&>8*>B`l+Re@!OZaS|cJgR*_ zTFLa|pvu(#mfAdU35Vk2@qP)LKwhylS3RqHfp|T)WBpUu+Vi;mAxcHj5fbW3WG>O0 z1yC2+q%r}TEEu@k`#;et4vU$77lrD%qs24)*cI9+eotP4WBLb-<#p&|yZ+CfOmXs7 zy*pk*Wzo&z@tcABWtZ(I`)pwoXLZA$oE4WVXo7jGj5GJISeVe|pF&g&I4+DnhE54m z7iNBzxSu~7A2jZHnb%zURnLU?OSZq1#;ea*r%2uw>QJ!7zdz|FkWQY}J}rE;Y-&~Q zPEWAw;I=jZM8YA)V}3~@9IA!ogeuyMM#+}FxQF3+qA=>@#MRN}ZXFT<&@imI^pd@O zg6;Fvr8UIclVFGw1t(WofXp2HSq5_H>t9>}3jBWS*LeH6-xD4Pu53W@?m0o1y@BZb z-?%uFj8317ceHH2ZeodO=awoiaO{X0gjIu8mLRzu)bEf}yw(Kna*5|tT9?!-!-*Ql zBtf7eu98Hd8?fE~To%&g0LS@AHv=Umf>w{2f9M!7&|ZaQ_C zzfgxZEl6vfp)y#m=q7P>ybv?0W<8(*=VTIM-JZoYenPv+rinnS0~x(z8;Lr?RlxnsK>c}e58MAaZRoAdFQ>5 z3#O#NjU>}csb)!DhTx`#bw#hD?g80FHY&b%q|ae6B!D~q)OX!ZF}&5;qiEgEw&Kx% zh}2)y`fKgmn!1aNuRE0vC{%>57zn;^7?S`fW)nRh9OkCmsG6SKS?3jZmS%e;VW2NF%o#}AD+7>A1 zEx$nQds&t0SQHdUbqOW;%sGpYBH z-OPU)uy3w!tmusZa5G9Dts*+^@^)#O=tc4|jSVGBDRI8$GWuHMIBFlIi=E;#tM4*Z ze`DZs(Nk>RTGCLDT`%WW#)o9isK|zmYMdhgTjQ+?#Rc3LhwMR-NtJ?!-9ATz@>;hXDwZXPGl-0zQ8Q77)&SFF4^Q}^(VrKgO@vvcu+ z#hOmKS@GJO`x3O-0+(=SH71T_8|vBPBP>v7#9gy(;KmB1f?@+vQ;N(=EfutMtOZ7C~c*yrJi zOn6Wb9hixvHG< zvQSkZP>>5trliB4cc~PrVd_-=S}zUDUyB-)dJO$qy|g)YoW_ClQS`m6A)M~IoXq69 zq$;LGwq?ku_$`2ISzE+QSK;J z#?s6P5ra5g*qT~gg3PzxchhZ*`!`zAnA@-2@G*T%8B z=gJVIMBMJjnAvm={UEqV+Fa9h7MimPTQ(Coz*-h3BL-sa#{+)?WvLinHJ7>5J~;~H zy&~(8BL$_UrHXaulbqTincNpPyk2;Z2jz_LfZ2cI(duLrV96>=M}agt15l>bvUec( zM~T2wniKJ6KmHT``u}zpuWd$P={MAp z&;-6vIno6n3;&Cko($Xe@}?7#{|yj}28r3sT|e!*VaH<>W-%$Ie$sx2O5m+PC`uccHdz%v8)JxOWo71iAp2B$@Z&h9=VYvi>T)>Vv#wFeOEzI^zJqLNM2Z4S+G_I;33<_$YN$MxR<0sLw|dyREw$*XNVVz? z{#u()dSB72BY|BBo#m5L9+zI5UivLr>@{~f8ZMNr?@A>x-Td0*&HyG!2*$;^KAvqC zh7!W9B%wJ)*|V7%x-hn$)wk0vP_KL>a2*-iQammM1uYu z@6S9Rshzt(hZ}rP_ONd2bm#t~DVsAXcqcH$6nH-o`Yo>*2c@T?FBp@^__!j#6kdPz zsGDX%Qya>ZQUN}hl^OtX&BgCOL{vTI&6NU{j4b{TKjOwCya2|)kr6I-!v?QQsq0=b z0x}$3PIZ(w8y|lZQN-db8}&_oNmVrq3UbMwjKD}%^Hs;NU-4s_|1PSw{F;^~Zll!% zo5MTDpKS0I0MJ;)3?@mmYl%(N#gCfSx=uhjTzy7fPxvS0wKEhkA&%5(j@?Rd{}4y71;pllYUN1SKkjxO14|qL{pVSgBH$QpgX-ESvG0)Vy)b<%Tge zX@s;$eIvu(9S!f&o1hsk9#3g)QYt5T;1B;wH`oi}@un3$^Nn|6HnB}u zP1drXQTitvcKBoTf9?3V-KSqps=LBtbW1*4&M_zPSLe}(`>Gm&`cPe6ZF+F;Up1Pq zqUGE!??1DF{l8z`_RjPLv3;+!3CL8Wp{b7E!$9eC1Jz9-!!fuhLl zH1jk6Fdn;=aaY_#r5woqVySp&p0@zqU2AMsRpT))*LDxtuh7Q#(oCoj_)KDSvk0t> ztM5)ZF9J>dcD3cd)fQ#_34Rl{L4ta&mpBYTno#g{t`@O{3K^S7)dHVPU(5urHpjO4 zAyn(QVzHf$+j$l4d#wmsc}8VI@I1FJy@qRZj$U*Elcbxe%Gu3sx`x^uh8;U@?9%dEuV`a}Q1NCDow>L*wgEGoy(Dd*3=)sc~F-tYXmhl>pdZfykz>JbCNf z{%WnpTOz_ay4<{ysXw$Sj%q$Xnj4;i(x~`&wgxy}47gclfR^eqM0W-)m)bS@*a>e1 z!XcokEk*CMKcR$d`+nxZDD&Kljh^8LXi%#=q~q@fR;~c;Pc~}ySG7I%m;ixyDtrB~ z7=M|vTFGlXKXU>Pwx}^C-_ep6UoP_}2!^uKw$iyjT%Z?qtu4w$$n_?{p33a^nXoq} z@}_NcS1%o<&-Tk*H7f}`N$?C_Vxb|m~QCu#ff+XA=X{ja5^|0{0%uT**&zd`{I z&%L2Pf7^xl*x5TqM~C!>f~A~q-@Y9>jq142B2+2URI-J!UGUOo$zGHHqLpr^IPa}u3Ei?-><6D6Qe(jSv9^S>8S~!oSB_e3Dxg7OgIe2O*#Ldi1CA;12L4Gk?}AeK)80i} zZe!ek=n(W7RUzBN)|O)DXN?oEz7BM?aB!p!||cS7!rL zONAund$Uh|tC*NKRV7tg7idZ8p{(5xTK)D5$DF#SY)B_Yf2j46Vp>krWhw3=8=t{C z{a;p?S26V&7?-9egt4C`8>e8`2?2ZM056B_oY_M=s$vy^ND2fwMzMJD&TbJd!>e>f zS)fnml1uc?AY{nj4!@Yfn}0wwIA*%G2~V@XXvg!;{a-lt*7H9I z@U?eLL9ncV*5+EY073VOLgziGwHSh%6* zL;O3+Uwo&ER$}a4ia&Fbd%XJEUvrDJ_b<>67eI+B$bJ3**Z#-u$|+O*3-3VrQF65C zjGZw5XtCyPe8UNF`DDInl$f&_;uet8$fMFibjRI>=~67jt{g;Jh01Mw+(}w|fX0QG z1RhDHCt*%3!D*Q1n;0IIHuBlt*^kZ~-kCq8jv2T@ZSWGOGDO9CYIAlnorBepZema@ zhgtnB0VJNVoqzVw!u>hYm>Yf?Go0eK^Z2U_A1;^|b}KtiQ_c)joF>_q5f6uA8M_{( zG9?v+p5v=_2+(_T(HlHIX^ouiAgzwYfY!D&9;M>A=p?PKwXSAZQdA)sn0@f{N2BG9 zrTNAheGW_$GP&txOpfv_bE)~4aPv-o9kBFsm0MtH=IZ1P`O0VYe!Dj5yfo%fu()8B zdFhOJFgW+|gVU(zhHfT64=R(0?GSehPe`nF3bA9>)#5onD&T#revCr}IDDY&Fncr) z_d|RU)nEt`2TpwHfs|d@U!;ZVk>oQ~<}tkMRe9PVww|FkcgX=%!!C=|$Y)*cXfQ3R ztS%}xc8Mg@Rm>)a_xJi~IDk{=10-)c{J^=_94?S_v1}ZE+@%*7VCGK<9QU8En4U2# z3o5@yJjo|PNS~?CTYXASVbv682`Q$e#icGej#8 zI2{TbHhAJga_euHGCz%s>L!UjwZ*6og?xZpgV7XL+9}vt88xS!2!$F`o1>R!bGqGG z)fO7#XwEjtzh4G$AW`4X-GIcV26=y#;rFAz#kY9BBZvQeobm+6jgYoaBHT@JgX8rZ zfe81r#)0139Ncy`IX$+NdcP*x!=^W}_`VtET)C`FKI6fi?|b%)V!yE-h}IT& z2A}$3@Z%#*LACyq+`aF-H{Rysf)3ucl9eHkzH6Y~!VwRVd1BupBxBW~ttu+wX3pCz zdQ544TszT{`TN6|ov4q(>k8h|yh7|@u>BLUyouTQ#Br2fqcJ28xzBX?$zr!T zSt0g@19S%e^7W0ChjgPn%1rwp&#Un_iTml=WcP(_a01A?%6p?Vl$iTmz@7!VxlA5c zksQ4s0@hq$q657wE+Or>e4(w;fb>mUsx9HQirEq12=4`Bmxz%@TyLkazmxT7lehMFdG~RVB#21U9(xi>8w$d5=5K4 zu!~Rmtqh&-=#oL`o7?U1B4n+OI;ydl{wbGvZ9>;E!LupH1+KDm*dY^o<{3Y`U+ZWE z>bMeD+@C7Xo`&R_S0?9G3pJ~kMRRnBhK6gp<_iGff8p=7b-elJfn~E*?!UKh^S^hv z7MFU7s_8G>_aX+=q!|gBBRp#tA%%gZAjgKVMEX2nB`LKZrq_P5fGWLLCE3$edaqBL zE9fT$&ZS)QSzDAexdOb+Zz0$3uu=DE|Bksar+kHftsPEK#&Gmm1Vn@cXAAie`|U(7 zo26x;e^--Wf)0b4o7di-)Bh2?Pox)rx(+4wy_dmUzlg8MNd9_}h%5V>NSkvwMvI@) znwXA_G{otrgNB%$|3nK14vjf{{<-_b*QA88?c>DDGj^-)xB(RxxwOMcbQNLp_Sszi zkmhjIhbFxP-cj;HtfKVnAT3?&x%A^PFxQ}p%j4nSYz6x@F^t!hu?=TE0do0H42Ur( z5W=bSm$jQ-G?^Co1}=CTl*#e@8eVBPcRL1@Lr~QRSG&{9i>?TA1axP8>_WkqoFS-} z91w|!7gt2e*<#Pb_zwU9)J)%{r2g7fA>$yg>gyYAUHV^1mhyYwK`Ofc6DSixbY+1r z)tx}o|E;q+F7AI|_dG0q12Zg|_raSLyn7?_!-w?^amP!bs!mR^y;tniDI>9-{0M!a zzFvAZ8s zi7XX81D3hX*e*~$e%8qZ?gJu_ZMiL-fD}pFlo{J~y}}dOa^KmifsP-K0G3B;TuSiW zUh{HKF==>dGrYCjQDM|(&|}!rNT>58-}eW~K;-h~l|1O@d@$YH@|ANC6wcq|<^E$R zdHKed4I2sNEUK1RCOFl^cFbj2= zEXkDJA&T3-6F?kI8MLrfs3#m4lSzk^c{K;7vH&Pui>OZdRqj~UUx)?m) zWM8Sf7wY7Zxzy{{{-y{2q2j#m^UJoOb~p3YD6YRNX@=GIHejwr=W}ZJOm6&4naq^{ z&+l$(Q%sbLX!k#}26n+S26GT3-tqT^8tZ7#QY zi8fxhesi&Tx|EFX&~4g#(iBDef-oVal)VzVDHx?6&vXw(lWZa~F)F3D ze#=4cW!8-Ea*|`^ui(VQ3vPQ<-9A8n-j6BSY+_jjGf z{iA)V&VDpnal_1|bQ(Wil6SS=Epc)ZPupi>5$QS6tUr2LUxbZ-c|?iy4ep%Gw`-TG zU790SXFO@W<+{}#1ymp)1!PS?AVCr~v6TW6B!R>vhN#FAq6CBxAcV|K zsM?vfr*%#{bLO1#{GB0i!i6 zS@6t!)%;&6&VWGmUu>Ou+t4Nui&Skq-ipRz(9@;~OUNpZo8q`?30NC%c1=yqcrE!_ zz^Pq9enhWVg)ENb^1|&PrhrpRt5E%|560LBAe9TQ3xhsGM3R(kaJBORC#@z`PjA*% zEzbROJ`M>OXq5@T|4sV(`alN!W^f)QKOM@GM+CpfHc9JumZk!-J5uay!a#MKCO@&d zds+90HP4eFx1*Kj2@K$5<(p8q5S@d+!5jEOrRcwNxS6}A2Pn-SleasOpCOFYr8yM0eMaiRe6%Rk6{ffmZiW_kn4TI*tGLkoHajMDRa!& z>Nw4`>ARhz^#3X4cDkMzurF|IOf3D)tj z16XcdY->}2aT+9DFnq;;c0JPwSC9~d^qEqD2?Hnbc%TC=av9nHb(Y;D4c^sK8cP*|Lbv_cvynO!C3(>sxY`7ZK72t6>{t% zbC%XWixieMtB<>nGgi;hh7?FHZ1#=|Fi$wk?ni>zJj zZ3`mryEF{0BC9FFN|s+4%~})jx+U?`Or0rX(Fc2bTk4uo&OK{hRSgp5=`wk1AC&?b z+C!iWQ!MQ`|(OA9;(>4a^`S{MQ)}BKCIV@a5 z_4Z3OjmX?*%gLp(cCc1V%AD<{t zOtc^00|p1f5<7f*t8tZsP{k0lSDx09X(m?QEyb0stoCk~>^|(AGak{6Ql!|h?Y`|T zL@AU)+dd-k)#G|tXGJT8lc5T3PDqhxSUjl|wl}21m&TfwH}3n?u5du*<29-7SIMjW zpacxJYY?V*oO`Sz_uEp%w6U5QTW-yX@Xv=J4I!lcoH0ZjFbROrccioMA!X2!wDufU zL!bfSJX<#K<&|v;hvCk7QQ%ujEu8gkq@Hl?owaG^ce1uSp2UG6%g|A0Hw#=u*8}g- zN4}rs_V4r^eH3#Z=03}_;W8s{@cT1WLoebp6-+w0tj~aYbepD6D6bGH2z@*-@ts>W zm{;wQ*)+fET_*gB9By_6{ABU*uBr0yKrICDc8|uCA3e)n&?qHyO_>31osU;chh`0O z!<}L+DG>FykkEqjXB1`aIqdaLl+~I#l5nA?S9aCOwsN=b3~nSEmm4w{w)qyoWKIn{{H=H9OjRNTD>>(mCxq4?ogvFlBY? z5cr=kmU&az1zxybc~;@M>?2J~BQp2--7Pt6W0!o$D7iRieaNO@Zf$!_vF=EXbsH{m zW8q(MW{icl5S^uu`*VUYdGYE9M+8*ed`$L;xv_KIVx`e?mI@~$X1m{W;BL0(EC7!1OO=Y~E?`sFVb8Zs%yV%&9`=@GWcQ2)d8;^Fxh-X}j!WGXY$zI;p0rg-pgR*b~1!?gu^YPVh*` zDPdXa-JC1e31f2)OsDZF2&m$#XLDz(^!40aj6x(G$ky^UdN^CLRpNi>OBYf-eLg(! zbpIao@wJK<*B2$KeSRQzZ*M;x8Jkg?NeV~!rQ@j8X$=fW#ZDQK;q{3Ra*P-bwur)BP50~~)w^Vj}&ll!h$u=)U z8}~}Klol{g!f{A*eq!2e##n(5r@l8at({7uyxNgQnZ&^F7N#sMA0Ss54-Or{U)t&P)epNXz$9!HXOo)B= zDl8p$0W9ji#fzDOz5dqG*xZE;fSj|T4HmYz?Jz70BU$#bIdqBGRf;fMR-hQB8jejc zUh8e^TkK~R-#TZV41n7CI-_K|sqK55qGFx1Pp8uHR(>AEKD)u~_e@Ea;+MT>NZ zG3+LqPebzL9x#E+H96 zq&bq1&NYGa@oDdv-v+?^eyuGJtn7cz{N53{H$m>LGHGo+*zEag9DFRf<;;7suCH4OQvXT62jEn1`fV@Pb$}NDHF@?c#RT(7 z_1|RPL{IyR|2=E4eSTM_zbrT_o{ diff --git a/docs/docs/concepts/user_interface.md b/docs/docs/concepts/user_interface.md index c9973c514c..80f9f231c2 100644 --- a/docs/docs/concepts/user_interface.md +++ b/docs/docs/concepts/user_interface.md @@ -91,6 +91,18 @@ Click on the navigation tree icon to expand the tree and view the available navi {{ image("concepts/ui_navigation_tree.png", "Navigation Tree") }} +#### Searching + +The navigation tree includes a search bar at the top of the panel. Typing into the search bar filters the tree to show only entries that match the search query. When a search is active, all matching results are expanded and displayed in a flat list. Clearing the search field returns the tree to its normal browsing mode. + +#### Highlight Selected Entry + +The currently selected entry in the navigation tree is highlighted with a distinct background color, making it easy to identify the active page or section within the hierarchy. + +#### Auto-Expand to Selected Entry + +When the navigation tree is opened, it automatically expands to reveal the currently selected entry. All ancestor nodes in the hierarchy are expanded so the active entry is immediately visible, without requiring manual navigation through the tree. + ## Dashboard The dashboard provides a customizable landing page for users when they log in to the system. The dashboard can be configured to display a variety of widgets and information panels, providing users with quick access to important data and actions. diff --git a/src/backend/InvenTree/InvenTree/api.py b/src/backend/InvenTree/InvenTree/api.py index 79b080bb1d..a85498596f 100644 --- a/src/backend/InvenTree/InvenTree/api.py +++ b/src/backend/InvenTree/InvenTree/api.py @@ -23,6 +23,7 @@ from rest_framework.serializers import ValidationError from rest_framework.views import APIView import InvenTree.config +import InvenTree.filters import InvenTree.permissions import InvenTree.version from common.settings import get_global_setting @@ -963,3 +964,43 @@ def meta_path(model, lookup_field: str = 'pk', lookup_field_ref: str = 'pk'): lookup_field_ref=lookup_field_ref, ), ) + + +class TreeMixin: + """A mixin class for supporting tree-structured data in the API.""" + + # Any API view which inherits from this mixin must define a 'model_class' attribute + model_class = None + + filter_backends = InvenTree.filters.SEARCH_ORDER_FILTER + search_fields = ['name', 'description'] + ordering_fields = ['level', 'name', 'subcategories'] + ordering_field_aliases = {'level': ['level', 'name'], 'name': ['name', 'level']} + ordering = ['level'] + + def filter_queryset(self, queryset): + """Filter the queryset, and provide extra support for tree-structured data.""" + queryset = super().filter_queryset(queryset) + + # If a search term is provided, include all ancestors of matched items in the results + if self.request.query_params.get('search', '').strip(): + ancestors = self.model_class.objects.get_queryset_ancestors( + queryset, include_self=True + ) + queryset = queryset | ancestors + + # If a specific ID is provided to "expand_to", include all ancestors and siblings + if expand_to := self.request.query_params.get('expand_to'): + try: + target = self.model_class.objects.get(pk=int(expand_to)) + target_ancestors = target.get_ancestors(include_self=True) + queryset = queryset | target_ancestors + + # We also want to include the "sibling" nodes of the expanded item + siblings = target.get_siblings(include_self=True) + queryset = queryset | siblings + + except (self.model_class.DoesNotExist, ValueError): + pass + + return queryset.distinct() diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index fff7f52f77..14341d04fb 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,11 +1,14 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 510 +INVENTREE_API_VERSION = 511 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v511 -> 2026-06-19 : https://github.com/inventree/InvenTree/pull/12204 + - Adds new filtering options to PartCategoryTree and StockLocationTree API endpoints + v510 -> 2026-06-18 : https://github.com/inventree/InvenTree/pull/12197 - Require "staff" access permissions for the machine restart API endpoint diff --git a/src/backend/InvenTree/part/api.py b/src/backend/InvenTree/part/api.py index 0df77ff826..1eb603dd7c 100644 --- a/src/backend/InvenTree/part/api.py +++ b/src/backend/InvenTree/part/api.py @@ -21,6 +21,7 @@ from InvenTree.api import ( BulkUpdateMixin, ListCreateDestroyAPIView, ParameterListMixin, + TreeMixin, meta_path, ) from InvenTree.fields import InvenTreeOutputOption, OutputConfiguration @@ -284,25 +285,38 @@ class CategoryDetail(CategoryMixin, OutputOptionsMixin, CustomRetrieveUpdateDest ) -class CategoryTree(ListAPI): +class CategoryTreeFilter(FilterSet): + """Custom filterset class for the CategoryTree endpoint.""" + + class Meta: + """Metaclass options for this filterset.""" + + model = PartCategory + fields = ['parent', 'tree_id', 'level'] + + max_level = rest_filters.NumberFilter( + label=_('Max Level'), + method='filter_max_level', + help_text=_('Limit the depth of the category tree'), + ) + + def filter_max_level(self, queryset, name, value): + """Filter by the maximum depth of the category tree.""" + return queryset.filter(level__lte=value) + + +class CategoryTree(TreeMixin, ListAPI): """API endpoint for accessing a list of PartCategory objects ready for rendering a tree.""" + model_class = PartCategory queryset = PartCategory.objects.all() - serializer_class = part_serializers.CategoryTree - - filter_backends = ORDER_FILTER - - ordering_fields = ['level', 'name', 'subcategories'] - - ordering_field_aliases = {'level': ['level', 'name'], 'name': ['name', 'level']} - - # Order by tree level (top levels first) and then name - ordering = ['level', 'name'] + serializer_class = part_serializers.CategoryTreeSerializer + filterset_class = CategoryTreeFilter def get_queryset(self, *args, **kwargs): """Return an annotated queryset for the CategoryTree endpoint.""" queryset = super().get_queryset(*args, **kwargs) - queryset = part_serializers.CategoryTree.annotate_queryset(queryset) + queryset = part_serializers.CategoryTreeSerializer.annotate_queryset(queryset) return queryset diff --git a/src/backend/InvenTree/part/serializers.py b/src/backend/InvenTree/part/serializers.py index d0ce0d43fa..a9a87c7e80 100644 --- a/src/backend/InvenTree/part/serializers.py +++ b/src/backend/InvenTree/part/serializers.py @@ -181,14 +181,25 @@ class CategorySerializer( parameters = common.filters.enable_parameters_filter() -class CategoryTree(InvenTree.serializers.InvenTreeModelSerializer): +class CategoryTreeSerializer(InvenTree.serializers.InvenTreeModelSerializer): """Serializer for PartCategory tree.""" class Meta: """Metaclass defining serializer fields.""" model = PartCategory - fields = ['pk', 'name', 'parent', 'icon', 'structural', 'subcategories'] + fields = [ + 'pk', + 'name', + 'description', + 'pathstring', + 'parent', + 'tree_id', + 'level', + 'icon', + 'structural', + 'subcategories', + ] subcategories = serializers.IntegerField(label=_('Subcategories'), read_only=True) diff --git a/src/backend/InvenTree/stock/api.py b/src/backend/InvenTree/stock/api.py index 448477782d..31ef0f915a 100644 --- a/src/backend/InvenTree/stock/api.py +++ b/src/backend/InvenTree/stock/api.py @@ -33,11 +33,11 @@ from InvenTree.api import ( BulkCreateMixin, BulkUpdateMixin, ListCreateDestroyAPIView, + TreeMixin, meta_path, ) from InvenTree.fields import InvenTreeOutputOption, OutputConfiguration from InvenTree.filters import ( - ORDER_FILTER, SEARCH_ORDER_FILTER, InvenTreeDateFilter, NumberOrNullFilter, @@ -455,20 +455,33 @@ class StockLocationDetail( ) -class StockLocationTree(ListAPI): +class LocationTreeFilter(FilterSet): + """Custom filterset class for the StockLocationTree endpoint.""" + + class Meta: + """Metaclass options for this filterset.""" + + model = StockLocation + fields = ['parent', 'tree_id', 'level'] + + max_level = rest_filters.NumberFilter( + label=_('Max Level'), + method='filter_max_level', + help_text=_('Limit the depth of the category tree'), + ) + + def filter_max_level(self, queryset, name, value): + """Filter by the maximum depth of the category tree.""" + return queryset.filter(level__lte=value) + + +class StockLocationTree(TreeMixin, ListAPI): """API endpoint for accessing a list of StockLocation objects, ready for rendering as a tree.""" + model_class = StockLocation queryset = StockLocation.objects.all() serializer_class = StockSerializers.LocationTreeSerializer - - filter_backends = ORDER_FILTER - - ordering_fields = ['level', 'name', 'sublocations'] - - # Order by tree level (top levels first) and then name - ordering = ['level', 'name'] - - ordering_field_aliases = {'level': ['level', 'name'], 'name': ['name', 'level']} + filterset_class = LocationTreeFilter def get_queryset(self, *args, **kwargs): """Return annotated queryset for the StockLocationTree endpoint.""" diff --git a/src/backend/InvenTree/stock/serializers.py b/src/backend/InvenTree/stock/serializers.py index 4943dd6dfe..90b1770e62 100644 --- a/src/backend/InvenTree/stock/serializers.py +++ b/src/backend/InvenTree/stock/serializers.py @@ -1160,7 +1160,18 @@ class LocationTreeSerializer(InvenTree.serializers.InvenTreeModelSerializer): """Metaclass options.""" model = StockLocation - fields = ['pk', 'name', 'parent', 'icon', 'structural', 'sublocations'] + fields = [ + 'pk', + 'name', + 'description', + 'pathstring', + 'parent', + 'tree_id', + 'level', + 'icon', + 'structural', + 'sublocations', + ] sublocations = serializers.IntegerField(label=_('Sublocations'), read_only=True) diff --git a/src/frontend/src/components/nav/NavigationTree.tsx b/src/frontend/src/components/nav/NavigationTree.tsx index edca9924c5..ac214707d0 100644 --- a/src/frontend/src/components/nav/NavigationTree.tsx +++ b/src/frontend/src/components/nav/NavigationTree.tsx @@ -5,28 +5,36 @@ import { Divider, Drawer, Group, + HoverCard, + Loader, LoadingOverlay, type RenderTreeNodePayload, Space, Stack, + Text, + TextInput, Tree, type TreeNodeData, useTree } from '@mantine/core'; +import { useDebouncedValue } from '@mantine/hooks'; import { IconChevronDown, IconChevronRight, IconExclamationCircle, - IconSitemap + IconSearch, + IconSitemap, + IconX } from '@tabler/icons-react'; import { useQuery } from '@tanstack/react-query'; -import { useCallback, useMemo } from 'react'; +import { useCallback, useEffect, useMemo, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { StylishText } from '@lib/components/StylishText'; import type { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import type { ModelType } from '@lib/enums/ModelType'; import { apiUrl } from '@lib/functions/Api'; +import { resolveItem } from '@lib/functions/Conversion'; import { eventModified, getDetailUrl, @@ -45,6 +53,7 @@ export default function NavigationTree({ onClose, selectedId, modelType, + childIdentifier, endpoint }: Readonly<{ title: string; @@ -52,26 +61,136 @@ export default function NavigationTree({ onClose: () => void; selectedId?: number | null; modelType: ModelType; + childIdentifier?: string; endpoint: ApiEndpoints; }>) { const api = useApi(); const navigate = useNavigate(); const treeState = useTree(); - // Data query to fetch the tree data from server + const [searchValue, setSearchValue] = useState(''); + const [debouncedSearch] = useDebouncedValue(searchValue, 300); + + // Accumulated flat node list for browse (lazy-load) mode + const [allNodes, setAllNodes] = useState([]); + // PKs of nodes whose children are currently being fetched + const [loadingNodes, setLoadingNodes] = useState>(new Set()); + + // Reset everything when the drawer opens or closes + useEffect(() => { + setSearchValue(''); + setAllNodes([]); + setLoadingNodes(new Set()); + }, [opened]); + + // Data query — browse mode loads root nodes only; search mode loads all matches + ancestors const query = useQuery({ enabled: opened, - queryKey: [modelType, opened], + queryKey: [modelType, 'tree', opened, debouncedSearch, selectedId], queryFn: async () => api .get(apiUrl(endpoint), { - data: { - ordering: 'level' + params: { + ordering: 'level', + search: debouncedSearch || undefined, + max_level: debouncedSearch ? undefined : 0, + expand_to: debouncedSearch ? undefined : (selectedId ?? undefined) } }) .then((response) => response.data ?? []) }); + // When the browse-mode query settles, reset the node list and expand ancestors of the selection + useEffect(() => { + if (!debouncedSearch && query.data && !query.isFetching) { + setAllNodes(query.data); + setLoadingNodes(new Set()); + + if (selectedId) { + const nodeMap: Record = {}; + for (const n of query.data) nodeMap[n.pk] = n; + + // Collect every ancestor pk, then apply in one setExpandedState call to + // avoid closure/batching issues that arise from calling expand() in a loop. + const toExpand: Record = {}; + let current = nodeMap[selectedId]; + while (current?.parent) { + toExpand[current.parent.toString()] = true; + current = nodeMap[current.parent]; + } + if (Object.keys(toExpand).length) { + treeState.setExpandedState({ + ...treeState.expandedState, + ...toExpand + }); + } + } + } + }, [debouncedSearch, query.data, query.isFetching, selectedId]); + + // Collapse all nodes when the search term changes (switching modes). + // Intentionally omits query.data so it does NOT fire when browse results arrive — + // that would undo the ancestor expansion done above. + useEffect(() => { + treeState.collapseAllNodes(); + }, [debouncedSearch]); + + // Expand all nodes once search results have fully arrived + useEffect(() => { + if (debouncedSearch && !query.isFetching && query.data?.length) { + treeState.expandAllNodes(); + } + }, [debouncedSearch, query.data, query.isFetching]); + + // Fetch direct children of a node (browse mode only). + // Zeros out the childIdentifier count on success with no results so the node + // is treated as a leaf and won't be re-fetched on subsequent clicks. + const fetchChildren = useCallback( + async (nodeValue: string) => { + const pk = Number.parseInt(nodeValue); + if (loadingNodes.has(pk)) return; + + const nodeInfo = allNodes.find((n) => n.pk === pk); + if (!nodeInfo) return; + + setLoadingNodes((prev) => new Set([...prev, pk])); + + try { + const response = await api.get(apiUrl(endpoint), { + params: { + ordering: 'level', + parent: pk, + max_level: nodeInfo.level + 1 + } + }); + const children: any[] = response.data ?? []; + + setAllNodes((prev) => { + if (children.length === 0 && childIdentifier) { + // No children returned — zero out the count so this node is treated + // as a leaf and won't trigger another fetch on the next click. + return prev.map((n) => + n.pk === pk ? { ...n, [childIdentifier]: 0 } : n + ); + } + const existing = new Set(prev.map((n) => n.pk)); + return [...prev, ...children.filter((n) => !existing.has(n.pk))]; + }); + + if (children.length > 0) { + treeState.expand(nodeValue); + } + } finally { + setLoadingNodes((prev) => { + const next = new Set(prev); + next.delete(pk); + return next; + }); + } + }, + [loadingNodes, allNodes, api, endpoint, childIdentifier] + ); + const follow = useCallback( (node: TreeNodeData, event?: any) => { const url = getDetailUrl(modelType, node.value); @@ -85,107 +204,156 @@ export default function NavigationTree({ [modelType, navigate] ); - // Map returned query to a "tree" structure - const data: TreeNodeData[] = useMemo(() => { - /* - * Reconstruct the navigation tree from the provided data. - * It is required (and assumed) that the data is first sorted by level. - */ + // In search mode use the query results directly; in browse mode use the accumulated lazy-load list + const sourceNodes: any[] = useMemo( + () => (debouncedSearch ? (query.data ?? []) : allNodes), + [debouncedSearch, query.data, allNodes] + ); + // Map flat node list to a nested tree structure (parents must precede children) + const data: TreeNodeData[] = useMemo(() => { const nodes: Record = {}; const tree: TreeNodeData[] = []; - if (!query || !query?.data?.length) { - return []; - } + if (!sourceNodes.length) return []; - for (let ii = 0; ii < query.data.length; ii++) { + // Sort by level so parents are always inserted before their children, + // regardless of the order the API returns items (e.g. after ancestor union in search mode). + const sorted = [...sourceNodes].sort((a, b) => a.level - b.level); + + for (const raw of sorted) { const node = { - ...query.data[ii], + ...raw, children: [], label: ( - - {query.data[ii].name} + + {raw.name} ), - value: query.data[ii].pk.toString(), - selected: query.data[ii].pk === selectedId + value: raw.pk.toString(), + selected: raw.pk === selectedId }; const pk: number = node.pk; const parent: number | null = node.parent; if (!parent) { - // This is a top level node tree.push(node); } else { - // This is *not* a top level node, so the parent *must* already exist nodes[parent]?.children.push(node); } - // Finally, add this node nodes[pk] = node; - - if (pk === selectedId) { - // Expand all parents - let parent = nodes[node.parent]; - while (parent) { - parent.expanded = true; - parent = nodes[parent.parent]; - } - } } return tree; - }, [selectedId, query.data]); + }, [selectedId, sourceNodes]); const renderNode = useCallback( (payload: RenderTreeNodePayload) => { + const nodeInfo = payload.node as any; + const pk = Number.parseInt(payload.node.value); + const isLoading = loadingNodes.has(pk); + + // A node has children if they are already in the tree, or if the server-side + // count (childIdentifier) says so and they haven't been loaded yet. + const childrenLoaded = nodeInfo.children.length > 0; + const needsFetch = + !isLoading && + !debouncedSearch && + !childrenLoaded && + !!(childIdentifier && resolveItem(payload.node, childIdentifier)); + const hasChildren = childrenLoaded || needsFetch; + + const isSelected = nodeInfo.selected === true; + return ( { - if (payload.hasChildren) { + if (isLoading || !hasChildren) return; + if (needsFetch) { + fetchChildren(payload.node.value); + } else { treeState.toggleExpanded(payload.node.value); } }} > - - + {(isLoading || hasChildren || payload.expanded) && ( + + {isLoading ? ( + + ) : hasChildren ? ( + payload.expanded ? ( + + ) : ( + + ) + ) : null} + + )} + - {payload.hasChildren ? ( - payload.expanded ? ( - - ) : ( - - ) - ) : null} - - follow(payload.node, event)} - aria-label={`nav-tree-item-${payload.node.value}`} - c='var(--mantine-color-text)' - > - {payload.node.label} - + + follow(payload.node, event)} + aria-label={`nav-tree-item-${payload.node.value}`} + c='var(--mantine-color-text)' + > + {payload.node.label} + + + + + + {nodeInfo.icon && } + + {nodeInfo.name} + + + {nodeInfo.description && ( + + {nodeInfo.description} + + )} + + + ); }, - [treeState] + [ + treeState, + childIdentifier, + follow, + loadingNodes, + fetchChildren, + debouncedSearch + ] ); return ( + setSearchValue(event.currentTarget.value)} + leftSection={} + rightSection={ + searchValue ? ( + setSearchValue('')} + aria-label={t`Clear search`} + > + + + ) : null + } + /> {query.isError ? ( }> {t`Error loading navigation tree.`} + ) : !query.isFetching && !query.isLoading && data.length === 0 ? ( + }> + {t`No results found`} + ) : ( - + )} diff --git a/src/frontend/src/pages/part/CategoryDetail.tsx b/src/frontend/src/pages/part/CategoryDetail.tsx index 4c47958da5..9d0077e9c8 100644 --- a/src/frontend/src/pages/part/CategoryDetail.tsx +++ b/src/frontend/src/pages/part/CategoryDetail.tsx @@ -377,6 +377,7 @@ export default function CategoryDetail() { modelType={ModelType.partcategory} title={t`Part Categories`} endpoint={ApiEndpoints.category_tree} + childIdentifier='subcategories' opened={treeOpen} onClose={() => { setTreeOpen(false); diff --git a/src/frontend/src/pages/part/PartDetail.tsx b/src/frontend/src/pages/part/PartDetail.tsx index 5182a1c249..af83e85522 100644 --- a/src/frontend/src/pages/part/PartDetail.tsx +++ b/src/frontend/src/pages/part/PartDetail.tsx @@ -1152,6 +1152,7 @@ export default function PartDetail() { {user.hasViewRole(UserRoles.part_category) && ( setTreeOpen(false)} selectedId={location?.pk} diff --git a/src/frontend/src/pages/stock/StockDetail.tsx b/src/frontend/src/pages/stock/StockDetail.tsx index 451b787afa..5d73866074 100644 --- a/src/frontend/src/pages/stock/StockDetail.tsx +++ b/src/frontend/src/pages/stock/StockDetail.tsx @@ -1066,6 +1066,7 @@ export default function StockDetail() { title={t`Stock Locations`} modelType={ModelType.stocklocation} endpoint={ApiEndpoints.stock_location_tree} + childIdentifier='sublocations' opened={treeOpen} onClose={() => setTreeOpen(false)} selectedId={stockitem?.location} diff --git a/src/frontend/tests/pages/pui_stock.spec.ts b/src/frontend/tests/pages/pui_stock.spec.ts index 0f568349f1..bcf8d64d72 100644 --- a/src/frontend/tests/pages/pui_stock.spec.ts +++ b/src/frontend/tests/pages/pui_stock.spec.ts @@ -70,6 +70,24 @@ test('Stock - Location Tree', async ({ browser }) => { await page.getByLabel('breadcrumb-1-factory').click(); await page.getByRole('cell', { name: 'Factory' }).first().waitFor(); + + // Load the tree again - from a deeply nested location + // We expect it to auto-expand to the current location + await navigate(page, 'stock/location/17/stock-items'); + await page.getByLabel('nav-breadcrumb-action').click(); + + for (let ii = 0; ii <= 5; ii++) { + await page + .locator('div') + .filter({ hasText: `Location ${ii}` }) + .first() + .waitFor(); + } + + // Let's search for a particular location + await page.getByRole('textbox', { name: 'nav-tree-search' }).fill('room'); + await page.getByText('Storage Room A').first().waitFor(); + await page.getByText('Storage Room B').first().waitFor(); }); test('Stock - Location Delete', async ({ browser }) => { From 6657000d89ad069c641f170c2885b37e85edd6c0 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 19 Jun 2026 17:18:59 +1000 Subject: [PATCH 05/40] [UI] Fix NewsWidget (#12205) --- .../src/components/dashboard/widgets/NewsWidget.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/frontend/src/components/dashboard/widgets/NewsWidget.tsx b/src/frontend/src/components/dashboard/widgets/NewsWidget.tsx index 5dab794dce..687fc5afc2 100644 --- a/src/frontend/src/components/dashboard/widgets/NewsWidget.tsx +++ b/src/frontend/src/components/dashboard/widgets/NewsWidget.tsx @@ -130,9 +130,13 @@ export default function NewsWidget() { )) ) : ( - - {t`There are no unread news items`} - + + + + {t`There are no unread news items`} + + + )} From 8a092b4d1da04124a73faa4eca011d3e98e84ef0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Jun 2026 09:50:45 +1000 Subject: [PATCH 06/40] chore(deps): bump the dependencies group across 1 directory with 12 updates (#12210) * chore(deps): bump the dependencies group across 1 directory with 12 updates Bumps the dependencies group with 12 updates in the /src/backend directory: | Package | From | To | | --- | --- | --- | | [boto3](https://github.com/boto/boto3) | `1.43.23` | `1.43.28` | | [botocore](https://github.com/boto/botocore) | `1.43.23` | `1.43.28` | | [django-js-asset](https://github.com/feincms/django-js-asset) | `3.1.2` | `4.0.1` | | [django-money](https://github.com/django-money/django-money) | `3.6.0` | `3.6.1` | | [grpcio](https://github.com/grpc/grpc) | `1.81.0` | `1.81.1` | | [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.35.1` | | [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.61.1` | `2.62.0` | | [structlog](https://github.com/hynek/structlog) | `25.5.0` | `26.1.0` | | [tqdm](https://github.com/tqdm/tqdm) | `4.68.1` | `4.68.2` | | [wcwidth](https://github.com/jquast/wcwidth) | `0.7.0` | `0.8.1` | | [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.2.1` | | [zopfli](https://github.com/fonttools/py-zopfli) | `0.4.2` | `0.4.3` | Updates `boto3` from 1.43.23 to 1.43.28 - [Release notes](https://github.com/boto/boto3/releases) - [Commits](https://github.com/boto/boto3/compare/1.43.23...1.43.28) Updates `botocore` from 1.43.23 to 1.43.28 - [Commits](https://github.com/boto/botocore/compare/1.43.23...1.43.28) Updates `django-js-asset` from 3.1.2 to 4.0.1 - [Changelog](https://github.com/feincms/django-js-asset/blob/main/CHANGELOG.rst) - [Commits](https://github.com/feincms/django-js-asset/compare/3.1.2...4.0.1) Updates `django-money` from 3.6.0 to 3.6.1 - [Release notes](https://github.com/django-money/django-money/releases) - [Changelog](https://github.com/django-money/django-money/blob/main/docs/changes.rst) - [Commits](https://github.com/django-money/django-money/compare/3.6.0...3.6.1) Updates `grpcio` from 1.81.0 to 1.81.1 - [Release notes](https://github.com/grpc/grpc/releases) - [Commits](https://github.com/grpc/grpc/compare/v1.81.0...v1.81.1) Updates `protobuf` from 6.33.6 to 7.35.1 - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Commits](https://github.com/protocolbuffers/protobuf/commits) Updates `sentry-sdk` from 2.61.1 to 2.62.0 - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/2.61.1...2.62.0) Updates `structlog` from 25.5.0 to 26.1.0 - [Release notes](https://github.com/hynek/structlog/releases) - [Changelog](https://github.com/hynek/structlog/blob/main/CHANGELOG.md) - [Commits](https://github.com/hynek/structlog/compare/25.5.0...26.1.0) Updates `tqdm` from 4.68.1 to 4.68.2 - [Release notes](https://github.com/tqdm/tqdm/releases) - [Commits](https://github.com/tqdm/tqdm/compare/v4.68.1...v4.68.2) Updates `wcwidth` from 0.7.0 to 0.8.1 - [Release notes](https://github.com/jquast/wcwidth/releases) - [Commits](https://github.com/jquast/wcwidth/compare/0.7.0...0.8.1) Updates `wrapt` from 1.17.3 to 2.2.1 - [Release notes](https://github.com/GrahamDumpleton/wrapt/releases) - [Changelog](https://github.com/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst) - [Commits](https://github.com/GrahamDumpleton/wrapt/compare/1.17.3...2.2.1) Updates `zopfli` from 0.4.2 to 0.4.3 - [Release notes](https://github.com/fonttools/py-zopfli/releases) - [Commits](https://github.com/fonttools/py-zopfli/compare/v0.4.2...v0.4.3) --- updated-dependencies: - dependency-name: boto3 dependency-version: 1.43.28 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: botocore dependency-version: 1.43.28 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: django-js-asset dependency-version: 4.0.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: dependencies - dependency-name: django-money dependency-version: 3.6.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: grpcio dependency-version: 1.81.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: protobuf dependency-version: 7.35.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: dependencies - dependency-name: sentry-sdk dependency-version: 2.62.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: structlog dependency-version: 26.1.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: dependencies - dependency-name: tqdm dependency-version: 4.68.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: wcwidth dependency-version: 0.8.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: wrapt dependency-version: 2.2.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: dependencies - dependency-name: zopfli dependency-version: 0.4.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies ... Signed-off-by: dependabot[bot] * fix style * general bump * bump dev tools --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Matthias Mair --- contrib/container/requirements.txt | 40 +-- contrib/dev_reqs/requirements.txt | 6 +- docs/requirements.txt | 6 +- src/backend/requirements-3.14.txt | 370 +++++++++++++------------- src/backend/requirements-dev-3.14.txt | 48 ++-- src/backend/requirements-dev.txt | 280 +++++++++---------- src/backend/requirements.txt | 370 +++++++++++++------------- 7 files changed, 570 insertions(+), 550 deletions(-) diff --git a/contrib/container/requirements.txt b/contrib/container/requirements.txt index b183af8118..066208a24c 100644 --- a/contrib/container/requirements.txt +++ b/contrib/container/requirements.txt @@ -236,26 +236,26 @@ typing-extensions==4.15.0 \ # via # -c src/backend/requirements.txt # psycopg-pool -uv==0.11.19 \ - --hash=sha256:28b0d612a766eb25756dbaa315433b726e93affa467d29a2682cc317547952ba \ - --hash=sha256:2d663bacb97e2e8412d1c26eace28c7ebbde9d6f5d7d78760fafd114d693817f \ - --hash=sha256:2e0e0b8ad59ec56f1440d6e4313b64a1d8119275dcec73d19eef33c43f99428c \ - --hash=sha256:301fd78309fc545c2cec2bfcc61a6bbdde876856c6d2041502737cf44085c178 \ - --hash=sha256:32d7988c0dfb6f90941f201c871a4478e96e4f2a32bdb2256d62a78ee20593fc \ - --hash=sha256:480fc34a8d0967af6a90b3f99a6e5687cd5c6e29528de96bec04d6e305a59363 \ - --hash=sha256:50e4d4796ca1a6da359a4f723a0fea86640c381d3ff4fa759a41badd7cb52dee \ - --hash=sha256:574f5dd4f31666661ea6386d3b91c5f0e8b84a8cae98ebba447c4674f2e6a4c7 \ - --hash=sha256:62b0b35a51d3034ff30ecd0f381e9bbc20d5b335754f54b098da29424d551ceb \ - --hash=sha256:65e932720daed1af1f720a0ff5f9b33ee5f7ad97488dcceceb85154fc1323b82 \ - --hash=sha256:7222f45b5541551057bfc2e3021f113800704f665c119fdf3ea700c6c4859b21 \ - --hash=sha256:731d9fab8db5d41590af64236d03f8069c8da665fd0f9493b85985f19c86cd90 \ - --hash=sha256:7fdd881cd6d80782afcf8c1d446dd15a42985167fd812b763d38ba1e4a8d944d \ - --hash=sha256:8f90b6687a480d154595aa619fb836a9a20d00ce37293db8099aad924f2b18f9 \ - --hash=sha256:a98495b9dd67287d8c1a0786f98cb037a50f0ee6c3d648572edaa7137aabc277 \ - --hash=sha256:aa6a7e8d07b33ad22f4732848ebb1d9486503973c248d6e632c06ce4339fe347 \ - --hash=sha256:c729f56ffef9b945053412c839695e8a0b13758aa15b7763e95a7dd539a6f522 \ - --hash=sha256:f4aa17ffd719daf37b7a6265efd3ee4922a8ddaabaf0406d2b28c7e5ce2f20ff \ - --hash=sha256:f56f5bf853626a30423052d7ee00bf5cc940a08347d6ee7ede96862d084054a5 +uv==0.11.23 \ + --hash=sha256:03fbb0a1c7b6d15e96778bdd79e8d1826c6259fea17fc13337fb0744136953f2 \ + --hash=sha256:3a900c8fd757f8c3da9dc5532d9a22d30540e91fdefd63c93909fedbfd756655 \ + --hash=sha256:576d776a1ca62e3d8aba99f0d8ec607db91a5ebaf52feaff820f28ed820e1665 \ + --hash=sha256:61e6bd7e7f0fe24f103540ba19516443bea6e689022c787217310a1e64558e3f \ + --hash=sha256:6d7cea7d9ade3c1c3e3db1dfcc23d335bceaabf38f51e442b6f57f8f7885a9a6 \ + --hash=sha256:7a85330de0a7eb0d5c6cf03c80edfb86facad19df367a0b52fc906db1ab15ce9 \ + --hash=sha256:91d19c4249d7437b69b91c385134360d7ed9d0ee2e2e83e81d369867151e78c2 \ + --hash=sha256:985aa93c9d6223e32fc747e09662537c4073c9ebef59c0a4fd7c6949d1d24fb3 \ + --hash=sha256:9dd412127cbe0e115bd3fc5c6cbe9cf59f593273fafab9f7dc6b2ac95efcc7c1 \ + --hash=sha256:ac337dacd640aab1ef97cf00f8c01e2889f0fd0ef8460a0f4e816bf12bb5988b \ + --hash=sha256:b3f515fd6b43068f241467496bced62cb2ed36d52d4c0877cfe61a1240713d32 \ + --hash=sha256:b8abe7d6f5e0d92bd41a9c000bbd9c8387af7886df4790c0451a34e781b8a075 \ + --hash=sha256:bbc41182d655f92cd380ecdf378da7fc1598c6b19057208f450f0ee9c259f46a \ + --hash=sha256:c2089b992919858dabae89d410cbb5cecf9034d26bbb04f14e6da52dffced290 \ + --hash=sha256:ca1d37e851fb9323250385403d8512a71c0d1b6162c729ff4909f37cfd067920 \ + --hash=sha256:d256f90513d01ff6cbc2f17d88c0ccde65d138500df547ece214e6a50731c4b7 \ + --hash=sha256:d62410e5f60a961cfda00ead8a1cc5fd37d052afda021099e488e90c15419beb \ + --hash=sha256:e7e215d69ea21fd5824a63edf8fef933bee2c028a0c2930651cfa6b88ca4ff8e \ + --hash=sha256:f2476dda35866ea3ded3a5905759da2d32dfac36dfd5b3428191a99a8ce15b02 # via -r contrib/container/requirements.in wheel==0.47.0 \ --hash=sha256:212281cab4dff978f6cedd499cd893e1f620791ca6ff7107cf270781e587eced \ diff --git a/contrib/dev_reqs/requirements.txt b/contrib/dev_reqs/requirements.txt index a8768a8b2a..916e1453b7 100644 --- a/contrib/dev_reqs/requirements.txt +++ b/contrib/dev_reqs/requirements.txt @@ -1,8 +1,8 @@ # This file was autogenerated by uv via the following command: # uv pip compile contrib/dev_reqs/requirements.in -o contrib/dev_reqs/requirements.txt -c src/backend/requirements.txt -certifi==2026.5.20 \ - --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ - --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d +certifi==2026.6.17 \ + --hash=sha256:024c88eeec92ca068db80f02b8b07c9cef7b9fe261d1d535abfd5abd6f6af432 \ + --hash=sha256:2227dcbaafe0d2f59279d1762ddddc37783ed4354594f194ffc31d20f41fc3db # via # -c src/backend/requirements.txt # requests diff --git a/docs/requirements.txt b/docs/requirements.txt index b0e38b0b6c..fd0a15017e 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -28,9 +28,9 @@ bracex==2.6 \ --hash=sha256:0b0049264e7340b3ec782b5cb99beb325f36c3782a32e36e876452fd49a09952 \ --hash=sha256:98f1347cd77e22ee8d967a30ad4e310b233f7754dbf31ff3fceb76145ba47dc7 # via wcmatch -certifi==2026.5.20 \ - --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ - --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d +certifi==2026.6.17 \ + --hash=sha256:024c88eeec92ca068db80f02b8b07c9cef7b9fe261d1d535abfd5abd6f6af432 \ + --hash=sha256:2227dcbaafe0d2f59279d1762ddddc37783ed4354594f194ffc31d20f41fc3db # via # -c src/backend/requirements.txt # httpcore diff --git a/src/backend/requirements-3.14.txt b/src/backend/requirements-3.14.txt index cf7e17b69f..55035af0c8 100644 --- a/src/backend/requirements-3.14.txt +++ b/src/backend/requirements-3.14.txt @@ -101,16 +101,16 @@ blessed==1.44.0 \ # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -boto3==1.43.23 \ - --hash=sha256:5d26498702ffd021dc0d57d0eefcc7101cd995ea0ed08c057c9b631efccbaa48 \ - --hash=sha256:8afc058924ef8a5c62467fe2e1e2e0304c22018587a044714da89f9c602ba856 +boto3==1.43.34 \ + --hash=sha256:42595057324606928c6e2432b3093978e4d722e0d432bce942f2a385702c0a43 \ + --hash=sha256:444207c6c883d4df3ea3b2c36df43ad492b86e0b889eebd2fc1d5ea8db0a8a1a # via # -c src/backend/requirements.txt # django-anymail # django-storages -botocore==1.43.23 \ - --hash=sha256:69ff3d951cb644d1d84db646663c7eb919dc9c0c47e5768e947c8a71121b3d77 \ - --hash=sha256:a6737c598750f330bfa8ef2be2d9fa84b5d2d643b6bbb0d22e129e03b7535df1 +botocore==1.43.34 \ + --hash=sha256:238a0269f33c5914b9343900b44767e783b3e8b6dcb6e065eac8b4495601c5df \ + --hash=sha256:ccc973cf30c6445b30afe5760f6dc949a80f1f862cb23d9c45747f2c814ece77 # via # -c src/backend/requirements.txt # boto3 @@ -219,9 +219,9 @@ brotli==1.2.0 \ # via # -c src/backend/requirements.txt # fonttools -certifi==2026.5.20 \ - --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ - --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d +certifi==2026.6.17 \ + --hash=sha256:024c88eeec92ca068db80f02b8b07c9cef7b9fe261d1d535abfd5abd6f6af432 \ + --hash=sha256:2227dcbaafe0d2f59279d1762ddddc37783ed4354594f194ffc31d20f41fc3db # via # -c src/backend/requirements.txt # requests @@ -614,9 +614,9 @@ django-ipware==7.0.1 \ # via # -c src/backend/requirements.txt # django-structlog -django-js-asset==3.1.2 \ - --hash=sha256:1fc7584199ed1941ed7c8e7b87ca5524bb0f2ba941561d2a104e88ee9f07bedd \ - --hash=sha256:b5ffe376aebbd73b7af886d675ac9f43ca63b39540190fa8409c9f8e79145f68 +django-js-asset==4.0.1 \ + --hash=sha256:51ad1060115bf741bef88dc1287ca7f70e1d6ea7cf935f52a34f39eca9bd9db1 \ + --hash=sha256:967ac7d95ce094d9f65f358278bcd494201e2f9bbee936430150de83eac9f656 # via # -c src/backend/requirements.txt # django-mptt @@ -637,9 +637,9 @@ django-markdownify==0.9.7 \ # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -django-money==3.6.0 \ - --hash=sha256:94402f2831f2726b94ef2da35b4059441b4c0aedfc47b312472200d4ffdf8d73 \ - --hash=sha256:a8d249bf3ce6ad7fb953530c920cc85ea7f1137c0fde747a74204ea24ec97ab1 +django-money==3.6.1 \ + --hash=sha256:32a8027a91dea969951a34a9cc4a4f101aaa6ec45e7f784f0b17ec7813818fb2 \ + --hash=sha256:9b25d992a457af932eef1e5fef0098dd3ff0c92f4255d2d6d452af772b2fdde5 # via # -c src/backend/requirements.txt # -r src/backend/requirements.in @@ -899,58 +899,58 @@ googleapis-common-protos==1.75.0 \ # -c src/backend/requirements.txt # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -grpcio==1.81.0 \ - --hash=sha256:0fba53cb96004b2b7fb758b46b2288cb49d0b658316a4e73f3ef67230616ee65 \ - --hash=sha256:194eddfacc84d80f50512e9fd4ee851d5f2499f18f299c95aa8fb4748f0537e0 \ - --hash=sha256:19f201da7b4e5c0559198abe5a97157e726f3abe6e8f5e832d4a50740f6dcc22 \ - --hash=sha256:21ec30b9ea320c8207ea7cd05873ad64aa69fdd0e81b6758b3347983ba20b50a \ - --hash=sha256:275144b0115353339dbb8a6f28a9cf8997b5bf40e37f8f66ac0b0ea57e95b43f \ - --hash=sha256:300f3337b6425fd16ead9a4f9b2ac25801acb64aa5bc0b99eb69901645b2b1d2 \ - --hash=sha256:3755c9669307cad18e7e009860fdea98118978d2300451bd8530a53048e741e7 \ - --hash=sha256:3d4e0ce5a40a998cf608c8ba60ecfe18fdf364a9aa193ae4ac3faeecd0e86757 \ - --hash=sha256:40edffb4ec3689373825d367c4457727047a6e554f03245265ecc8cc03215f22 \ - --hash=sha256:43c121e135ae44d1559b430db2b2dfad7421cbbe40e1deba506c7dc62b439719 \ - --hash=sha256:4e032feb3bfb4e2749b140a2302a6baa8ead1b9781ff5cf7094e4402b5e9372e \ - --hash=sha256:5192857589f223e5a98ff0e31f6e551b19040e647d17bfe10116c8a2ce3b8696 \ - --hash=sha256:57b3b0e73a518fa286959b40c3eddd02703504ca186e8b7b2945954519bd8b2c \ - --hash=sha256:5e925a70fe99fe5794f7beca0ea034c75f068afcc356d79047e73f99cdcca34c \ - --hash=sha256:62bbe463c9f0f2ff24e31bd25f8dd8b4bae78900e315915a3195a0ef1471a855 \ - --hash=sha256:638ccc1b86f7540170a169cb900799b9296a1381e47879ce60b0de9d3db73d33 \ - --hash=sha256:725801c7086d7e4cd160e42bb2f54e0aeb976b9568df3cc6f843b15d29b79fb1 \ - --hash=sha256:77eb4e9fe61486bd1198cc7236ebb0f70e66234e63c0348f40bc2553ed16a88b \ - --hash=sha256:7915a2e63acdc05264a206e1bddfd8e1fb8a29e406c18d72d30f8c124e021374 \ - --hash=sha256:794e6aa648e8df47d8f908dc8c3b42347d04ec58438f1dcd4e445f09b4f6b0ce \ - --hash=sha256:8226ba097eed660ef14d36c6a69b85038552bb8b6d17b44a5aa6f9abf48b8e08 \ - --hash=sha256:87e33b7afcfb3585121b5f007d2c52b8c534104d18f556e840d35193ca2a9141 \ - --hash=sha256:8bb1789c94322a13336a2b6c58d9c14d68f8628b6e24205a799c69f5bf8516ce \ - --hash=sha256:8c0855a350886f713b9e458e2a10d208009dcaa849f574e39cd6067db1fe1279 \ - --hash=sha256:909bb3222b53235498d2c5817a0596d82b0aaea490ba93fdf1b060e2938a543c \ - --hash=sha256:97bbd623f7ded558fd4f7cb5a4f600c4d4de65c5dd364c83a5b14b2a10a2d3b5 \ - --hash=sha256:98c6240f563178fc5877bd50e6ff274463e53e1472128f4110742450739659fa \ - --hash=sha256:9f355384e5543ab77a755a7085225ecc19f32b76032e851cbd8145715d79dec8 \ - --hash=sha256:a524cd530900bd24511fcb7f2ed144da4ea37711c4b094475d0bceca7a93a170 \ - --hash=sha256:a5acd7efd3b1fe9b4eb0bcaaa1507eed68a0ad0678b654c3f7b464df9ba9dca5 \ - --hash=sha256:a9351055f52660b58f3d4890ea66188b5134399f82b11aa0c55bd4b99eff5390 \ - --hash=sha256:aa948712c8e5fa40ec250870bda14bc7578e1bb832a8912d9d2a0f720518edbe \ - --hash=sha256:aaaa4f7f2057d795952e4eacf3f342be8b5b156992f6ac85023c8b98794ebd47 \ - --hash=sha256:b4108e5d9d0f651b7eea749116181fe6c315b145661a80ec31f05ec2dbe21af7 \ - --hash=sha256:b76ea9d55cd08fcdbda25d28e0f76679536710acb7fbd5b1f70cb4ac49317265 \ - --hash=sha256:b8b025b6af43ee0ad4a70307025d77bcab5adde7c4597786010d802c203e9fc5 \ - --hash=sha256:b93cee313cae4e113fbb3a0ce1ea5633db6f63cfde2b2dc1d817429026b2a50b \ - --hash=sha256:c197e2ef75a442528072b29e9755da299110e8610e8bcbb59a6b4cf55384f005 \ - --hash=sha256:c36f5d5e97944cbda2d4096b4ae262e6e68506246b61582acf1b8591607f3ccc \ - --hash=sha256:c4fe218c5a35e1d87a5a26544237f1fa41dfd9cbd3c856b0810a30061f8b0aaf \ - --hash=sha256:c6ff087cb1f563f47b504b4e29e684129fc5ae4863faf3ebca08a327764ee6cb \ - --hash=sha256:cd78145b7f7784661c524624f3526c9c6f891b30a4b54cb93a40806d0d0d61e9 \ - --hash=sha256:db217c2e52931719f9937bd12082cd4d7b495b35803d5760686975c285924bf8 \ - --hash=sha256:dbdb99986548a7e87f8343805ef315fd4eb50ffaabf4fb1206e42f2542bb805d \ - --hash=sha256:e4d053900a0d24b75d7521139a3872150301b3d6bde3bed5e12318fb25791e4d \ - --hash=sha256:e7746ba3e6efc9e2b748eff59470a2b8684d5a9ec607c6580bcaa5be175820bc \ - --hash=sha256:f345de40ef2e65f63645d53d251824e6070e07804827c5b00ec2e44555f9f901 \ - --hash=sha256:f750a091fff3a3991731abc1f818bdc64874bb3528162732cb4d45f2e07821a6 \ - --hash=sha256:f85570a016d794c29b1e76cf22f67af4486ddbe779e0f30674f138fa4e1769ec \ - --hash=sha256:fbbe81314a9d92156abce8b62c09364eb8bafc0ca2a19919a45ec64b5c6cb664 \ - --hash=sha256:ff83d889e3ebf6341c8c7864ad8031591ad5ca61599072fc511644d1eb962d2b +grpcio==1.81.1 \ + --hash=sha256:0490c30c261eded63f3f354979f9dc4502a9fb944cccb60cd9dc85f5a7349854 \ + --hash=sha256:0a37165cc80b1a368384b383e63a4c38116a10467ae44c904d2d7468c4470ec2 \ + --hash=sha256:12b7524c88d4026d3dcb7b0ebe16b6714f3b4af402ddd0f0639ab064a00c87c3 \ + --hash=sha256:15641444eca4a29358107b3dceb74c1c6305c55c822fd199b458aaea4068a7fb \ + --hash=sha256:1b22c80559854b789a01fd89e8929b3798a156c0829b5282a8939f33ad4115ad \ + --hash=sha256:1e123f9b37edb8375fd74130d1f69c944bbf0a7b06761ae7211154b8759e94d2 \ + --hash=sha256:24c8e57504c8f45b237e40b99262d181071e5099a07053695b75d97bb53053a0 \ + --hash=sha256:2c2e2ae6867c2966b8daccc836d54a13218e0007e9a490aeb81dd05be64d22d7 \ + --hash=sha256:30e825f6848d9f18bba350ed6c75c1b02a0b5184474a31db9a32b1fa66fd8c79 \ + --hash=sha256:3768a5ff1b2125e6f552e561b6b2dca0e64982d8949689b4df145cf8b98d7821 \ + --hash=sha256:3ad74f8bb1a18963914c5452d289422830b39459e8776ebbcd207be1fbfb1d94 \ + --hash=sha256:410482da976329fe5f4067270401b12cf2bd552ff8020f054ecfaddb5475f9d6 \ + --hash=sha256:428bec0161b48d8cf583c068591bc0016d0d9cfff52462b72b3884861ea768c5 \ + --hash=sha256:506f48f2f9c29b143fca3dad7b0d518c188b6c9648c75a2ae6e2d9f2c13a060b \ + --hash=sha256:58ad1131c300d3c9b933802b3cc4dc69d380822935ba50b28703156ea826fbf7 \ + --hash=sha256:592b5fee597faa91cce2dd294dd7d9a1c83d76c4dbf877e33ec1adb866b2fbed \ + --hash=sha256:61233fe8951e5c85dff81c2458b6528624760166946b5b47ea150a589168411f \ + --hash=sha256:62481553b1793a27e9b9c3cf9e5bd483ef045ca72462592074b46d42b0c4d9b9 \ + --hash=sha256:6282caffb41ec326d4cb67ca9cf53b739d1b2f975a2acb498c7418e9f7d9a416 \ + --hash=sha256:69ef28e54fc85397f91b8c19592b8ef3d81952080366914823bd8572a2958120 \ + --hash=sha256:6f9a0c9c1cc15c112d1c053064fd032b64917062292c3d70aea280e02ae10b77 \ + --hash=sha256:6fa10a767143a5e82e8eaab53918af0cd8909a57a27f8cb2288b80a613ac671b \ + --hash=sha256:766bc7c9a9c340342f4c864ccbda8e78111e4751f13b895812b9c148fb79e9d0 \ + --hash=sha256:78e29211f26da2fdd0e9c6d2b79f489476140cf7029b6a64808ade7ca4156a42 \ + --hash=sha256:819edbdcb42ab8598b494bcf0222684bbb7a3c772bd1b1f0be7e029a6063c28e \ + --hash=sha256:85b10a45b8993d195c4f3ff57025b8d1e11834909ee475c403bfa60cb4caefaf \ + --hash=sha256:88268ca418cacea64cecb0d1d600d3c6b3a8038fcba02e1e205178c5b1f47661 \ + --hash=sha256:8b39472beafc0bdcafc4c8c73ad082ebfdb449d566897a61e7acb4fa88089115 \ + --hash=sha256:8ea1936c26b99999b27479853039a7f34713f56c49375ad52b38535ec93a796c \ + --hash=sha256:98a07f9bf591e3a8919797bee1c53f026ba4acd587e5a4404c8e57c9ec36b2a5 \ + --hash=sha256:a185a04039df6cae8648bc8ab6d6fde7bf94f7188ecf7828e76ac52eef1e41d6 \ + --hash=sha256:a35009284d0d3d5c2c9601c164a911b8b4331608d98a9a66d47d97bb2f522b70 \ + --hash=sha256:a3acb384427816dd5d470f47e62137b87f74da694faa8a50147012cf40df276a \ + --hash=sha256:aa2ba7d2ad6df4d80127cea65e5b8d5e2c3adbf153ff4804452836328aca7c54 \ + --hash=sha256:b10e1ff4756ed27d5a29d7fc79cfce7ef1ff56ad20025b89bac7cf79e09abbbe \ + --hash=sha256:b137f4bf3ada9dc44d411478decc6ff09a79ed30b306cd2abaa98408c3588137 \ + --hash=sha256:b259a04a737cb3496be0901328eb8b7552ed8df4865d8c8f1cf1bffcfc0776a3 \ + --hash=sha256:b427c19380991a4eaab2f6144b64b99b412043314c6bf4ab544f97bb31ee4190 \ + --hash=sha256:bb693b1e3d9a2f3fd228e2110daf4b5aeedb36761ca1e4282f74725f6d89f611 \ + --hash=sha256:c261d74b1a945cf895a9d6eccd1685a8e837531beaab782da4d630a8d12deffb \ + --hash=sha256:c5bf2dc311127d91230cc79b92188c082634a06cf66c5234db49a43b910183b0 \ + --hash=sha256:ca1cc11d82677b9662082e5478b7528e2b7db7beaa6bdff42bd62789d81be399 \ + --hash=sha256:d4b2dddfc219f54f956ccd53cf76a1d338ffe68fc7f2849ec9c7feb9927ff692 \ + --hash=sha256:d71d30f2d92f67d944631c523713934fee37292469e182ebcd2c1dd8a64ce53f \ + --hash=sha256:d865db4a6318e1c1bea83292e0ed231090538fc4ca45425b0f0480eb338bbc6e \ + --hash=sha256:e2aa72e3ce1770317ef534f63d397b55e130725f5149bd36077c3b539019db27 \ + --hash=sha256:e3657301562ac3cb8018d30d0d3ebfa39932239f7b5703422057ef14b69949f5 \ + --hash=sha256:e64dd101d380a115cc5a0c7856788adb535f1a4e21fc543775602f8be95180ae \ + --hash=sha256:e8ca6a1fcdb2943c9cbc1804a1baf3acb6071d72a471591678ded84218006e14 \ + --hash=sha256:edb59506291b647a30884b1d51a599d605f40b20af4a7dc3d33786a47a31de60 \ + --hash=sha256:f9a0ebbe45c29b5e5866593c12b78bd9035f0f0f0d4bc8361680cd580d99db49 # via # -c src/backend/requirements.txt # -r src/backend/requirements.in @@ -961,9 +961,9 @@ gunicorn==26.0.0 \ # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -icalendar==7.1.2 \ - --hash=sha256:01c76243c76c549f58bb51510a8f0a4edb7c539726adda1356dfd0dc04fb7a53 \ - --hash=sha256:ebc43ebeb357be98984b573d975118008dee3410d8df28b054ef2943cf3e367e +icalendar==7.1.3 \ + --hash=sha256:690f30aa50a76cbf854db5ad52654705db9c5cd0e1b152222f5d4b7854b60667 \ + --hash=sha256:eb03a0e215f30db689a72c49f18f998aabf17522eb0858a293c393510850727c # via # -c src/backend/requirements.txt # django-ical @@ -2094,15 +2094,15 @@ rpds-py==2026.5.1 \ # -c src/backend/requirements.txt # jsonschema # referencing -s3transfer==0.18.0 \ - --hash=sha256:239c13b09e65ad0346e1be7348b8a202dcad44ac7ea7c6eb858fc881dce739b6 \ - --hash=sha256:3760b8b7ec1315da54048b2d626276732bee4300d054d492d4e1d43e20d4ecbd +s3transfer==0.19.0 \ + --hash=sha256:777cc2415536f1debadb5c2ef7779275d0fc0fe0e042411cdd6caebeb2685262 \ + --hash=sha256:ce436931687addc4c1712d52d40b32f53e88315723f107ffa20ba82b05a0f685 # via # -c src/backend/requirements.txt # boto3 -sentry-sdk==2.61.1 \ - --hash=sha256:9c6adccb3feefa9ba032c8d295ca477575c2f11896046a2b0ad686c47c4af555 \ - --hash=sha256:fa36eaf4b8ad708f718500d4bdcc1532637526a22beb874d88cbc0a46458b5ae +sentry-sdk==2.63.0 \ + --hash=sha256:2a1502bf864769275dbc8c2c9fc7a0f7f5e18358180b615d262d13a31ffba216 \ + --hash=sha256:3a9b5ddd403f79eb73bd670f75f04485819db53d28f76ced7bc09041cb0dfd6a # via # -c src/backend/requirements.txt # -r src/backend/requirements.in @@ -2131,9 +2131,9 @@ sqlparse==0.5.5 \ # -c src/backend/requirements.txt # django # django-sql-utils -structlog==25.5.0 \ - --hash=sha256:098522a3bebed9153d4570c6d0288abf80a031dfdb2048d59a49e9dc2190fc98 \ - --hash=sha256:a8453e9b9e636ec59bd9e79bbd4a72f025981b3ba0f5837aebf48f02f37a7f9f +structlog==26.1.0 \ + --hash=sha256:e081a26d6c373e6d201eca24eede26d8ffab07f88f477822e679183428d3d91e \ + --hash=sha256:f63a716cbd1b1291cf7661de7794b455acfa4c43c5bcf1630e6ad5ddc1adb3b7 # via # -c src/backend/requirements.txt # django-structlog @@ -2157,9 +2157,9 @@ tinyhtml5==2.1.0 \ # via # -c src/backend/requirements.txt # weasyprint -tqdm==4.68.1 \ - --hash=sha256:fc163d96b287bd031e1aa24421ce4411b25559bd0a1be4fe649bdaa4d2c02bf5 \ - --hash=sha256:fea4a90e4023f764914569f7802a297277c5ab1a66be5144143e142e1a4031d8 +tqdm==4.68.3 \ + --hash=sha256:00dfa48452b6b6cfae3dd9885636c23d3422d1ec97c66d96818cbd5e0821d482 \ + --hash=sha256:39832cc2def2789a6f29df83f172db7416cea70052c0907a57801c5f2fdccb03 # via # -c src/backend/requirements.txt # -r src/backend/requirements.in @@ -2201,9 +2201,9 @@ urllib3==2.7.0 \ # dulwich # requests # sentry-sdk -wcwidth==0.7.0 \ - --hash=sha256:5d69154c429a82910e241c738cd0e2976fac8a2dd47a1a805f4afed1c0f136f2 \ - --hash=sha256:90e3a7ea092341c44b99562e75d09e4d5160fe7a3974c6fb842a101a95e7eed0 +wcwidth==0.8.1 \ + --hash=sha256:f453740b1e4a4f3291faa37944c555d71056c4da08d59809b307ef4feba695c8 \ + --hash=sha256:faf5b4a5366a72dc49cad48cdf21f52bdf63bdda995178e483ba247ff79089b9 # via # -c src/backend/requirements.txt # blessed @@ -2229,88 +2229,97 @@ whitenoise==6.12.0 \ # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -wrapt==1.17.3 \ - --hash=sha256:02b551d101f31694fc785e58e0720ef7d9a10c4e62c1c9358ce6f63f23e30a56 \ - --hash=sha256:042ec3bb8f319c147b1301f2393bc19dba6e176b7da446853406d041c36c7828 \ - --hash=sha256:0610b46293c59a3adbae3dee552b648b984176f8562ee0dba099a56cfbe4df1f \ - --hash=sha256:0b02e424deef65c9f7326d8c19220a2c9040c51dc165cddb732f16198c168396 \ - --hash=sha256:0b1831115c97f0663cb77aa27d381237e73ad4f721391a9bfb2fe8bc25fa6e77 \ - --hash=sha256:0ed61b7c2d49cee3c027372df5809a59d60cf1b6c2f81ee980a091f3afed6a2d \ - --hash=sha256:0f5f51a6466667a5a356e6381d362d259125b57f059103dd9fdc8c0cf1d14139 \ - --hash=sha256:16ecf15d6af39246fe33e507105d67e4b81d8f8d2c6598ff7e3ca1b8a37213f7 \ - --hash=sha256:1f0b2f40cf341ee8cc1a97d51ff50dddb9fcc73241b9143ec74b30fc4f44f6cb \ - --hash=sha256:1f23fa283f51c890eda8e34e4937079114c74b4c81d2b2f1f1d94948f5cc3d7f \ - --hash=sha256:223db574bb38637e8230eb14b185565023ab624474df94d2af18f1cdb625216f \ - --hash=sha256:249f88ed15503f6492a71f01442abddd73856a0032ae860de6d75ca62eed8067 \ - --hash=sha256:24c2ed34dc222ed754247a2702b1e1e89fdbaa4016f324b4b8f1a802d4ffe87f \ - --hash=sha256:273a736c4645e63ac582c60a56b0acb529ef07f78e08dc6bfadf6a46b19c0da7 \ - --hash=sha256:281262213373b6d5e4bb4353bc36d1ba4084e6d6b5d242863721ef2bf2c2930b \ - --hash=sha256:30ce38e66630599e1193798285706903110d4f057aab3168a34b7fdc85569afc \ - --hash=sha256:33486899acd2d7d3066156b03465b949da3fd41a5da6e394ec49d271baefcf05 \ - --hash=sha256:343e44b2a8e60e06a7e0d29c1671a0d9951f59174f3709962b5143f60a2a98bd \ - --hash=sha256:373342dd05b1d07d752cecbec0c41817231f29f3a89aa8b8843f7b95992ed0c7 \ - --hash=sha256:3af60380ba0b7b5aeb329bc4e402acd25bd877e98b3727b0135cb5c2efdaefe9 \ - --hash=sha256:3e62d15d3cfa26e3d0788094de7b64efa75f3a53875cdbccdf78547aed547a81 \ - --hash=sha256:41b1d2bc74c2cac6f9074df52b2efbef2b30bdfe5f40cb78f8ca22963bc62977 \ - --hash=sha256:423ed5420ad5f5529db9ce89eac09c8a2f97da18eb1c870237e84c5a5c2d60aa \ - --hash=sha256:46acc57b331e0b3bcb3e1ca3b421d65637915cfcd65eb783cb2f78a511193f9b \ - --hash=sha256:4da9f45279fff3543c371d5ababc57a0384f70be244de7759c85a7f989cb4ebe \ - --hash=sha256:507553480670cab08a800b9463bdb881b2edeed77dc677b0a5915e6106e91a58 \ - --hash=sha256:53e5e39ff71b3fc484df8a522c933ea2b7cdd0d5d15ae82e5b23fde87d44cbd8 \ - --hash=sha256:54a30837587c6ee3cd1a4d1c2ec5d24e77984d44e2f34547e2323ddb4e22eb77 \ - --hash=sha256:5531d911795e3f935a9c23eb1c8c03c211661a5060aab167065896bbf62a5f85 \ - --hash=sha256:55cbbc356c2842f39bcc553cf695932e8b30e30e797f961860afb308e6b1bb7c \ - --hash=sha256:59923aa12d0157f6b82d686c3fd8e1166fa8cdfb3e17b42ce3b6147ff81528df \ - --hash=sha256:5a03a38adec8066d5a37bea22f2ba6bbf39fcdefbe2d91419ab864c3fb515454 \ - --hash=sha256:5a7b3c1ee8265eb4c8f1b7d29943f195c00673f5ab60c192eba2d4a7eae5f46a \ - --hash=sha256:5d4478d72eb61c36e5b446e375bbc49ed002430d17cdec3cecb36993398e1a9e \ - --hash=sha256:5ea5eb3c0c071862997d6f3e02af1d055f381b1d25b286b9d6644b79db77657c \ - --hash=sha256:604d076c55e2fdd4c1c03d06dc1a31b95130010517b5019db15365ec4a405fc6 \ - --hash=sha256:656873859b3b50eeebe6db8b1455e99d90c26ab058db8e427046dbc35c3140a5 \ - --hash=sha256:65d1d00fbfb3ea5f20add88bbc0f815150dbbde3b026e6c24759466c8b5a9ef9 \ - --hash=sha256:6b538e31eca1a7ea4605e44f81a48aa24c4632a277431a6ed3f328835901f4fd \ - --hash=sha256:6fd1ad24dc235e4ab88cda009e19bf347aabb975e44fd5c2fb22a3f6e4141277 \ - --hash=sha256:70d86fa5197b8947a2fa70260b48e400bf2ccacdcab97bb7de47e3d1e6312225 \ - --hash=sha256:7171ae35d2c33d326ac19dd8facb1e82e5fd04ef8c6c0e394d7af55a55051c22 \ - --hash=sha256:73d496de46cd2cdbdbcce4ae4bcdb4afb6a11234a1df9c085249d55166b95116 \ - --hash=sha256:7425ac3c54430f5fc5e7b6f41d41e704db073309acfc09305816bc6a0b26bb16 \ - --hash=sha256:74afa28374a3c3a11b3b5e5fca0ae03bef8450d6aa3ab3a1e2c30e3a75d023dc \ - --hash=sha256:758895b01d546812d1f42204bd443b8c433c44d090248bf22689df673ccafe00 \ - --hash=sha256:79573c24a46ce11aab457b472efd8d125e5a51da2d1d24387666cd85f54c05b2 \ - --hash=sha256:7e18f01b0c3e4a07fe6dfdb00e29049ba17eadbc5e7609a2a3a4af83ab7d710a \ - --hash=sha256:88547535b787a6c9ce4086917b6e1d291aa8ed914fdd3a838b3539dc95c12804 \ - --hash=sha256:88bbae4d40d5a46142e70d58bf664a89b6b4befaea7b2ecc14e03cedb8e06c04 \ - --hash=sha256:8cccf4f81371f257440c88faed6b74f1053eef90807b77e31ca057b2db74edb1 \ - --hash=sha256:9baa544e6acc91130e926e8c802a17f3b16fbea0fd441b5a60f5cf2cc5c3deba \ - --hash=sha256:a36692b8491d30a8c75f1dfee65bef119d6f39ea84ee04d9f9311f83c5ad9390 \ - --hash=sha256:a47681378a0439215912ef542c45a783484d4dd82bac412b71e59cf9c0e1cea0 \ - --hash=sha256:a7c06742645f914f26c7f1fa47b8bc4c91d222f76ee20116c43d5ef0912bba2d \ - --hash=sha256:a9a2203361a6e6404f80b99234fe7fb37d1fc73487b5a78dc1aa5b97201e0f22 \ - --hash=sha256:ab232e7fdb44cdfbf55fc3afa31bcdb0d8980b9b95c38b6405df2acb672af0e0 \ - --hash=sha256:ad85e269fe54d506b240d2d7b9f5f2057c2aa9a2ea5b32c66f8902f768117ed2 \ - --hash=sha256:af338aa93554be859173c39c85243970dc6a289fa907402289eeae7543e1ae18 \ - --hash=sha256:afd964fd43b10c12213574db492cb8f73b2f0826c8df07a68288f8f19af2ebe6 \ - --hash=sha256:b32888aad8b6e68f83a8fdccbf3165f5469702a7544472bdf41f582970ed3311 \ - --hash=sha256:c31eebe420a9a5d2887b13000b043ff6ca27c452a9a22fa71f35f118e8d4bf89 \ - --hash=sha256:caea3e9c79d5f0d2c6d9ab96111601797ea5da8e6d0723f77eabb0d4068d2b2f \ - --hash=sha256:cf30f6e3c077c8e6a9a7809c94551203c8843e74ba0c960f4a98cd80d4665d39 \ - --hash=sha256:d40770d7c0fd5cbed9d84b2c3f2e156431a12c9a37dc6284060fb4bec0b7ffd4 \ - --hash=sha256:d8a210b158a34164de8bb68b0e7780041a903d7b00c87e906fb69928bf7890d5 \ - --hash=sha256:dc4a8d2b25efb6681ecacad42fca8859f88092d8732b170de6a5dddd80a1c8fa \ - --hash=sha256:df7d30371a2accfe4013e90445f6388c570f103d61019b6b7c57e0265250072a \ - --hash=sha256:e01375f275f010fcbf7f643b4279896d04e571889b8a5b3f848423d91bf07050 \ - --hash=sha256:e1a4120ae5705f673727d3253de3ed0e016f7cd78dc463db1b31e2463e1f3cf6 \ - --hash=sha256:e228514a06843cae89621384cfe3a80418f3c04aadf8a3b14e46a7be704e4235 \ - --hash=sha256:e405adefb53a435f01efa7ccdec012c016b5a1d3f35459990afc39b6be4d5056 \ - --hash=sha256:e6b13af258d6a9ad602d57d889f83b9d5543acd471eee12eb51f5b01f8eb1bc2 \ - --hash=sha256:e6f40a8aa5a92f150bdb3e1c44b7e98fb7113955b2e5394122fa5532fec4b418 \ - --hash=sha256:e71d5c6ebac14875668a1e90baf2ea0ef5b7ac7918355850c0908ae82bcb297c \ - --hash=sha256:ed7c635ae45cfbc1a7371f708727bf74690daedc49b4dba310590ca0bd28aa8a \ - --hash=sha256:f38e60678850c42461d4202739f9bf1e3a737c7ad283638251e79cc49effb6b6 \ - --hash=sha256:f66eb08feaa410fe4eebd17f2a2c8e2e46d3476e9f8c783daa8e09e0faa666d0 \ - --hash=sha256:f9b2601381be482f70e5d1051a5965c25fb3625455a2bf520b5a077b22afb775 \ - --hash=sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10 \ - --hash=sha256:fd341868a4b6714a5962c1af0bd44f7c404ef78720c7de4892901e540417111c +wrapt==2.2.1 \ + --hash=sha256:036dfb40128819a751c6f451c6b9c10172c49e4c401aebcdb8ecf2aec1683598 \ + --hash=sha256:03df9ebed4c73ab93fa8c07e3d41d818dfca1852b15731a3de59457b27814624 \ + --hash=sha256:05d5cb74d1b232ec8cfa130a8f900708699ff2491d97b8f85a4cdc5996294b85 \ + --hash=sha256:07be671fa8875971222b0ba9059ed8b4dc738631122feba17c93aa36b4213e9a \ + --hash=sha256:09ac16c081bebfd15d8e4dfa5bdc805990bbd52249ecff22530da7a129d6120b \ + --hash=sha256:0d9ff006f420b2ec8296aa56ade43ea7da3e997e85769f0aafc5e0661aacb710 \ + --hash=sha256:0f68f478004475d97906686e702ddbddeaf717c0b68ad2794384308f2dc713ae \ + --hash=sha256:17de18fc12cea55b8a9587314cb830573e37fb33b247a7515696350863714188 \ + --hash=sha256:1ae574d65c9fa8e86f64f6a7c2668f9fcd507b183e0e577619f504b883cb0a6c \ + --hash=sha256:1c9934ea5d92957e3cd0adbc0845539dccfd62710ebe16195a8c66c53954db36 \ + --hash=sha256:1d676ee388bc42a04d56dd7deb5605244dac2e35cc2fadbb43c9fa25bbd93508 \ + --hash=sha256:1ffa9cfd4bdb581539951b14ae661ff20ed0c3599b3e911a131ee0ec5ac11337 \ + --hash=sha256:2076d2335085eb09b9547e7688656fa8f5cf0183eab589d33499cd353489d797 \ + --hash=sha256:211f595f8e7faae5c5930fcc64708f2ba36849e0ba0fd653a843de9fa8d7db77 \ + --hash=sha256:24c52546acf2ab82412f2ab6fc5948a7fe958d3b4f070202e8dcdd865489eaf9 \ + --hash=sha256:2d83966dc7f4f45e8b97b5933685ac2e6e67fc0e19246ea314bceb9a8970c956 \ + --hash=sha256:2de9e20769fe9c1f6dcdc893c6a89287c5ccf8537c90b5de78aed8017697aad5 \ + --hash=sha256:2e08688ab16525897da6589d56d0aebaf417bbe91c2d8e3b96203b1efa596e85 \ + --hash=sha256:2f8c90c8afde51969487be4e1343ae049b268854877d415c2510baf833775052 \ + --hash=sha256:368eac1e20fd0bb03dd3cc42bf9887154c3861b60989389ccb5fac032617d215 \ + --hash=sha256:3aafea2975caef8ca49400640dde02cc7426e798f24870ed01f490bc3cffd32f \ + --hash=sha256:3e2f02472a1cbbf3884b365714a810b5947134a95ad6952b554cb8cce9d492b0 \ + --hash=sha256:3ffad790d9d11d8ecf9f17c4bb671a5b4089e4d8b575c46c5129597f41f836b0 \ + --hash=sha256:401229e9d63ca09f9b8891ecf83798d26c11bbb445d11ed9f1836b6d4585b38a \ + --hash=sha256:436addbc4bb4fc0a88c702577f51195d7d73683a7f3e0e5b253d8404d7847243 \ + --hash=sha256:44255c84bc57554fed822e83e70036b51afa9edb56fc7ca56c54410ece7898c9 \ + --hash=sha256:50972a1d974ea07725a7f6b1cec5f8759008afd030a0024843ebe7d52de47f2b \ + --hash=sha256:5590d63f5243251641cf543009b4c9314a79d0598fdb8a8e4cfc918494536c53 \ + --hash=sha256:585916e210db57b23543342c2f298e42331b617fd0c934caf5c64df44de8640e \ + --hash=sha256:5f1845c2a8cc1180ccccfa45785dd06f562730d19ef75be180334254012b6283 \ + --hash=sha256:5fa9bf3b9e66336589d03f42abce2da1055ad5c69b0c2b764852a8471c9b9114 \ + --hash=sha256:61a0013344674d2b648bc6e6fe9828dd4fc1d3b4eb7523809792f8cb952e2f16 \ + --hash=sha256:61acce4257a9883669703c525447c5b4c392edf0f987ae77ec32668440158f0e \ + --hash=sha256:628f5220c7a904d5fc78f7075c8d7871433eb6d035c94728a22fdf85f193d2a8 \ + --hash=sha256:64b7deeda4b70408e382328d8bbe52a256fe9bc63ae3db86d804608367e5422c \ + --hash=sha256:6744f504375775d7609c82c8d3d94af1c9a6f05586984536905908ba905277b9 \ + --hash=sha256:67a97e5b6c457f0cd3cfc19ebb2d84463e60c3ece754cc831e4281a3ca29bb18 \ + --hash=sha256:69f2e9244542cb34dd59c7f073445b9e54ad9f3fce8d93606c368a1b499fc413 \ + --hash=sha256:6ce32763ac31ce94fe9aada947e479b1975012bff166da409b4b9e4e376cf7e5 \ + --hash=sha256:6f56a647e4eaf5f0ca40330fb070f566bdf9f7b0db89a1af20d71c28dcd7a0ab \ + --hash=sha256:727ab4244622cd6ad2390f322642090c877d2e83a608d2653a7643ae5368d926 \ + --hash=sha256:74d6a0c31472fe5d814917266b9f46495d7c61ed890af08b468acea92fb89a8d \ + --hash=sha256:78b0aa6bfb7be8deed0ab23e7aa028cc5210c29bc2d32a04d52b50e517a7307e \ + --hash=sha256:7975bc88ab4b0f72ef2a2d5ae9d77d87efb5ef95e8f8046242fa9afdaaf2030b \ + --hash=sha256:7a4fdb9326aab4a5a477a1640e5ad786a8495901009d7e7b038371edd23a9d2b \ + --hash=sha256:844c858fc3bb7eacc0ba8efa904935d16aac6a4470948ad1e7e55c9f5a2a665f \ + --hash=sha256:87bacdaf225117a342a20d9c03438d701c02112f6e3f351ce9b7f32354f14797 \ + --hash=sha256:8a983a603a18c8708f024f7f6991b2e66159219abbf894634c5056243c55f3cd \ + --hash=sha256:8d1b4d0e0c2119587a31f5c029abd547e0c81d93b89d394566fe1588659eb579 \ + --hash=sha256:9011395be8db1827d106c6449b4bb6dd17e331ff6ec521f227e4588f1c78e46f \ + --hash=sha256:93fc2bf40cd7f4a0256010dce073d44eeb4a351b9bca94d0477ce2b6e62532b3 \ + --hash=sha256:95821352042722cd9f1108874579a47989d0a7e12a37d87d2fc4af20fd99ab8a \ + --hash=sha256:9907a4402ab6db12b7077a0ea5d7a4d028ecb22c8eee2b53527080d347cd1562 \ + --hash=sha256:9a04c28c10ba7fd12842b109d2edb0678872a2fe65277ca4ff06a0d61edee245 \ + --hash=sha256:9a5934eaea872e17936b5f45501eba5ab0bce9a74122e172b663d7c28c459c4a \ + --hash=sha256:9b984d1eb252145d6302c1dbd5e87fc6d404d45531447c84eadec04bf1fcb027 \ + --hash=sha256:9c210a6994b21aa9b29e81c8d11560e8fdab54c117e9cff37870d0a27bde1343 \ + --hash=sha256:9d8f204c8e3a8bf9ece17e0a83d137fd807440977f8a5e762d59306795011440 \ + --hash=sha256:a8f7176b83664af44567e9cc06e0d3827823fcc1a5e52307ebb8ac3aa95860b9 \ + --hash=sha256:a9dec1aca52dddde7df94818310fa2fe79739c8f385b2014c4cb1035f5508199 \ + --hash=sha256:ab5be648d5a0b86b7438864f8df3c705a65cef35a2fd3e5561e3e203167e0f27 \ + --hash=sha256:abd621552ede77c4c69be7fac44ba911225b0c812b6ba604e5964cf98085b474 \ + --hash=sha256:ac2745950b2bff80219c15ebf2fa9d8427eba7e249739f97e55c9d169e47e9e1 \ + --hash=sha256:aed9658797d0b45d6c49adcfc6b41f66e6f2d0c6de3ec79e16cf4b1855df240f \ + --hash=sha256:b6c0febfe38f22df2eb565c0ce8a092bb80411e56861ca382c443da83105423f \ + --hash=sha256:b9cf53ba90717db2e292401de290776c498d4bbfb0d4a559ca2895db8b9dcb5c \ + --hash=sha256:ba519b2d765df9871a25879e6f7fa78948ea59a2a31f9c1a257e34b651994afc \ + --hash=sha256:c318a64b53d97b841d7b5e637517e50a27be64bc695128422953d4b21710954e \ + --hash=sha256:c3723ff8eb8721f4daac98bc0256f15158e05316d5e52648ce9cebee434fbdd5 \ + --hash=sha256:c754dafdf5aaf0b401b644a90a30046929a0dd1a536e0ff0ec959a59155d9c7f \ + --hash=sha256:c803a3d331796255af51ba2c79ed0ac8275865b516c09e61f248d1e7aff31ce9 \ + --hash=sha256:c8cc5094b08abeae52da9c73c8a32003623be691a5193df2f4e3eac3d557c394 \ + --hash=sha256:cf3638274ab9d9b724c9baa0b4c04e132cd6faefb78b4dd3dd1a02a4bdaad41e \ + --hash=sha256:d047f6498c973874ba08ac3f97c69a2c4b2211c8de6f4c205f75cb1c9522596e \ + --hash=sha256:d2beb1c7cab10603aecdc42f8edd6ff013f9a32e4543474e38e6b77ce9975aeb \ + --hash=sha256:d7f513d3185e6fec82d0c3518f2e6365d8b4e49f5f45f29640d5162d56a23b54 \ + --hash=sha256:dd57607acc85678925940bd5df0385ff8332083a32fa8d7a43f8767f4997263c \ + --hash=sha256:e0cb7e4dd71f4c32e5e84843cd3c4cd65dda034314004bbe1d7f99af2426ab80 \ + --hash=sha256:e3677c7146ce694874941ba82b57092cc4875445aadf29d72807351023105143 \ + --hash=sha256:e395f7bc31851ef9b612050368cb446e9bc14cd7454b025018980349caf25ae5 \ + --hash=sha256:e422b2d647a65d6b080cad5accd09055d3809bdff00c76fba8dca00ca935572a \ + --hash=sha256:ed55af48b3eb28f43228ca2306788892bcb629eb2b5c4876e2a3659872c2f17a \ + --hash=sha256:ed928d0fda15fc0adc8d13305c8b3c0f2fba5b0669950c9e6d019d9162a3b3e8 \ + --hash=sha256:f4e1a92032a39cd5e3c647ca57dbf33b6a1938fd975623175793f9dbb63236de \ + --hash=sha256:f53ac9f3ef573326d009ed809beff4efcac6451931c2b8132586da4b9e53ff31 \ + --hash=sha256:f5b9daf6b629fce418e0cc3dd0436eac045188fa35deadb7a7f3941d5b8203f9 \ + --hash=sha256:f6518b94edb9150452e9aba08027d4cc293433753ec1fbefb4629a21cbc74181 \ + --hash=sha256:f70db64e8266d7c45d3b735f2e08eeb434b5e03da9a479ae42b2e2e486a21a00 \ + --hash=sha256:fafb4e739e43544d12cb4abd1605fd4683b6ca6a9ad682b7fd8f4d21973eafa8 \ + --hash=sha256:fd0135d34387f5fd087d9be368ea77ea89cf2451dc1cd1c622d35021bcb3ab50 # via # -c src/backend/requirements.txt # opentelemetry-instrumentation @@ -2388,19 +2397,20 @@ xmlsec==1.3.17 \ # -c src/backend/requirements.txt # -r src/backend/requirements.in # python3-saml -zopfli==0.4.2 \ - --hash=sha256:18af6d2f778552d9bfdaa8e6caaf38c2bd57d0efba34a47860fcc4f6ba899696 \ - --hash=sha256:1fc2fd1725c986f535ea323139ec1b974fa294ef9574e0fad840967d52dd38a9 \ - --hash=sha256:65a847b1f234df456584f0267fb0f270a95772e675a98ae9c21f3b4839077b2f \ - --hash=sha256:70c20595aa30aae246ac71a9fa471e2aa768318150ab814aeea2f651c59c6a32 \ - --hash=sha256:92e30df03a00c08b3265c362566573b50a3af3b113b0dbe755071376635ce93d \ - --hash=sha256:932083f7ca190fbd73cdf8ad7d32ec7231ecd25e1b3fade547cfb11b823ff91f \ - --hash=sha256:a75e646fed3a2a42a82e69a81644009189c8ab4271691f020d52da8630d0580e \ - --hash=sha256:bc25a3b3568910afb4bbd951d99835de29cade95417bca215339eac172eb381d \ - --hash=sha256:d036b7179c225ce6bd73e68b5a176319ce8835739f494650e4124cd9c383b826 \ - --hash=sha256:d1972b58083b85af460d8936f623d849b487c151b26eae925b25ec921ae6cd22 \ - --hash=sha256:d3bc0b483575ab8849d9c15b349f78ae0141eb4dfe2ba260c8fdc0b3ba5c6c42 \ - --hash=sha256:e679896fde39930dec1f46e5f4e1b1900378686168064966209ffb7b80e41743 +zopfli==0.4.3 \ + --hash=sha256:0087c9a6f0c8a052be0f6d1a9bb71b6caffdd3e10201d6d6166e28d482cebe6d \ + --hash=sha256:47604eee5c6704bdf0e94d8391fe3b74ddb2abd84128fbcfdc3ee0fc265feaef \ + --hash=sha256:62248dbf8dbcbd588ee194b210e5be9fa80bce29641f55599d6d394bd2a9d8a3 \ + --hash=sha256:628c3e941752880b3491db8d44163d0aedb221944e22a17187ff7fc549b050f6 \ + --hash=sha256:769875152d0625c46707bcca57d4b2233fe653482067acd55fbf6ec525cb9bdc \ + --hash=sha256:7e9703ca6e7ef66c8d05e0826b6f558b680c9db8206f84f05a3ee93430a12e42 \ + --hash=sha256:7fa3c35193475290e3f007bbcdebdbae64ba2f012d75c632da0d727e1da50d5e \ + --hash=sha256:88f4fbe429aad72bc206275d81fab11a097e0f951a5848d1f51083c37ea73073 \ + --hash=sha256:921c2c9907f4364963848da5ad194b46d68865e07fdb975d04fd09bc42d47357 \ + --hash=sha256:d3a50f91a13cea9bafe025de8fd87a005eb26de02a4f0c193127ddbf23ac8ebe \ + --hash=sha256:d4f51dd1ab5312e837e2091284e0d9f1a138188f2e65812f9a5799dc02c45f94 \ + --hash=sha256:eb0c9c1d40a8cb1d58762d7e57290ccb753e0828c4d01be8acb59aae5d0ca206 \ + --hash=sha256:f2e0adcf7d36c6fd0dd36cc771ef7f0c5803a05666feafcd90d7170174a4148e # via # -c src/backend/requirements.txt # fonttools diff --git a/src/backend/requirements-dev-3.14.txt b/src/backend/requirements-dev-3.14.txt index 1bd491ec1f..93889781ee 100644 --- a/src/backend/requirements-dev-3.14.txt +++ b/src/backend/requirements-dev-3.14.txt @@ -11,9 +11,9 @@ build==1.5.0 \ --hash=sha256:13f3eecb844759ab66efec90ca17639bbf14dc06cb2fdf37a9010322d9c50a6f \ --hash=sha256:302c22c3ba2a0fd5f3911918651341ebb3896176cbdec15bd421f80b1afc7647 # via pip-tools -certifi==2026.5.20 \ - --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ - --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d +certifi==2026.6.17 \ + --hash=sha256:024c88eeec92ca068db80f02b8b07c9cef7b9fe261d1d535abfd5abd6f6af432 \ + --hash=sha256:2227dcbaafe0d2f59279d1762ddddc37783ed4354594f194ffc31d20f41fc3db # via # -c src/backend/requirements-3.14.txt # -c src/backend/requirements.txt @@ -496,24 +496,24 @@ pluggy==1.6.0 \ --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 # via pytest -prek==0.4.4 \ - --hash=sha256:0b04a0f36d07474f2a9fc5b1ba1197a1b326b2b211f39cd74cf0d4613545f7f4 \ - --hash=sha256:143154b329c05b2f9fa3230e604d02d9c4297dd43f96135a8ba166772e8ecd60 \ - --hash=sha256:23cfd96a25de1c93e3c43c746643b80489e3b2fa49ca9c0ffd6022e51535c900 \ - --hash=sha256:3efa28fb37b9ddbafb7759da8d497f0d36cf02a05816e15d6541f5669d5d2114 \ - --hash=sha256:3f3a25041733de987a47e5a7bace47182a6f0e2ae5f960cb54c1d4630afd2591 \ - --hash=sha256:4058638532c6dcbf0076d23b9264cbdd9f0f0e320762e237a6b9e4e4b854a766 \ - --hash=sha256:4ec5771153d158a0e4473933b7fd9b51e1b1f57f2df50aeb7560ea6812226dc5 \ - --hash=sha256:619bab14071670249777deea0cc0b29d904c4a514cf33b20e583900a544f0399 \ - --hash=sha256:9cebca8c15da4f1d6e3a25e6ae0611425c8596e926222050f2588c390e42df8a \ - --hash=sha256:a2b7c8710546a1e894afa7ab022030cd4e21f1ee7ffb301b4360773d22f1f00f \ - --hash=sha256:a427b792c4436f49732b1f6ebccf221fdcc6390c148474280da9c2c6eaabc9c4 \ - --hash=sha256:b998038fc92c990e03147eb5b95b0f2c394517f8857ab911aac8e092f1b9b3ab \ - --hash=sha256:bad3586fcea3e913f0edf2e8f132f97889e03976b7ee3d120fd294ad4e89a5eb \ - --hash=sha256:c38c5140ae2ea55ebb02e6ca590a416664ea1af287cdd21f54daeec53a81015a \ - --hash=sha256:c8742ac26363e74c855df6215a709d5db183204d00ac0f1a722b13aed4da3cd0 \ - --hash=sha256:e02bd4d5e05c500e4d9f70f024e30d13aa361dc490724b7f476d2e35542c239f \ - --hash=sha256:f032ccbe2d6edc345f81a6d772c18cc169d63c27b5a8292bfe416b352bdfee57 +prek==0.4.5 \ + --hash=sha256:14109d37b33e5529db41a3539d4f8f72d295f6eeddede3964994d898b8cec05c \ + --hash=sha256:1fd98b986767dafdb6b4305b563ee5a3a8f13bd3c78b98d708626815ea9f147f \ + --hash=sha256:2be7bcf839de19a0144ed5a5aadf73bc5899cf6823bb1c58cf1d45ae389c201a \ + --hash=sha256:40d262418105b2ede9836593a1927fc927cc8093c432e998640964102196996e \ + --hash=sha256:50697089a86a78d16f087c1912a2f3bc2bea82319a220fac52cc8e3ec9fc0426 \ + --hash=sha256:590427a42a3c1e5064487a0dc91167ae0c8a52168e77f574758ef9b138fcfd61 \ + --hash=sha256:646a86a1a082dbd99fed96314b1064f5644bb34c1f4037a63547a18e2160fb86 \ + --hash=sha256:66877ff21ae9d548f0f7e56fab8e65f1500a74a810e7749188c3f35a4a1b911b \ + --hash=sha256:7546989b2403c96137bd79d19ebfe21facb87266cefe819db2458c3b9b23f350 \ + --hash=sha256:86f76bd3d2ecf6fd9034d75c62ff4c786eb11d0dd0a1f79bbb4343b023e12769 \ + --hash=sha256:8b2ac9227504371d97338215b344184cb0b31ca94113515a3a90c509c6c5a707 \ + --hash=sha256:a586d14c3b852fdee1c3dcd0b9cb0915db9f9d054334b854fd9470bf68edf129 \ + --hash=sha256:a8ed0d28f3e7790e4402a9324c386509066df6e67cc587f7406f9a245b97b7e8 \ + --hash=sha256:aca9fa995536036a0171bcf7a4db96dc0a14f480054eda1d7d1c2e7739650993 \ + --hash=sha256:e491a1a4641d91d8b03dcce5588397e76d2a5b432c9b0a6c70475972b4512ab4 \ + --hash=sha256:f7517774c72b001573520dc7111156779fd3e5b4452c11f09ff53c71a067e835 \ + --hash=sha256:fccd11613ae92619d1ecda0ab3359ceebeb38898909ec84a8d383733d12158cc # via -r src/backend/requirements-dev.in pycparser==3.0 \ --hash=sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29 \ @@ -534,9 +534,9 @@ pyproject-hooks==1.2.0 \ # via # build # pip-tools -pytest==9.0.3 \ - --hash=sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9 \ - --hash=sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c +pytest==9.1.1 \ + --hash=sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313 \ + --hash=sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c # via # pytest-codspeed # pytest-django diff --git a/src/backend/requirements-dev.txt b/src/backend/requirements-dev.txt index 1f01208c0b..38d084dbaf 100644 --- a/src/backend/requirements-dev.txt +++ b/src/backend/requirements-dev.txt @@ -10,9 +10,9 @@ build==1.5.0 \ --hash=sha256:13f3eecb844759ab66efec90ca17639bbf14dc06cb2fdf37a9010322d9c50a6f \ --hash=sha256:302c22c3ba2a0fd5f3911918651341ebb3896176cbdec15bd421f80b1afc7647 # via pip-tools -certifi==2026.5.20 \ - --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ - --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d +certifi==2026.6.17 \ + --hash=sha256:024c88eeec92ca068db80f02b8b07c9cef7b9fe261d1d535abfd5abd6f6af432 \ + --hash=sha256:2227dcbaafe0d2f59279d1762ddddc37783ed4354594f194ffc31d20f41fc3db # via # -c src/backend/requirements.txt # requests @@ -242,113 +242,113 @@ click==8.4.1 \ --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \ --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96 # via pip-tools -coverage[toml]==7.13.5 \ - --hash=sha256:012d5319e66e9d5a218834642d6c35d265515a62f01157a45bcc036ecf947256 \ - --hash=sha256:02ca0eed225b2ff301c474aeeeae27d26e2537942aa0f87491d3e147e784a82b \ - --hash=sha256:03ccc709a17a1de074fb1d11f217342fb0d2b1582ed544f554fc9fc3f07e95f5 \ - --hash=sha256:0428cbef5783ad91fe240f673cc1f76b25e74bbfe1a13115e4aa30d3f538162d \ - --hash=sha256:04690832cbea4e4663d9149e05dba142546ca05cb1848816760e7f58285c970a \ - --hash=sha256:0590e44dd2745c696a778f7bab6aa95256de2cbc8b8cff4f7db8ff09813d6969 \ - --hash=sha256:0672854dc733c342fa3e957e0605256d2bf5934feeac328da9e0b5449634a642 \ - --hash=sha256:084b84a8c63e8d6fc7e3931b316a9bcafca1458d753c539db82d31ed20091a87 \ - --hash=sha256:0b67af5492adb31940ee418a5a655c28e48165da5afab8c7fa6fd72a142f8740 \ - --hash=sha256:0cd9ed7a8b181775459296e402ca4fb27db1279740a24e93b3b41942ebe4b215 \ - --hash=sha256:0cef0cdec915d11254a7f549c1170afecce708d30610c6abdded1f74e581666d \ - --hash=sha256:0e223ce4b4ed47f065bfb123687686512e37629be25cc63728557ae7db261422 \ - --hash=sha256:0e3c426ffc4cd952f54ee9ffbdd10345709ecc78a3ecfd796a57236bfad0b9b8 \ - --hash=sha256:0ecf12ecb326fe2c339d93fc131816f3a7367d223db37817208905c89bded911 \ - --hash=sha256:10a0c37f0b646eaff7cce1874c31d1f1ccb297688d4c747291f4f4c70741cc8b \ - --hash=sha256:145ede53ccbafb297c1c9287f788d1bc3efd6c900da23bf6931b09eafc931587 \ - --hash=sha256:1b11eef33edeae9d142f9b4358edb76273b3bfd30bc3df9a4f95d0e49caf94e8 \ - --hash=sha256:1b88c69c8ef5d4b6fe7dea66d6636056a0f6a7527c440e890cf9259011f5e606 \ - --hash=sha256:258354455f4e86e3e9d0d17571d522e13b4e1e19bf0f8596bcf9476d61e7d8a9 \ - --hash=sha256:259b69bb83ad9894c4b25be2528139eecba9a82646ebdda2d9db1ba28424a6bf \ - --hash=sha256:2aa055ae1857258f9e0045be26a6d62bdb47a72448b62d7b55f4820f361a2633 \ - --hash=sha256:2d3807015f138ffea1ed9afeeb8624fd781703f2858b62a8dd8da5a0994c57b6 \ - --hash=sha256:301e3b7dfefecaca37c9f1aa6f0049b7d4ab8dd933742b607765d757aca77d43 \ - --hash=sha256:32ca0c0114c9834a43f045a87dcebd69d108d8ffb666957ea65aa132f50332e2 \ - --hash=sha256:34b02417cf070e173989b3db962f7ed56d2f644307b2cf9d5a0f258e13084a61 \ - --hash=sha256:356e76b46783a98c2a2fe81ec79df4883a1e62895ea952968fb253c114e7f930 \ - --hash=sha256:35a31f2b1578185fbe6aa2e74cea1b1d0bbf4c552774247d9160d29b80ed56cc \ - --hash=sha256:380e8e9084d8eb38db3a9176a1a4f3c0082c3806fa0dc882d1d87abc3c789247 \ - --hash=sha256:3ad050321264c49c2fa67bb599100456fc51d004b82534f379d16445da40fb75 \ - --hash=sha256:3e1bb5f6c78feeb1be3475789b14a0f0a5b47d505bfc7267126ccbd50289999e \ - --hash=sha256:3f4818d065964db3c1c66dc0fbdac5ac692ecbc875555e13374fdbe7eedb4376 \ - --hash=sha256:460cf0114c5016fa841214ff5564aa4864f11948da9440bc97e21ad1f4ba1e01 \ - --hash=sha256:48c39bc4a04d983a54a705a6389512883d4a3b9862991b3617d547940e9f52b1 \ - --hash=sha256:4b59148601efcd2bac8c4dbf1f0ad6391693ccf7a74b8205781751637076aee3 \ - --hash=sha256:4d2afbc5cc54d286bfb54541aa50b64cdb07a718227168c87b9e2fb8f25e1743 \ - --hash=sha256:505d7083c8b0c87a8fa8c07370c285847c1f77739b22e299ad75a6af6c32c5c9 \ - --hash=sha256:52f444e86475992506b32d4e5ca55c24fc88d73bcbda0e9745095b28ef4dc0cf \ - --hash=sha256:5b13955d31d1633cf9376908089b7cebe7d15ddad7aeaabcbe969a595a97e95e \ - --hash=sha256:5ec4af212df513e399cf11610cc27063f1586419e814755ab362e50a85ea69c1 \ - --hash=sha256:60365289c3741e4db327e7baff2a4aaacf22f788e80fa4683393891b70a89fbd \ - --hash=sha256:631efb83f01569670a5e866ceb80fe483e7c159fac6f167e6571522636104a0b \ - --hash=sha256:6697e29b93707167687543480a40f0db8f356e86d9f67ddf2e37e2dfd91a9dab \ - --hash=sha256:66a80c616f80181f4d643b0f9e709d97bcea413ecd9631e1dedc7401c8e6695d \ - --hash=sha256:67e9bc5449801fad0e5dff329499fb090ba4c5800b86805c80617b4e29809b2a \ - --hash=sha256:68a4953be99b17ac3c23b6efbc8a38330d99680c9458927491d18700ef23ded0 \ - --hash=sha256:6c36ddb64ed9d7e496028d1d00dfec3e428e0aabf4006583bb1839958d280510 \ - --hash=sha256:6e3370441f4513c6252bf042b9c36d22491142385049243253c7e48398a15a9f \ - --hash=sha256:7034b5c56a58ae5e85f23949d52c14aca2cfc6848a31764995b7de88f13a1ea0 \ - --hash=sha256:704de6328e3d612a8f6c07000a878ff38181ec3263d5a11da1db294fa6a9bdf8 \ - --hash=sha256:7132bed4bd7b836200c591410ae7d97bf7ae8be6fc87d160b2bd881df929e7bf \ - --hash=sha256:7300c8a6d13335b29bb76d7651c66af6bd8658517c43499f110ddc6717bfc209 \ - --hash=sha256:750db93a81e3e5a9831b534be7b1229df848b2e125a604fe6651e48aa070e5f9 \ - --hash=sha256:777c4d1eff1b67876139d24288aaf1817f6c03d6bae9c5cc8d27b83bcfe38fe3 \ - --hash=sha256:78e696e1cc714e57e8b25760b33a8b1026b7048d270140d25dafe1b0a1ee05a3 \ - --hash=sha256:79060214983769c7ba3f0cee10b54c97609dca4d478fa1aa32b914480fd5738d \ - --hash=sha256:7c8d4bc913dd70b93488d6c496c77f3aff5ea99a07e36a18f865bca55adef8bd \ - --hash=sha256:7f2c47b36fe7709a6e83bfadf4eefb90bd25fbe4014d715224c4316f808e59a2 \ - --hash=sha256:800bc829053c80d240a687ceeb927a94fd108bbdc68dfbe505d0d75ab578a882 \ - --hash=sha256:843ea8643cf967d1ac7e8ecd4bb00c99135adf4816c0c0593fdcc47b597fcf09 \ - --hash=sha256:8769751c10f339021e2638cd354e13adeac54004d1941119b2c96fe5276d45ea \ - --hash=sha256:8dd02af98971bdb956363e4827d34425cb3df19ee550ef92855b0acb9c7ce51c \ - --hash=sha256:8fdf453a942c3e4d99bd80088141c4c6960bb232c409d9c3558e2dbaa3998562 \ - --hash=sha256:941617e518602e2d64942c88ec8499f7fbd49d3f6c4327d3a71d43a1973032f3 \ - --hash=sha256:972a9cd27894afe4bc2b1480107054e062df08e671df7c2f18c205e805ccd806 \ - --hash=sha256:9adb6688e3b53adffefd4a52d72cbd8b02602bfb8f74dcd862337182fd4d1a4e \ - --hash=sha256:9b74db26dfea4f4e50d48a4602207cd1e78be33182bc9cbf22da94f332f99878 \ - --hash=sha256:9bb2a28101a443669a423b665939381084412b81c3f8c0fcfbac57f4e30b5b8e \ - --hash=sha256:9d44d7aa963820b1b971dbecd90bfe5fe8f81cff79787eb6cca15750bd2f79b9 \ - --hash=sha256:9dacc2ad679b292709e0f5fc1ac74a6d4d5562e424058962c7bb0c658ad25e45 \ - --hash=sha256:9ddb4f4a5479f2539644be484da179b653273bca1a323947d48ab107b3ed1f29 \ - --hash=sha256:a1a6d79a14e1ec1832cabc833898636ad5f3754a678ef8bb4908515208bf84f4 \ - --hash=sha256:a698e363641b98843c517817db75373c83254781426e94ada3197cabbc2c919c \ - --hash=sha256:ad14385487393e386e2ea988b09d62dd42c397662ac2dabc3832d71253eee479 \ - --hash=sha256:ad146744ca4fd09b50c482650e3c1b1f4dfa1d4792e0a04a369c7f23336f0400 \ - --hash=sha256:b5db73ba3c41c7008037fa731ad5459fc3944cb7452fc0aa9f822ad3533c583c \ - --hash=sha256:bd3a2fbc1c6cccb3c5106140d87cc6a8715110373ef42b63cf5aea29df8c217a \ - --hash=sha256:bdba0a6b8812e8c7df002d908a9a2ea3c36e92611b5708633c50869e6d922fdf \ - --hash=sha256:be3d4bbad9d4b037791794ddeedd7d64a56f5933a2c1373e18e9e568b9141686 \ - --hash=sha256:bf69236a9a81bdca3bff53796237aab096cdbf8d78a66ad61e992d9dac7eb2de \ - --hash=sha256:bff95879c33ec8da99fc9b6fe345ddb5be6414b41d6d1ad1c8f188d26f36e028 \ - --hash=sha256:c555b48be1853fe3997c11c4bd521cdd9a9612352de01fa4508f16ec341e6fe0 \ - --hash=sha256:c81f6515c4c40141f83f502b07bbfa5c240ba25bbe73da7b33f1e5b6120ff179 \ - --hash=sha256:c9136ff29c3a91e25b1d1552b5308e53a1e0653a23e53b6366d7c2dcbbaf8a16 \ - --hash=sha256:ce1998c0483007608c8382f4ff50164bfc5bd07a2246dd272aa4043b75e61e85 \ - --hash=sha256:cec2d83125531bd153175354055cdb7a09987af08a9430bd173c937c6d0fba2a \ - --hash=sha256:cff784eef7f0b8f6cb28804fbddcfa99f89efe4cc35fb5627e3ac58f91ed3ac0 \ - --hash=sha256:d2c87e0c473a10bffe991502eac389220533024c8082ec1ce849f4218dded810 \ - --hash=sha256:d7cfad2d6d81dd298ab6b89fe72c3b7b05ec7544bdda3b707ddaecff8d25c161 \ - --hash=sha256:d8a7a2049c14f413163e2bdabd37e41179b1d1ccb10ffc6ccc4b7a718429c607 \ - --hash=sha256:da305e9937617ee95c2e39d8ff9f040e0487cbf1ac174f777ed5eddd7a7c1f26 \ - --hash=sha256:da86cdcf10d2519e10cabb8ac2de03da1bcb6e4853790b7fbd48523332e3a819 \ - --hash=sha256:dc022073d063b25a402454e5712ef9e007113e3a676b96c5f29b2bda29352f40 \ - --hash=sha256:e0723d2c96324561b9aa76fb982406e11d93cdb388a7a7da2b16e04719cf7ca5 \ - --hash=sha256:e092b9499de38ae0fbfbc603a74660eb6ff3e869e507b50d85a13b6db9863e15 \ - --hash=sha256:e0b216a19534b2427cc201a26c25da4a48633f29a487c61258643e89d28200c0 \ - --hash=sha256:e1c85e0b6c05c592ea6d8768a66a254bfb3874b53774b12d4c89c481eb78cb90 \ - --hash=sha256:e301d30dd7e95ae068671d746ba8c34e945a82682e62918e41b2679acd2051a0 \ - --hash=sha256:e808af52a0513762df4d945ea164a24b37f2f518cbe97e03deaa0ee66139b4d6 \ - --hash=sha256:eb07647a5738b89baab047f14edd18ded523de60f3b30e75c2acc826f79c839a \ - --hash=sha256:eb7fdf1ef130660e7415e0253a01a7d5a88c9c4d158bcf75cbbd922fd65a5b58 \ - --hash=sha256:ec10e2a42b41c923c2209b846126c6582db5e43a33157e9870ba9fb70dc7854b \ - --hash=sha256:ee2aa19e03161671ec964004fb74b2257805d9710bf14a5c704558b9d8dbaf17 \ - --hash=sha256:f08fd75c50a760c7eb068ae823777268daaf16a80b918fa58eea888f8e3919f5 \ - --hash=sha256:f4cd16206ad171cbc2470dbea9103cf9a7607d5fe8c242fdf1edf36174020664 \ - --hash=sha256:f70c9ab2595c56f81a89620e22899eea8b212a4041bd728ac6f4a28bf5d3ddd0 \ - --hash=sha256:fbabfaceaeb587e16f7008f7795cd80d20ec548dc7f94fbb0d4ec2e038ce563f +coverage[toml]==7.14.1 \ + --hash=sha256:0177614a0370f227888b4e436a7c55686d6a9f90eb1ade2b624ba685a1686e86 \ + --hash=sha256:01b7733daad0237daa01ef80fe2dfceffc911e6a17fa7b55d14aa8214eaaaecd \ + --hash=sha256:03a6f93c1ec3b7f2e77b5dbcc5573a2c21f12529a5c6bbe0f16f72303cc2fa4d \ + --hash=sha256:042c46ded7c288aeb07cf14a28b6c1e10b78fcba40171c3fa1e939377eeef0b5 \ + --hash=sha256:06144cd511cf2624873a035c5069cf297144f6e77a73ee3d7a55b605ec5efb42 \ + --hash=sha256:07c6290b1697b862c0478eab545eec949a0d0e4d6d03497f446d706da3b4f2de \ + --hash=sha256:10274a1fbeb8ec5d72966e17bb198a3104257aca4ac09d98667c5f8aca8c8548 \ + --hash=sha256:1101a5ebb083aecb625ebb6209d4105b58f647b093cb2dc8122d7b33f743cfe1 \ + --hash=sha256:114c95ef29302423b87d159075805f4ab973254a2638a5d7d046c94887cc87d7 \ + --hash=sha256:1238cb94638e610e972c60dac68e813f868dc7d6e982535270558443058d9d59 \ + --hash=sha256:12c42ec1e14f553c4f817e989365982e646e27211f10a0f717855b94a79c8906 \ + --hash=sha256:145986fe66647eb489f18d9a997567a3fd358584c4b5a808769113abc07466af \ + --hash=sha256:17a5a241e5997621a956a7f402a7433ef4221e5152809b785bec79e2323799f1 \ + --hash=sha256:1896f5e19ff3f0431c7ce2172adc54890fd97f86b59ced8ca1649145d9ffe35d \ + --hash=sha256:196a13319ad88d6d8ef5ab489ec4f44ddde2143c0c7d5b27786f6c3ffd56a7e1 \ + --hash=sha256:221c70f316241a78e77e607c227cefc8808d4e08f28d99c04f35694690e940be \ + --hash=sha256:2222be86d0b54f5dd5a38f45f17f315f737245e857bf0bdedc70734f84a13c02 \ + --hash=sha256:2224f89ffd0c5605ccce1ed7a584da162bc7c55f601ab1c946bc9de31a486b42 \ + --hash=sha256:23bf7fa51ac02e07fc7c96849b82946da47ae862dc8f86d183b2a4864fc38129 \ + --hash=sha256:2d69af5dea2de76fc485a83032a630523f985198b7e25be901ec60181587b01e \ + --hash=sha256:30c08f7d90415aa98b3c990385dea2939b0da55f38515e5b369b83655f8523be \ + --hash=sha256:357d4e32935c36588aaba057d734fa32428c360c9fc2e4442afbf1b646beee6e \ + --hash=sha256:35ab22d91de736e8966b980dc355cbcdd2c6dbbcfe275f9a2991bc8a91b3df65 \ + --hash=sha256:370c5afae3fa0658e11694a32b24c2778f6bc2d17718121f94ee185e69f26b54 \ + --hash=sha256:3758dd0a7f1fa57365ef2e781df0f0731d38b6e3772259d13dae4bd8a958d4b1 \ + --hash=sha256:39b21e212c55af06fa375e3dbf90a8a8e38792f3a910c580066d23563830ddd5 \ + --hash=sha256:3a56abc20a472baf0304c455721bc601477440d28ecfde8a03dde79ede07e0df \ + --hash=sha256:3c18ebc343e15be53049b3a2dce38fe82d58f37e20ab9094b3a39c0aa4f6bb47 \ + --hash=sha256:3d452fd08b5c72c5167c93e6867b5c08500bd40f2a21e1e854a500550b6cc36f \ + --hash=sha256:3e3680291c4a1d0dadfa84a2c459576a4af5133abb617905714339a0c73138cf \ + --hash=sha256:442cc9c952b2df400cda54bb04ab87330cf2cd08a8692cbbea36773531eb6f37 \ + --hash=sha256:46f714d2fb8ae2f4f29f23ada7f1e79b759fff5a70f94a1dac23af204c3ec9e4 \ + --hash=sha256:478b5bcd63c2e1357c5c7e16c070690df7b07f676b1c114d7b93e533c664309f \ + --hash=sha256:48b283b1dd6372e8de2a7a9a4c4d5dc06f4d4fd209b876f3c88a7a205a0c8f84 \ + --hash=sha256:4a28fd227808366b196a75476dced2eb35b351d6766ba9c858dc93319e87f4f1 \ + --hash=sha256:4ea1c034f95c9b056e856b794630b17f9fa3d57e4800ff1e503d3be0f9c9078c \ + --hash=sha256:51bd64741cc6fa065abd300ede1afe5a5291ece9c31da8b24884deda48bcc3f8 \ + --hash=sha256:54acdb6674a4661768d7bf7db32dfb9f46ab1d764f8aba6df75ce1a6a088724e \ + --hash=sha256:59baf88468dbc8d63b1887afd92bda52e40bb1561696e5819670601403810cec \ + --hash=sha256:5a1c5215be81035e629d5bc756650634d0bf31991038db7a0eccb90f025ce16d \ + --hash=sha256:5b0c99ba93a07d56f6df340bb79be53202a082b2fdb81bfe6190b741a3470d54 \ + --hash=sha256:5ea0c297e27133853b4d8a3eb799bff5a2dbd9f2f41537a240d337ac9b4df890 \ + --hash=sha256:5f0cfc27c539f07cf5c0a4cfe211d0b6cae039f8f40526dbaa71944e64b50a7b \ + --hash=sha256:6223a72fd0e4c7156353ec0f08a5f93623e1d3034d0e2683b9bb8ea674131b1d \ + --hash=sha256:62a9f70b52e0b5a95cfef4a5c5641b06983cadc5e538a3feeb5c00211f523ac2 \ + --hash=sha256:62fd185ef9df3c33d1c8178c5af105f762afbad96038de9a4ae100aa6297ca33 \ + --hash=sha256:6a3cb83d1552c0cd1b4906655b6a33fd4a8473229633a901c6b73bf86914dee9 \ + --hash=sha256:6adc5a36984624a70bf11d7184e20fa0a49aa7c47ffab43804106a1a695ea22e \ + --hash=sha256:6b6b0853b895fe0e98cbfc580d1ec3393d9302b4b1e96a77b3f5c91fdab899e6 \ + --hash=sha256:6ff665fb023a77386fe11685190cee1f60a7d635994a30d9b0a061533d470fce \ + --hash=sha256:7279d2110a28cebc738b6459ecda2771735a4c18465fbbd36b3288fe5ed92247 \ + --hash=sha256:76a085d7005236a767e3426148b2c407e53ad61695c562f8a81da2d373324901 \ + --hash=sha256:7771b601718fdde84832c3a434ca9bbf4ae9adbc49d84198b4110700c3c77c36 \ + --hash=sha256:79058c47dae6788504b5effb319961bcd72d7240551464b91d474bc0ed186d69 \ + --hash=sha256:7af486dabe8954d03b087f0021540897afe084f04e16ff5579e08cc46f871416 \ + --hash=sha256:7f02d09f70776579b926d889a4c9c235070a1f47c40458aeaca563fae5acfdb5 \ + --hash=sha256:8011224a62280e50dab346960c03cf47aca1a1e09e608c0fb33fd6e0cc8e9500 \ + --hash=sha256:8270544c361ed405a27a060dbc9ed2c124b084d96dfdc2d9a2510482aef981ad \ + --hash=sha256:84ac9499e48700399a5dd0ea7085b5091961fec52c68d66b4ec0d3cf7f4441b1 \ + --hash=sha256:84b535f00655ecafe1d929d1fb00ed5d6fa3051ea643ab2c161a3887b86f294b \ + --hash=sha256:851b9e1e4e8a4608e77c79714b2e77c0970d2ed7202a05e92ae407817481887b \ + --hash=sha256:85e85586565842f6932abebd4c18bcb1074223dc0b3576e7d173ca710622813a \ + --hash=sha256:87ebdf787d4888e3f3f2d523eadc6e18c6d18c6d0eb173801a189641627fb37e \ + --hash=sha256:8a3ce026d73290f42f08dafecbd82c193a74df280461fbf97300fec51fd133ee \ + --hash=sha256:9132cd363a68a4c3daa7c8704a654b1e39d3360f6f5b8ddd470608a945236c07 \ + --hash=sha256:99cd41ff91afd94896fea3bc002706b6ae4ce95727d06e4a0f39c0a8d8bd8b1a \ + --hash=sha256:9eeb3fcbc13ba40dfbdb22d01d196a28e9cef9ed4c29b60061a1e0e823a9929d \ + --hash=sha256:a06c76364a9360e33d6d23769aefdf7f66f38e2ffb60ceb1baaa4989d83b695c \ + --hash=sha256:a07891c3f4805442b31b71e84ba3cf29ed1aa9a428284e06deeb4b23e5b46343 \ + --hash=sha256:a24a81f9715ee42ef59a316cc11611c98fe23920f7c81861315c9f3ff4a230f4 \ + --hash=sha256:a252f21c27e38347e60111a3266b03827422a7d5525951aceee313aa68bab1d2 \ + --hash=sha256:a311d8e1da24be5c1ccf85cbfb06315dbaa1703d5a1eab3f6432c72b837917c8 \ + --hash=sha256:a5274669f37f2343635a347b91a60777621341ab3378e9c6ac9335eee704bddf \ + --hash=sha256:aa5e304a873fabddc11e484e9b6b738bd38bd7bed17b09aa84eecf5332e8b8bb \ + --hash=sha256:ab4af6352741a604c431c6072fce5bee33bf0f20dc7a56618d6bf6bb89e9810c \ + --hash=sha256:b553d04b5e778a8e56d57eb134aff42a92718ecba45e79c4764ecfa40efd92ff \ + --hash=sha256:b84800013769a78ccb9ef4659402e26d06867e337b61ec365f77ad008adea80e \ + --hash=sha256:b84ffdf877644e7096aa936991efeed873f7f3df57b9cd001312b7668ab08550 \ + --hash=sha256:bcaa50684dcaadfa599ac48f81103c756d791cfd85c97203d2217c593d48b860 \ + --hash=sha256:be9f2c802dcfce3f71298303aa5dad0dce440a76c52f2f60dacd8656dab78793 \ + --hash=sha256:c643734307300234fafa36bf2a040a7235f8f177ea1fd6ec1423aea6fb7b929f \ + --hash=sha256:c79cead5b5bc584d9c71451cb984d0e3a84e0c0937379c8efcbf27c8d661b851 \ + --hash=sha256:c7e057326434e441306226fbeb5d1aaf14a2637efe97ba668306635835f32ad7 \ + --hash=sha256:c912c259304cfb5ee584481cfb7ce1ff932b4d61e6c9140b8f19cb7b5ed82332 \ + --hash=sha256:ce66d8e46da2bb5ee313a745cbd2e391d319176c1f7a9451bfcd3a2fb920859b \ + --hash=sha256:ced2f09ef276fd58611a1ef502164ad266d2b75174e5a40cabbdb4033f9f6cf2 \ + --hash=sha256:cfe5a5fec635799ef33428f1e5e61bafa45a92a96190ba731561ba558ccc214d \ + --hash=sha256:d13e6725992e2d2fd7d81d4f5241952d13740121dfd501da09201be39b2c003a \ + --hash=sha256:d34d75f892b3ab73ba11cab5442cce7b3e168fd64162b16f0e1e0d09c508edef \ + --hash=sha256:d5b89cdfb2ee051b71e8c3c70bd81a9eff81100f736a269136fe1a68efe00474 \ + --hash=sha256:d5ed429d0b8edaac649e889b4ffcedb6c80b06629a3f93050e3dddfb99235bee \ + --hash=sha256:da028256b04ec30e5e0114b6f76172938c313991f0a2d3d894271315cf5d5e43 \ + --hash=sha256:dcbf65f1f66a26cdd88c35cf68fb4729c5d1cd2e88added72420541dfb212034 \ + --hash=sha256:dd34767fa19848d35659ffc0a75314f58c7af3f1cd87ec521e8292a1238398a3 \ + --hash=sha256:ddf799247318f34dbcd2efa8c95a8d0642674e926bb1774cf9b63dfd2a389d1c \ + --hash=sha256:de286598cc65d2b489411174b1faec2f5a7775fb3201fd925db2a76b4030f37d \ + --hash=sha256:e471bc5769ff073b058cfadb0d736b56ce067c8560eabeb0da88462df98c23e7 \ + --hash=sha256:e854312c4103f2ad4c0dc023b69b77ebfd2c89db5f86c4c94dc2353f9a92167e \ + --hash=sha256:ea8cd6ca0ee9f616aaef3afc6882e32c2cbf18b00d96313ffd76af650574034d \ + --hash=sha256:f2302660e32562a532b442480121aef8aa61a5bdb20b30bf0adab29f10a5a4b4 \ + --hash=sha256:f497a1ea81d4cd7c10ddcaa685135b9aabd291af3d55775a9ddf3cb7a364cdd9 \ + --hash=sha256:f4ddbe407477f04c45115d1a4e5bc480f753553b534d338d4c3358b1cdd0ea52 \ + --hash=sha256:f747dc8edcfe740130f28f32f3995e955494285717e86ee25af51db2219df08a \ + --hash=sha256:fad54e871165f6ec2f536063ac74c3104508a12963e64072ba44bd822de52b0c \ + --hash=sha256:fc459e5d73be2d6332fcfe8dbf3d8994671fe33c700f4565988ecfa511547253 \ + --hash=sha256:fd86572566fb40189a8260446158235159bc7a82dfbc87a3b39cf4fb57fcec1c # via -r src/backend/requirements-dev.in cryptography==48.0.1 \ --hash=sha256:08a597acce1ff37f347400087776599e2348a3a8bc53b44120e463cd274efe4a \ @@ -422,13 +422,13 @@ django-silk==5.5.0 \ django-slowtests==1.1.1 \ --hash=sha256:3c6936d420c9df444ac03625b41d97de043c662bbde61fbcd33e4cd407d0c247 # via -r src/backend/requirements-dev.in -django-stubs==6.0.3 \ - --hash=sha256:5fee22bcbbad59a78c727a820b6f4e68ff442ca76a922b7002e57c25dd7cb390 \ - --hash=sha256:ee895f403c373608eeb50822f0733f9d9ec5ab12731d4ab58956053bb95fdd9e +django-stubs==6.0.5 \ + --hash=sha256:7742b8e60afc68a8545158e2bdb103376d5a092f7902c17f370920a9c08eb957 \ + --hash=sha256:9fb9eede9b2fc47b36c3dc4a93652eb959dff45466ec4a580e4a22782192d746 # via -r src/backend/requirements-dev.in -django-stubs-ext==6.0.3 \ - --hash=sha256:3307d42132bc295d5744de6276bc5fdf6896efc70f891e21c0ae8bdf529d2762 \ - --hash=sha256:9e4105955419ae310d7da9cfd808e039d4dae3092c628f021057bb4f2c237f8f +django-stubs-ext==6.0.5 \ + --hash=sha256:1cc325e991303849bce70e19748981b225ef08b37256f263e113caf97cd3bcc0 \ + --hash=sha256:a9932c8233d6dd4e34ae0b192026379c1a9be8f0b7c27aa1fa09ae215169773e # via django-stubs django-test-migrations==1.5.0 \ --hash=sha256:1cbff04b1e82c5564a6f635284907b381cc11a2ff883adff46776d9126824f07 \ @@ -456,9 +456,9 @@ isort==8.0.1 \ --hash=sha256:171ac4ff559cdc060bcfff550bc8404a486fee0caab245679c2abe7cb253c78d \ --hash=sha256:28b89bc70f751b559aeca209e6120393d43fbe2490de0559662be7a9787e3d75 # via -r src/backend/requirements-dev.in -markdown-it-py==4.0.0 \ - --hash=sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147 \ - --hash=sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3 +markdown-it-py==4.2.0 \ + --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ + --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a # via rich mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -488,24 +488,24 @@ pluggy==1.6.0 \ --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 # via pytest -prek==0.4.1 \ - --hash=sha256:051c442b570b53756225410240577bee1aeace6be52955dfacf45a9783223b36 \ - --hash=sha256:10e7e78ffe65dfba7d687a8c71b2f473554d1ba60f43c742105da4c0030feed9 \ - --hash=sha256:17ffa9d8dd40791b9b99cafe558c5cc28e78e5be57607b280b15f0dab90264e9 \ - --hash=sha256:2ab3460641762edf128b1ec8e833ce7e9ae015d1268a894560cb90d3393a7527 \ - --hash=sha256:2d1805123ab5d730629de588bf319ea39e7078b589b3288c95740f1b4780a1d4 \ - --hash=sha256:5b4a348537924b20e208cbd87ef58e96ec37d691c5bec2969209c40de0ecf72e \ - --hash=sha256:60928d1dad45ff3e491d3083a50643cc213aa2d54f1dbd8d702d7193773c020e \ - --hash=sha256:622a8812bda87cf4ddcae2dab5ccecc55b88d70c677129dbe25e975d923179f0 \ - --hash=sha256:6e69a9c02ead38706a5d2a4ae209dccba08ccb5d0026e1d08e723c66ab964750 \ - --hash=sha256:76663998827a2cbc94f5e209319809655489b5bd1f8e70568a623372e80253f0 \ - --hash=sha256:7c515492ef3585e6bcd7b83f1bb1cb131038abc88ed2c843de1e4c3ceb865b19 \ - --hash=sha256:8fa707971465d8ad021c907e43691aad7bb98942943e61e294ece5f95d9fbc78 \ - --hash=sha256:b25807e0aa57d2118747e127b58e7a1bf41d5d7b3323f5f3f1f3cb10031245cc \ - --hash=sha256:c0877e82c52359d655fe1072b3a5228639184d1d5f03c6803b6530cd6da1ef20 \ - --hash=sha256:cdf4503a240369f66321213d9c4bc6f925014b64ff7121de9e9920c9b9838ce2 \ - --hash=sha256:dc744fedf98df8a00a9e3bcd629b163fee5e9f9e22bce66029d9945241586165 \ - --hash=sha256:efa95331c4c171a867c0064c19d8a4abc94a1c1c920c8b8092f2d7d87f4b90a8 +prek==0.4.5 \ + --hash=sha256:14109d37b33e5529db41a3539d4f8f72d295f6eeddede3964994d898b8cec05c \ + --hash=sha256:1fd98b986767dafdb6b4305b563ee5a3a8f13bd3c78b98d708626815ea9f147f \ + --hash=sha256:2be7bcf839de19a0144ed5a5aadf73bc5899cf6823bb1c58cf1d45ae389c201a \ + --hash=sha256:40d262418105b2ede9836593a1927fc927cc8093c432e998640964102196996e \ + --hash=sha256:50697089a86a78d16f087c1912a2f3bc2bea82319a220fac52cc8e3ec9fc0426 \ + --hash=sha256:590427a42a3c1e5064487a0dc91167ae0c8a52168e77f574758ef9b138fcfd61 \ + --hash=sha256:646a86a1a082dbd99fed96314b1064f5644bb34c1f4037a63547a18e2160fb86 \ + --hash=sha256:66877ff21ae9d548f0f7e56fab8e65f1500a74a810e7749188c3f35a4a1b911b \ + --hash=sha256:7546989b2403c96137bd79d19ebfe21facb87266cefe819db2458c3b9b23f350 \ + --hash=sha256:86f76bd3d2ecf6fd9034d75c62ff4c786eb11d0dd0a1f79bbb4343b023e12769 \ + --hash=sha256:8b2ac9227504371d97338215b344184cb0b31ca94113515a3a90c509c6c5a707 \ + --hash=sha256:a586d14c3b852fdee1c3dcd0b9cb0915db9f9d054334b854fd9470bf68edf129 \ + --hash=sha256:a8ed0d28f3e7790e4402a9324c386509066df6e67cc587f7406f9a245b97b7e8 \ + --hash=sha256:aca9fa995536036a0171bcf7a4db96dc0a14f480054eda1d7d1c2e7739650993 \ + --hash=sha256:e491a1a4641d91d8b03dcce5588397e76d2a5b432c9b0a6c70475972b4512ab4 \ + --hash=sha256:f7517774c72b001573520dc7111156779fd3e5b4452c11f09ff53c71a067e835 \ + --hash=sha256:fccd11613ae92619d1ecda0ab3359ceebeb38898909ec84a8d383733d12158cc # via -r src/backend/requirements-dev.in pycparser==3.0 \ --hash=sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29 \ @@ -525,9 +525,9 @@ pyproject-hooks==1.2.0 \ # via # build # pip-tools -pytest==9.0.3 \ - --hash=sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9 \ - --hash=sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c +pytest==9.1.1 \ + --hash=sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313 \ + --hash=sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c # via # pytest-codspeed # pytest-django diff --git a/src/backend/requirements.txt b/src/backend/requirements.txt index 8f55c3569f..08533040af 100644 --- a/src/backend/requirements.txt +++ b/src/backend/requirements.txt @@ -95,15 +95,15 @@ blessed==1.44.0 \ --hash=sha256:d3b5037f0143eb7c80b2000be5bcdf86161af68aed231b91deadbce4e7379785 \ --hash=sha256:e1d2ed93d3d90d0a1494a8b134d188c83fb89ae25590af638b921e8c1c8fa223 # via -r src/backend/requirements.in -boto3==1.43.23 \ - --hash=sha256:5d26498702ffd021dc0d57d0eefcc7101cd995ea0ed08c057c9b631efccbaa48 \ - --hash=sha256:8afc058924ef8a5c62467fe2e1e2e0304c22018587a044714da89f9c602ba856 +boto3==1.43.34 \ + --hash=sha256:42595057324606928c6e2432b3093978e4d722e0d432bce942f2a385702c0a43 \ + --hash=sha256:444207c6c883d4df3ea3b2c36df43ad492b86e0b889eebd2fc1d5ea8db0a8a1a # via # django-anymail # django-storages -botocore==1.43.23 \ - --hash=sha256:69ff3d951cb644d1d84db646663c7eb919dc9c0c47e5768e947c8a71121b3d77 \ - --hash=sha256:a6737c598750f330bfa8ef2be2d9fa84b5d2d643b6bbb0d22e129e03b7535df1 +botocore==1.43.34 \ + --hash=sha256:238a0269f33c5914b9343900b44767e783b3e8b6dcb6e065eac8b4495601c5df \ + --hash=sha256:ccc973cf30c6445b30afe5760f6dc949a80f1f862cb23d9c45747f2c814ece77 # via # boto3 # s3transfer @@ -209,9 +209,9 @@ brotli==1.2.0 \ --hash=sha256:fc1530af5c3c275b8524f2e24841cbe2599d74462455e9bae5109e9ff42e9361 \ --hash=sha256:ff09cd8c5eec3b9d02d2408db41be150d8891c5566addce57513bf546e3d6c6d # via fonttools -certifi==2026.5.20 \ - --hash=sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897 \ - --hash=sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d +certifi==2026.6.17 \ + --hash=sha256:024c88eeec92ca068db80f02b8b07c9cef7b9fe261d1d535abfd5abd6f6af432 \ + --hash=sha256:2227dcbaafe0d2f59279d1762ddddc37783ed4354594f194ffc31d20f41fc3db # via # requests # sentry-sdk @@ -574,9 +574,9 @@ django-ipware==7.0.1 \ --hash=sha256:d9ec43d2bf7cdf216fed8d494a084deb5761a54860a53b2e74346a4f384cff47 \ --hash=sha256:db16bbee920f661ae7f678e4270460c85850f03c6761a4eaeb489bdc91f64709 # via django-structlog -django-js-asset==3.1.2 \ - --hash=sha256:1fc7584199ed1941ed7c8e7b87ca5524bb0f2ba941561d2a104e88ee9f07bedd \ - --hash=sha256:b5ffe376aebbd73b7af886d675ac9f43ca63b39540190fa8409c9f8e79145f68 +django-js-asset==4.0.1 \ + --hash=sha256:51ad1060115bf741bef88dc1287ca7f70e1d6ea7cf935f52a34f39eca9bd9db1 \ + --hash=sha256:967ac7d95ce094d9f65f358278bcd494201e2f9bbee936430150de83eac9f656 # via django-mptt django-mailbox==4.10.1 \ --hash=sha256:9060a4ddc81d16aa699e266649c12eaf4f29671b5266352e2fad3043a6832b52 @@ -589,9 +589,9 @@ django-markdownify==0.9.7 \ --hash=sha256:2e59dfd445ad6362288f7bc1574e45d8356848463e261b878fd70df6a272c47f \ --hash=sha256:ca3a6361f952d1c1b661c13229f69219a36e745358aa0f377212aef8f09e4cf3 # via -r src/backend/requirements.in -django-money==3.6.0 \ - --hash=sha256:94402f2831f2726b94ef2da35b4059441b4c0aedfc47b312472200d4ffdf8d73 \ - --hash=sha256:a8d249bf3ce6ad7fb953530c920cc85ea7f1137c0fde747a74204ea24ec97ab1 +django-money==3.6.1 \ + --hash=sha256:32a8027a91dea969951a34a9cc4a4f101aaa6ec45e7f784f0b17ec7813818fb2 \ + --hash=sha256:9b25d992a457af932eef1e5fef0098dd3ff0c92f4255d2d6d452af772b2fdde5 # via -r src/backend/requirements.in django-mptt==0.18.0 \ --hash=sha256:bfa3f01627e3966a1df901aeca74570a3e933e66809ebf58d9df673e63627afb \ @@ -795,58 +795,58 @@ googleapis-common-protos==1.75.0 \ # via # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -grpcio==1.81.0 \ - --hash=sha256:0fba53cb96004b2b7fb758b46b2288cb49d0b658316a4e73f3ef67230616ee65 \ - --hash=sha256:194eddfacc84d80f50512e9fd4ee851d5f2499f18f299c95aa8fb4748f0537e0 \ - --hash=sha256:19f201da7b4e5c0559198abe5a97157e726f3abe6e8f5e832d4a50740f6dcc22 \ - --hash=sha256:21ec30b9ea320c8207ea7cd05873ad64aa69fdd0e81b6758b3347983ba20b50a \ - --hash=sha256:275144b0115353339dbb8a6f28a9cf8997b5bf40e37f8f66ac0b0ea57e95b43f \ - --hash=sha256:300f3337b6425fd16ead9a4f9b2ac25801acb64aa5bc0b99eb69901645b2b1d2 \ - --hash=sha256:3755c9669307cad18e7e009860fdea98118978d2300451bd8530a53048e741e7 \ - --hash=sha256:3d4e0ce5a40a998cf608c8ba60ecfe18fdf364a9aa193ae4ac3faeecd0e86757 \ - --hash=sha256:40edffb4ec3689373825d367c4457727047a6e554f03245265ecc8cc03215f22 \ - --hash=sha256:43c121e135ae44d1559b430db2b2dfad7421cbbe40e1deba506c7dc62b439719 \ - --hash=sha256:4e032feb3bfb4e2749b140a2302a6baa8ead1b9781ff5cf7094e4402b5e9372e \ - --hash=sha256:5192857589f223e5a98ff0e31f6e551b19040e647d17bfe10116c8a2ce3b8696 \ - --hash=sha256:57b3b0e73a518fa286959b40c3eddd02703504ca186e8b7b2945954519bd8b2c \ - --hash=sha256:5e925a70fe99fe5794f7beca0ea034c75f068afcc356d79047e73f99cdcca34c \ - --hash=sha256:62bbe463c9f0f2ff24e31bd25f8dd8b4bae78900e315915a3195a0ef1471a855 \ - --hash=sha256:638ccc1b86f7540170a169cb900799b9296a1381e47879ce60b0de9d3db73d33 \ - --hash=sha256:725801c7086d7e4cd160e42bb2f54e0aeb976b9568df3cc6f843b15d29b79fb1 \ - --hash=sha256:77eb4e9fe61486bd1198cc7236ebb0f70e66234e63c0348f40bc2553ed16a88b \ - --hash=sha256:7915a2e63acdc05264a206e1bddfd8e1fb8a29e406c18d72d30f8c124e021374 \ - --hash=sha256:794e6aa648e8df47d8f908dc8c3b42347d04ec58438f1dcd4e445f09b4f6b0ce \ - --hash=sha256:8226ba097eed660ef14d36c6a69b85038552bb8b6d17b44a5aa6f9abf48b8e08 \ - --hash=sha256:87e33b7afcfb3585121b5f007d2c52b8c534104d18f556e840d35193ca2a9141 \ - --hash=sha256:8bb1789c94322a13336a2b6c58d9c14d68f8628b6e24205a799c69f5bf8516ce \ - --hash=sha256:8c0855a350886f713b9e458e2a10d208009dcaa849f574e39cd6067db1fe1279 \ - --hash=sha256:909bb3222b53235498d2c5817a0596d82b0aaea490ba93fdf1b060e2938a543c \ - --hash=sha256:97bbd623f7ded558fd4f7cb5a4f600c4d4de65c5dd364c83a5b14b2a10a2d3b5 \ - --hash=sha256:98c6240f563178fc5877bd50e6ff274463e53e1472128f4110742450739659fa \ - --hash=sha256:9f355384e5543ab77a755a7085225ecc19f32b76032e851cbd8145715d79dec8 \ - --hash=sha256:a524cd530900bd24511fcb7f2ed144da4ea37711c4b094475d0bceca7a93a170 \ - --hash=sha256:a5acd7efd3b1fe9b4eb0bcaaa1507eed68a0ad0678b654c3f7b464df9ba9dca5 \ - --hash=sha256:a9351055f52660b58f3d4890ea66188b5134399f82b11aa0c55bd4b99eff5390 \ - --hash=sha256:aa948712c8e5fa40ec250870bda14bc7578e1bb832a8912d9d2a0f720518edbe \ - --hash=sha256:aaaa4f7f2057d795952e4eacf3f342be8b5b156992f6ac85023c8b98794ebd47 \ - --hash=sha256:b4108e5d9d0f651b7eea749116181fe6c315b145661a80ec31f05ec2dbe21af7 \ - --hash=sha256:b76ea9d55cd08fcdbda25d28e0f76679536710acb7fbd5b1f70cb4ac49317265 \ - --hash=sha256:b8b025b6af43ee0ad4a70307025d77bcab5adde7c4597786010d802c203e9fc5 \ - --hash=sha256:b93cee313cae4e113fbb3a0ce1ea5633db6f63cfde2b2dc1d817429026b2a50b \ - --hash=sha256:c197e2ef75a442528072b29e9755da299110e8610e8bcbb59a6b4cf55384f005 \ - --hash=sha256:c36f5d5e97944cbda2d4096b4ae262e6e68506246b61582acf1b8591607f3ccc \ - --hash=sha256:c4fe218c5a35e1d87a5a26544237f1fa41dfd9cbd3c856b0810a30061f8b0aaf \ - --hash=sha256:c6ff087cb1f563f47b504b4e29e684129fc5ae4863faf3ebca08a327764ee6cb \ - --hash=sha256:cd78145b7f7784661c524624f3526c9c6f891b30a4b54cb93a40806d0d0d61e9 \ - --hash=sha256:db217c2e52931719f9937bd12082cd4d7b495b35803d5760686975c285924bf8 \ - --hash=sha256:dbdb99986548a7e87f8343805ef315fd4eb50ffaabf4fb1206e42f2542bb805d \ - --hash=sha256:e4d053900a0d24b75d7521139a3872150301b3d6bde3bed5e12318fb25791e4d \ - --hash=sha256:e7746ba3e6efc9e2b748eff59470a2b8684d5a9ec607c6580bcaa5be175820bc \ - --hash=sha256:f345de40ef2e65f63645d53d251824e6070e07804827c5b00ec2e44555f9f901 \ - --hash=sha256:f750a091fff3a3991731abc1f818bdc64874bb3528162732cb4d45f2e07821a6 \ - --hash=sha256:f85570a016d794c29b1e76cf22f67af4486ddbe779e0f30674f138fa4e1769ec \ - --hash=sha256:fbbe81314a9d92156abce8b62c09364eb8bafc0ca2a19919a45ec64b5c6cb664 \ - --hash=sha256:ff83d889e3ebf6341c8c7864ad8031591ad5ca61599072fc511644d1eb962d2b +grpcio==1.81.1 \ + --hash=sha256:0490c30c261eded63f3f354979f9dc4502a9fb944cccb60cd9dc85f5a7349854 \ + --hash=sha256:0a37165cc80b1a368384b383e63a4c38116a10467ae44c904d2d7468c4470ec2 \ + --hash=sha256:12b7524c88d4026d3dcb7b0ebe16b6714f3b4af402ddd0f0639ab064a00c87c3 \ + --hash=sha256:15641444eca4a29358107b3dceb74c1c6305c55c822fd199b458aaea4068a7fb \ + --hash=sha256:1b22c80559854b789a01fd89e8929b3798a156c0829b5282a8939f33ad4115ad \ + --hash=sha256:1e123f9b37edb8375fd74130d1f69c944bbf0a7b06761ae7211154b8759e94d2 \ + --hash=sha256:24c8e57504c8f45b237e40b99262d181071e5099a07053695b75d97bb53053a0 \ + --hash=sha256:2c2e2ae6867c2966b8daccc836d54a13218e0007e9a490aeb81dd05be64d22d7 \ + --hash=sha256:30e825f6848d9f18bba350ed6c75c1b02a0b5184474a31db9a32b1fa66fd8c79 \ + --hash=sha256:3768a5ff1b2125e6f552e561b6b2dca0e64982d8949689b4df145cf8b98d7821 \ + --hash=sha256:3ad74f8bb1a18963914c5452d289422830b39459e8776ebbcd207be1fbfb1d94 \ + --hash=sha256:410482da976329fe5f4067270401b12cf2bd552ff8020f054ecfaddb5475f9d6 \ + --hash=sha256:428bec0161b48d8cf583c068591bc0016d0d9cfff52462b72b3884861ea768c5 \ + --hash=sha256:506f48f2f9c29b143fca3dad7b0d518c188b6c9648c75a2ae6e2d9f2c13a060b \ + --hash=sha256:58ad1131c300d3c9b933802b3cc4dc69d380822935ba50b28703156ea826fbf7 \ + --hash=sha256:592b5fee597faa91cce2dd294dd7d9a1c83d76c4dbf877e33ec1adb866b2fbed \ + --hash=sha256:61233fe8951e5c85dff81c2458b6528624760166946b5b47ea150a589168411f \ + --hash=sha256:62481553b1793a27e9b9c3cf9e5bd483ef045ca72462592074b46d42b0c4d9b9 \ + --hash=sha256:6282caffb41ec326d4cb67ca9cf53b739d1b2f975a2acb498c7418e9f7d9a416 \ + --hash=sha256:69ef28e54fc85397f91b8c19592b8ef3d81952080366914823bd8572a2958120 \ + --hash=sha256:6f9a0c9c1cc15c112d1c053064fd032b64917062292c3d70aea280e02ae10b77 \ + --hash=sha256:6fa10a767143a5e82e8eaab53918af0cd8909a57a27f8cb2288b80a613ac671b \ + --hash=sha256:766bc7c9a9c340342f4c864ccbda8e78111e4751f13b895812b9c148fb79e9d0 \ + --hash=sha256:78e29211f26da2fdd0e9c6d2b79f489476140cf7029b6a64808ade7ca4156a42 \ + --hash=sha256:819edbdcb42ab8598b494bcf0222684bbb7a3c772bd1b1f0be7e029a6063c28e \ + --hash=sha256:85b10a45b8993d195c4f3ff57025b8d1e11834909ee475c403bfa60cb4caefaf \ + --hash=sha256:88268ca418cacea64cecb0d1d600d3c6b3a8038fcba02e1e205178c5b1f47661 \ + --hash=sha256:8b39472beafc0bdcafc4c8c73ad082ebfdb449d566897a61e7acb4fa88089115 \ + --hash=sha256:8ea1936c26b99999b27479853039a7f34713f56c49375ad52b38535ec93a796c \ + --hash=sha256:98a07f9bf591e3a8919797bee1c53f026ba4acd587e5a4404c8e57c9ec36b2a5 \ + --hash=sha256:a185a04039df6cae8648bc8ab6d6fde7bf94f7188ecf7828e76ac52eef1e41d6 \ + --hash=sha256:a35009284d0d3d5c2c9601c164a911b8b4331608d98a9a66d47d97bb2f522b70 \ + --hash=sha256:a3acb384427816dd5d470f47e62137b87f74da694faa8a50147012cf40df276a \ + --hash=sha256:aa2ba7d2ad6df4d80127cea65e5b8d5e2c3adbf153ff4804452836328aca7c54 \ + --hash=sha256:b10e1ff4756ed27d5a29d7fc79cfce7ef1ff56ad20025b89bac7cf79e09abbbe \ + --hash=sha256:b137f4bf3ada9dc44d411478decc6ff09a79ed30b306cd2abaa98408c3588137 \ + --hash=sha256:b259a04a737cb3496be0901328eb8b7552ed8df4865d8c8f1cf1bffcfc0776a3 \ + --hash=sha256:b427c19380991a4eaab2f6144b64b99b412043314c6bf4ab544f97bb31ee4190 \ + --hash=sha256:bb693b1e3d9a2f3fd228e2110daf4b5aeedb36761ca1e4282f74725f6d89f611 \ + --hash=sha256:c261d74b1a945cf895a9d6eccd1685a8e837531beaab782da4d630a8d12deffb \ + --hash=sha256:c5bf2dc311127d91230cc79b92188c082634a06cf66c5234db49a43b910183b0 \ + --hash=sha256:ca1cc11d82677b9662082e5478b7528e2b7db7beaa6bdff42bd62789d81be399 \ + --hash=sha256:d4b2dddfc219f54f956ccd53cf76a1d338ffe68fc7f2849ec9c7feb9927ff692 \ + --hash=sha256:d71d30f2d92f67d944631c523713934fee37292469e182ebcd2c1dd8a64ce53f \ + --hash=sha256:d865db4a6318e1c1bea83292e0ed231090538fc4ca45425b0f0480eb338bbc6e \ + --hash=sha256:e2aa72e3ce1770317ef534f63d397b55e130725f5149bd36077c3b539019db27 \ + --hash=sha256:e3657301562ac3cb8018d30d0d3ebfa39932239f7b5703422057ef14b69949f5 \ + --hash=sha256:e64dd101d380a115cc5a0c7856788adb535f1a4e21fc543775602f8be95180ae \ + --hash=sha256:e8ca6a1fcdb2943c9cbc1804a1baf3acb6071d72a471591678ded84218006e14 \ + --hash=sha256:edb59506291b647a30884b1d51a599d605f40b20af4a7dc3d33786a47a31de60 \ + --hash=sha256:f9a0ebbe45c29b5e5866593c12b78bd9035f0f0f0d4bc8361680cd580d99db49 # via # -r src/backend/requirements.in # opentelemetry-exporter-otlp-proto-grpc @@ -854,9 +854,9 @@ gunicorn==26.0.0 \ --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf # via -r src/backend/requirements.in -icalendar==7.1.2 \ - --hash=sha256:01c76243c76c549f58bb51510a8f0a4edb7c539726adda1356dfd0dc04fb7a53 \ - --hash=sha256:ebc43ebeb357be98984b573d975118008dee3410d8df28b054ef2943cf3e367e +icalendar==7.1.3 \ + --hash=sha256:690f30aa50a76cbf854db5ad52654705db9c5cd0e1b152222f5d4b7854b60667 \ + --hash=sha256:eb03a0e215f30db689a72c49f18f998aabf17522eb0858a293c393510850727c # via django-ical idna==3.18 \ --hash=sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2 \ @@ -1874,13 +1874,13 @@ rpds-py==2026.5.1 \ # via # jsonschema # referencing -s3transfer==0.18.0 \ - --hash=sha256:239c13b09e65ad0346e1be7348b8a202dcad44ac7ea7c6eb858fc881dce739b6 \ - --hash=sha256:3760b8b7ec1315da54048b2d626276732bee4300d054d492d4e1d43e20d4ecbd +s3transfer==0.19.0 \ + --hash=sha256:777cc2415536f1debadb5c2ef7779275d0fc0fe0e042411cdd6caebeb2685262 \ + --hash=sha256:ce436931687addc4c1712d52d40b32f53e88315723f107ffa20ba82b05a0f685 # via boto3 -sentry-sdk==2.61.1 \ - --hash=sha256:9c6adccb3feefa9ba032c8d295ca477575c2f11896046a2b0ad686c47c4af555 \ - --hash=sha256:fa36eaf4b8ad708f718500d4bdcc1532637526a22beb874d88cbc0a46458b5ae +sentry-sdk==2.63.0 \ + --hash=sha256:2a1502bf864769275dbc8c2c9fc7a0f7f5e18358180b615d262d13a31ffba216 \ + --hash=sha256:3a9b5ddd403f79eb73bd670f75f04485819db53d28f76ced7bc09041cb0dfd6a # via # -r src/backend/requirements.in # django-q-sentry @@ -1901,9 +1901,9 @@ sqlparse==0.5.5 \ # via # django # django-sql-utils -structlog==25.5.0 \ - --hash=sha256:098522a3bebed9153d4570c6d0288abf80a031dfdb2048d59a49e9dc2190fc98 \ - --hash=sha256:a8453e9b9e636ec59bd9e79bbd4a72f025981b3ba0f5837aebf48f02f37a7f9f +structlog==26.1.0 \ + --hash=sha256:e081a26d6c373e6d201eca24eede26d8ffab07f88f477822e679183428d3d91e \ + --hash=sha256:f63a716cbd1b1291cf7661de7794b455acfa4c43c5bcf1630e6ad5ddc1adb3b7 # via django-structlog tablib[xls, xlsx, yaml]==3.9.0 \ --hash=sha256:1b6abd8edb0f35601e04c6161d79660fdcde4abb4a54f66cc9f9054bd55d5fe2 \ @@ -1920,9 +1920,9 @@ tinyhtml5==2.1.0 \ --hash=sha256:60a50ec3d938a37e491efa01af895853060943dcebb5627de5b10d188b338a67 \ --hash=sha256:6e11cfff38515834268daf89d5f85bbde0b6dd02e8d9e212d1385c2289b89f0a # via weasyprint -tqdm==4.68.1 \ - --hash=sha256:fc163d96b287bd031e1aa24421ce4411b25559bd0a1be4fe649bdaa4d2c02bf5 \ - --hash=sha256:fea4a90e4023f764914569f7802a297277c5ab1a66be5144143e142e1a4031d8 +tqdm==4.68.3 \ + --hash=sha256:00dfa48452b6b6cfae3dd9885636c23d3422d1ec97c66d96818cbd5e0821d482 \ + --hash=sha256:39832cc2def2789a6f29df83f172db7416cea70052c0907a57801c5f2fdccb03 # via -r src/backend/requirements.in typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -1960,9 +1960,9 @@ urllib3==2.7.0 \ # dulwich # requests # sentry-sdk -wcwidth==0.7.0 \ - --hash=sha256:5d69154c429a82910e241c738cd0e2976fac8a2dd47a1a805f4afed1c0f136f2 \ - --hash=sha256:90e3a7ea092341c44b99562e75d09e4d5160fe7a3974c6fb842a101a95e7eed0 +wcwidth==0.8.1 \ + --hash=sha256:f453740b1e4a4f3291faa37944c555d71056c4da08d59809b307ef4feba695c8 \ + --hash=sha256:faf5b4a5366a72dc49cad48cdf21f52bdf63bdda995178e483ba247ff79089b9 # via # blessed # prettytable @@ -1982,88 +1982,97 @@ whitenoise==6.12.0 \ --hash=sha256:f723ebb76a112e98816ff80fcea0a6c9b8ecde835f8ddda25df7a30a3c2db6ad \ --hash=sha256:fc5e8c572e33ebf24795b47b6a7da8da3c00cff2349f5b04c02f28d0cc5a3cc2 # via -r src/backend/requirements.in -wrapt==1.17.3 \ - --hash=sha256:02b551d101f31694fc785e58e0720ef7d9a10c4e62c1c9358ce6f63f23e30a56 \ - --hash=sha256:042ec3bb8f319c147b1301f2393bc19dba6e176b7da446853406d041c36c7828 \ - --hash=sha256:0610b46293c59a3adbae3dee552b648b984176f8562ee0dba099a56cfbe4df1f \ - --hash=sha256:0b02e424deef65c9f7326d8c19220a2c9040c51dc165cddb732f16198c168396 \ - --hash=sha256:0b1831115c97f0663cb77aa27d381237e73ad4f721391a9bfb2fe8bc25fa6e77 \ - --hash=sha256:0ed61b7c2d49cee3c027372df5809a59d60cf1b6c2f81ee980a091f3afed6a2d \ - --hash=sha256:0f5f51a6466667a5a356e6381d362d259125b57f059103dd9fdc8c0cf1d14139 \ - --hash=sha256:16ecf15d6af39246fe33e507105d67e4b81d8f8d2c6598ff7e3ca1b8a37213f7 \ - --hash=sha256:1f0b2f40cf341ee8cc1a97d51ff50dddb9fcc73241b9143ec74b30fc4f44f6cb \ - --hash=sha256:1f23fa283f51c890eda8e34e4937079114c74b4c81d2b2f1f1d94948f5cc3d7f \ - --hash=sha256:223db574bb38637e8230eb14b185565023ab624474df94d2af18f1cdb625216f \ - --hash=sha256:249f88ed15503f6492a71f01442abddd73856a0032ae860de6d75ca62eed8067 \ - --hash=sha256:24c2ed34dc222ed754247a2702b1e1e89fdbaa4016f324b4b8f1a802d4ffe87f \ - --hash=sha256:273a736c4645e63ac582c60a56b0acb529ef07f78e08dc6bfadf6a46b19c0da7 \ - --hash=sha256:281262213373b6d5e4bb4353bc36d1ba4084e6d6b5d242863721ef2bf2c2930b \ - --hash=sha256:30ce38e66630599e1193798285706903110d4f057aab3168a34b7fdc85569afc \ - --hash=sha256:33486899acd2d7d3066156b03465b949da3fd41a5da6e394ec49d271baefcf05 \ - --hash=sha256:343e44b2a8e60e06a7e0d29c1671a0d9951f59174f3709962b5143f60a2a98bd \ - --hash=sha256:373342dd05b1d07d752cecbec0c41817231f29f3a89aa8b8843f7b95992ed0c7 \ - --hash=sha256:3af60380ba0b7b5aeb329bc4e402acd25bd877e98b3727b0135cb5c2efdaefe9 \ - --hash=sha256:3e62d15d3cfa26e3d0788094de7b64efa75f3a53875cdbccdf78547aed547a81 \ - --hash=sha256:41b1d2bc74c2cac6f9074df52b2efbef2b30bdfe5f40cb78f8ca22963bc62977 \ - --hash=sha256:423ed5420ad5f5529db9ce89eac09c8a2f97da18eb1c870237e84c5a5c2d60aa \ - --hash=sha256:46acc57b331e0b3bcb3e1ca3b421d65637915cfcd65eb783cb2f78a511193f9b \ - --hash=sha256:4da9f45279fff3543c371d5ababc57a0384f70be244de7759c85a7f989cb4ebe \ - --hash=sha256:507553480670cab08a800b9463bdb881b2edeed77dc677b0a5915e6106e91a58 \ - --hash=sha256:53e5e39ff71b3fc484df8a522c933ea2b7cdd0d5d15ae82e5b23fde87d44cbd8 \ - --hash=sha256:54a30837587c6ee3cd1a4d1c2ec5d24e77984d44e2f34547e2323ddb4e22eb77 \ - --hash=sha256:5531d911795e3f935a9c23eb1c8c03c211661a5060aab167065896bbf62a5f85 \ - --hash=sha256:55cbbc356c2842f39bcc553cf695932e8b30e30e797f961860afb308e6b1bb7c \ - --hash=sha256:59923aa12d0157f6b82d686c3fd8e1166fa8cdfb3e17b42ce3b6147ff81528df \ - --hash=sha256:5a03a38adec8066d5a37bea22f2ba6bbf39fcdefbe2d91419ab864c3fb515454 \ - --hash=sha256:5a7b3c1ee8265eb4c8f1b7d29943f195c00673f5ab60c192eba2d4a7eae5f46a \ - --hash=sha256:5d4478d72eb61c36e5b446e375bbc49ed002430d17cdec3cecb36993398e1a9e \ - --hash=sha256:5ea5eb3c0c071862997d6f3e02af1d055f381b1d25b286b9d6644b79db77657c \ - --hash=sha256:604d076c55e2fdd4c1c03d06dc1a31b95130010517b5019db15365ec4a405fc6 \ - --hash=sha256:656873859b3b50eeebe6db8b1455e99d90c26ab058db8e427046dbc35c3140a5 \ - --hash=sha256:65d1d00fbfb3ea5f20add88bbc0f815150dbbde3b026e6c24759466c8b5a9ef9 \ - --hash=sha256:6b538e31eca1a7ea4605e44f81a48aa24c4632a277431a6ed3f328835901f4fd \ - --hash=sha256:6fd1ad24dc235e4ab88cda009e19bf347aabb975e44fd5c2fb22a3f6e4141277 \ - --hash=sha256:70d86fa5197b8947a2fa70260b48e400bf2ccacdcab97bb7de47e3d1e6312225 \ - --hash=sha256:7171ae35d2c33d326ac19dd8facb1e82e5fd04ef8c6c0e394d7af55a55051c22 \ - --hash=sha256:73d496de46cd2cdbdbcce4ae4bcdb4afb6a11234a1df9c085249d55166b95116 \ - --hash=sha256:7425ac3c54430f5fc5e7b6f41d41e704db073309acfc09305816bc6a0b26bb16 \ - --hash=sha256:74afa28374a3c3a11b3b5e5fca0ae03bef8450d6aa3ab3a1e2c30e3a75d023dc \ - --hash=sha256:758895b01d546812d1f42204bd443b8c433c44d090248bf22689df673ccafe00 \ - --hash=sha256:79573c24a46ce11aab457b472efd8d125e5a51da2d1d24387666cd85f54c05b2 \ - --hash=sha256:7e18f01b0c3e4a07fe6dfdb00e29049ba17eadbc5e7609a2a3a4af83ab7d710a \ - --hash=sha256:88547535b787a6c9ce4086917b6e1d291aa8ed914fdd3a838b3539dc95c12804 \ - --hash=sha256:88bbae4d40d5a46142e70d58bf664a89b6b4befaea7b2ecc14e03cedb8e06c04 \ - --hash=sha256:8cccf4f81371f257440c88faed6b74f1053eef90807b77e31ca057b2db74edb1 \ - --hash=sha256:9baa544e6acc91130e926e8c802a17f3b16fbea0fd441b5a60f5cf2cc5c3deba \ - --hash=sha256:a36692b8491d30a8c75f1dfee65bef119d6f39ea84ee04d9f9311f83c5ad9390 \ - --hash=sha256:a47681378a0439215912ef542c45a783484d4dd82bac412b71e59cf9c0e1cea0 \ - --hash=sha256:a7c06742645f914f26c7f1fa47b8bc4c91d222f76ee20116c43d5ef0912bba2d \ - --hash=sha256:a9a2203361a6e6404f80b99234fe7fb37d1fc73487b5a78dc1aa5b97201e0f22 \ - --hash=sha256:ab232e7fdb44cdfbf55fc3afa31bcdb0d8980b9b95c38b6405df2acb672af0e0 \ - --hash=sha256:ad85e269fe54d506b240d2d7b9f5f2057c2aa9a2ea5b32c66f8902f768117ed2 \ - --hash=sha256:af338aa93554be859173c39c85243970dc6a289fa907402289eeae7543e1ae18 \ - --hash=sha256:afd964fd43b10c12213574db492cb8f73b2f0826c8df07a68288f8f19af2ebe6 \ - --hash=sha256:b32888aad8b6e68f83a8fdccbf3165f5469702a7544472bdf41f582970ed3311 \ - --hash=sha256:c31eebe420a9a5d2887b13000b043ff6ca27c452a9a22fa71f35f118e8d4bf89 \ - --hash=sha256:caea3e9c79d5f0d2c6d9ab96111601797ea5da8e6d0723f77eabb0d4068d2b2f \ - --hash=sha256:cf30f6e3c077c8e6a9a7809c94551203c8843e74ba0c960f4a98cd80d4665d39 \ - --hash=sha256:d40770d7c0fd5cbed9d84b2c3f2e156431a12c9a37dc6284060fb4bec0b7ffd4 \ - --hash=sha256:d8a210b158a34164de8bb68b0e7780041a903d7b00c87e906fb69928bf7890d5 \ - --hash=sha256:dc4a8d2b25efb6681ecacad42fca8859f88092d8732b170de6a5dddd80a1c8fa \ - --hash=sha256:df7d30371a2accfe4013e90445f6388c570f103d61019b6b7c57e0265250072a \ - --hash=sha256:e01375f275f010fcbf7f643b4279896d04e571889b8a5b3f848423d91bf07050 \ - --hash=sha256:e1a4120ae5705f673727d3253de3ed0e016f7cd78dc463db1b31e2463e1f3cf6 \ - --hash=sha256:e228514a06843cae89621384cfe3a80418f3c04aadf8a3b14e46a7be704e4235 \ - --hash=sha256:e405adefb53a435f01efa7ccdec012c016b5a1d3f35459990afc39b6be4d5056 \ - --hash=sha256:e6b13af258d6a9ad602d57d889f83b9d5543acd471eee12eb51f5b01f8eb1bc2 \ - --hash=sha256:e6f40a8aa5a92f150bdb3e1c44b7e98fb7113955b2e5394122fa5532fec4b418 \ - --hash=sha256:e71d5c6ebac14875668a1e90baf2ea0ef5b7ac7918355850c0908ae82bcb297c \ - --hash=sha256:ed7c635ae45cfbc1a7371f708727bf74690daedc49b4dba310590ca0bd28aa8a \ - --hash=sha256:f38e60678850c42461d4202739f9bf1e3a737c7ad283638251e79cc49effb6b6 \ - --hash=sha256:f66eb08feaa410fe4eebd17f2a2c8e2e46d3476e9f8c783daa8e09e0faa666d0 \ - --hash=sha256:f9b2601381be482f70e5d1051a5965c25fb3625455a2bf520b5a077b22afb775 \ - --hash=sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10 \ - --hash=sha256:fd341868a4b6714a5962c1af0bd44f7c404ef78720c7de4892901e540417111c +wrapt==2.2.1 \ + --hash=sha256:036dfb40128819a751c6f451c6b9c10172c49e4c401aebcdb8ecf2aec1683598 \ + --hash=sha256:03df9ebed4c73ab93fa8c07e3d41d818dfca1852b15731a3de59457b27814624 \ + --hash=sha256:05d5cb74d1b232ec8cfa130a8f900708699ff2491d97b8f85a4cdc5996294b85 \ + --hash=sha256:07be671fa8875971222b0ba9059ed8b4dc738631122feba17c93aa36b4213e9a \ + --hash=sha256:09ac16c081bebfd15d8e4dfa5bdc805990bbd52249ecff22530da7a129d6120b \ + --hash=sha256:0d9ff006f420b2ec8296aa56ade43ea7da3e997e85769f0aafc5e0661aacb710 \ + --hash=sha256:0f68f478004475d97906686e702ddbddeaf717c0b68ad2794384308f2dc713ae \ + --hash=sha256:17de18fc12cea55b8a9587314cb830573e37fb33b247a7515696350863714188 \ + --hash=sha256:1ae574d65c9fa8e86f64f6a7c2668f9fcd507b183e0e577619f504b883cb0a6c \ + --hash=sha256:1c9934ea5d92957e3cd0adbc0845539dccfd62710ebe16195a8c66c53954db36 \ + --hash=sha256:1d676ee388bc42a04d56dd7deb5605244dac2e35cc2fadbb43c9fa25bbd93508 \ + --hash=sha256:1ffa9cfd4bdb581539951b14ae661ff20ed0c3599b3e911a131ee0ec5ac11337 \ + --hash=sha256:2076d2335085eb09b9547e7688656fa8f5cf0183eab589d33499cd353489d797 \ + --hash=sha256:211f595f8e7faae5c5930fcc64708f2ba36849e0ba0fd653a843de9fa8d7db77 \ + --hash=sha256:24c52546acf2ab82412f2ab6fc5948a7fe958d3b4f070202e8dcdd865489eaf9 \ + --hash=sha256:2d83966dc7f4f45e8b97b5933685ac2e6e67fc0e19246ea314bceb9a8970c956 \ + --hash=sha256:2de9e20769fe9c1f6dcdc893c6a89287c5ccf8537c90b5de78aed8017697aad5 \ + --hash=sha256:2e08688ab16525897da6589d56d0aebaf417bbe91c2d8e3b96203b1efa596e85 \ + --hash=sha256:2f8c90c8afde51969487be4e1343ae049b268854877d415c2510baf833775052 \ + --hash=sha256:368eac1e20fd0bb03dd3cc42bf9887154c3861b60989389ccb5fac032617d215 \ + --hash=sha256:3aafea2975caef8ca49400640dde02cc7426e798f24870ed01f490bc3cffd32f \ + --hash=sha256:3e2f02472a1cbbf3884b365714a810b5947134a95ad6952b554cb8cce9d492b0 \ + --hash=sha256:3ffad790d9d11d8ecf9f17c4bb671a5b4089e4d8b575c46c5129597f41f836b0 \ + --hash=sha256:401229e9d63ca09f9b8891ecf83798d26c11bbb445d11ed9f1836b6d4585b38a \ + --hash=sha256:436addbc4bb4fc0a88c702577f51195d7d73683a7f3e0e5b253d8404d7847243 \ + --hash=sha256:44255c84bc57554fed822e83e70036b51afa9edb56fc7ca56c54410ece7898c9 \ + --hash=sha256:50972a1d974ea07725a7f6b1cec5f8759008afd030a0024843ebe7d52de47f2b \ + --hash=sha256:5590d63f5243251641cf543009b4c9314a79d0598fdb8a8e4cfc918494536c53 \ + --hash=sha256:585916e210db57b23543342c2f298e42331b617fd0c934caf5c64df44de8640e \ + --hash=sha256:5f1845c2a8cc1180ccccfa45785dd06f562730d19ef75be180334254012b6283 \ + --hash=sha256:5fa9bf3b9e66336589d03f42abce2da1055ad5c69b0c2b764852a8471c9b9114 \ + --hash=sha256:61a0013344674d2b648bc6e6fe9828dd4fc1d3b4eb7523809792f8cb952e2f16 \ + --hash=sha256:61acce4257a9883669703c525447c5b4c392edf0f987ae77ec32668440158f0e \ + --hash=sha256:628f5220c7a904d5fc78f7075c8d7871433eb6d035c94728a22fdf85f193d2a8 \ + --hash=sha256:64b7deeda4b70408e382328d8bbe52a256fe9bc63ae3db86d804608367e5422c \ + --hash=sha256:6744f504375775d7609c82c8d3d94af1c9a6f05586984536905908ba905277b9 \ + --hash=sha256:67a97e5b6c457f0cd3cfc19ebb2d84463e60c3ece754cc831e4281a3ca29bb18 \ + --hash=sha256:69f2e9244542cb34dd59c7f073445b9e54ad9f3fce8d93606c368a1b499fc413 \ + --hash=sha256:6ce32763ac31ce94fe9aada947e479b1975012bff166da409b4b9e4e376cf7e5 \ + --hash=sha256:6f56a647e4eaf5f0ca40330fb070f566bdf9f7b0db89a1af20d71c28dcd7a0ab \ + --hash=sha256:727ab4244622cd6ad2390f322642090c877d2e83a608d2653a7643ae5368d926 \ + --hash=sha256:74d6a0c31472fe5d814917266b9f46495d7c61ed890af08b468acea92fb89a8d \ + --hash=sha256:78b0aa6bfb7be8deed0ab23e7aa028cc5210c29bc2d32a04d52b50e517a7307e \ + --hash=sha256:7975bc88ab4b0f72ef2a2d5ae9d77d87efb5ef95e8f8046242fa9afdaaf2030b \ + --hash=sha256:7a4fdb9326aab4a5a477a1640e5ad786a8495901009d7e7b038371edd23a9d2b \ + --hash=sha256:844c858fc3bb7eacc0ba8efa904935d16aac6a4470948ad1e7e55c9f5a2a665f \ + --hash=sha256:87bacdaf225117a342a20d9c03438d701c02112f6e3f351ce9b7f32354f14797 \ + --hash=sha256:8a983a603a18c8708f024f7f6991b2e66159219abbf894634c5056243c55f3cd \ + --hash=sha256:8d1b4d0e0c2119587a31f5c029abd547e0c81d93b89d394566fe1588659eb579 \ + --hash=sha256:9011395be8db1827d106c6449b4bb6dd17e331ff6ec521f227e4588f1c78e46f \ + --hash=sha256:93fc2bf40cd7f4a0256010dce073d44eeb4a351b9bca94d0477ce2b6e62532b3 \ + --hash=sha256:95821352042722cd9f1108874579a47989d0a7e12a37d87d2fc4af20fd99ab8a \ + --hash=sha256:9907a4402ab6db12b7077a0ea5d7a4d028ecb22c8eee2b53527080d347cd1562 \ + --hash=sha256:9a04c28c10ba7fd12842b109d2edb0678872a2fe65277ca4ff06a0d61edee245 \ + --hash=sha256:9a5934eaea872e17936b5f45501eba5ab0bce9a74122e172b663d7c28c459c4a \ + --hash=sha256:9b984d1eb252145d6302c1dbd5e87fc6d404d45531447c84eadec04bf1fcb027 \ + --hash=sha256:9c210a6994b21aa9b29e81c8d11560e8fdab54c117e9cff37870d0a27bde1343 \ + --hash=sha256:9d8f204c8e3a8bf9ece17e0a83d137fd807440977f8a5e762d59306795011440 \ + --hash=sha256:a8f7176b83664af44567e9cc06e0d3827823fcc1a5e52307ebb8ac3aa95860b9 \ + --hash=sha256:a9dec1aca52dddde7df94818310fa2fe79739c8f385b2014c4cb1035f5508199 \ + --hash=sha256:ab5be648d5a0b86b7438864f8df3c705a65cef35a2fd3e5561e3e203167e0f27 \ + --hash=sha256:abd621552ede77c4c69be7fac44ba911225b0c812b6ba604e5964cf98085b474 \ + --hash=sha256:ac2745950b2bff80219c15ebf2fa9d8427eba7e249739f97e55c9d169e47e9e1 \ + --hash=sha256:aed9658797d0b45d6c49adcfc6b41f66e6f2d0c6de3ec79e16cf4b1855df240f \ + --hash=sha256:b6c0febfe38f22df2eb565c0ce8a092bb80411e56861ca382c443da83105423f \ + --hash=sha256:b9cf53ba90717db2e292401de290776c498d4bbfb0d4a559ca2895db8b9dcb5c \ + --hash=sha256:ba519b2d765df9871a25879e6f7fa78948ea59a2a31f9c1a257e34b651994afc \ + --hash=sha256:c318a64b53d97b841d7b5e637517e50a27be64bc695128422953d4b21710954e \ + --hash=sha256:c3723ff8eb8721f4daac98bc0256f15158e05316d5e52648ce9cebee434fbdd5 \ + --hash=sha256:c754dafdf5aaf0b401b644a90a30046929a0dd1a536e0ff0ec959a59155d9c7f \ + --hash=sha256:c803a3d331796255af51ba2c79ed0ac8275865b516c09e61f248d1e7aff31ce9 \ + --hash=sha256:c8cc5094b08abeae52da9c73c8a32003623be691a5193df2f4e3eac3d557c394 \ + --hash=sha256:cf3638274ab9d9b724c9baa0b4c04e132cd6faefb78b4dd3dd1a02a4bdaad41e \ + --hash=sha256:d047f6498c973874ba08ac3f97c69a2c4b2211c8de6f4c205f75cb1c9522596e \ + --hash=sha256:d2beb1c7cab10603aecdc42f8edd6ff013f9a32e4543474e38e6b77ce9975aeb \ + --hash=sha256:d7f513d3185e6fec82d0c3518f2e6365d8b4e49f5f45f29640d5162d56a23b54 \ + --hash=sha256:dd57607acc85678925940bd5df0385ff8332083a32fa8d7a43f8767f4997263c \ + --hash=sha256:e0cb7e4dd71f4c32e5e84843cd3c4cd65dda034314004bbe1d7f99af2426ab80 \ + --hash=sha256:e3677c7146ce694874941ba82b57092cc4875445aadf29d72807351023105143 \ + --hash=sha256:e395f7bc31851ef9b612050368cb446e9bc14cd7454b025018980349caf25ae5 \ + --hash=sha256:e422b2d647a65d6b080cad5accd09055d3809bdff00c76fba8dca00ca935572a \ + --hash=sha256:ed55af48b3eb28f43228ca2306788892bcb629eb2b5c4876e2a3659872c2f17a \ + --hash=sha256:ed928d0fda15fc0adc8d13305c8b3c0f2fba5b0669950c9e6d019d9162a3b3e8 \ + --hash=sha256:f4e1a92032a39cd5e3c647ca57dbf33b6a1938fd975623175793f9dbb63236de \ + --hash=sha256:f53ac9f3ef573326d009ed809beff4efcac6451931c2b8132586da4b9e53ff31 \ + --hash=sha256:f5b9daf6b629fce418e0cc3dd0436eac045188fa35deadb7a7f3941d5b8203f9 \ + --hash=sha256:f6518b94edb9150452e9aba08027d4cc293433753ec1fbefb4629a21cbc74181 \ + --hash=sha256:f70db64e8266d7c45d3b735f2e08eeb434b5e03da9a479ae42b2e2e486a21a00 \ + --hash=sha256:fafb4e739e43544d12cb4abd1605fd4683b6ca6a9ad682b7fd8f4d21973eafa8 \ + --hash=sha256:fd0135d34387f5fd087d9be368ea77ea89cf2451dc1cd1c622d35021bcb3ab50 # via # opentelemetry-instrumentation # opentelemetry-instrumentation-dbapi @@ -2135,17 +2144,18 @@ xmlsec==1.3.17 \ # via # -r src/backend/requirements.in # python3-saml -zopfli==0.4.2 \ - --hash=sha256:18af6d2f778552d9bfdaa8e6caaf38c2bd57d0efba34a47860fcc4f6ba899696 \ - --hash=sha256:1fc2fd1725c986f535ea323139ec1b974fa294ef9574e0fad840967d52dd38a9 \ - --hash=sha256:65a847b1f234df456584f0267fb0f270a95772e675a98ae9c21f3b4839077b2f \ - --hash=sha256:70c20595aa30aae246ac71a9fa471e2aa768318150ab814aeea2f651c59c6a32 \ - --hash=sha256:92e30df03a00c08b3265c362566573b50a3af3b113b0dbe755071376635ce93d \ - --hash=sha256:932083f7ca190fbd73cdf8ad7d32ec7231ecd25e1b3fade547cfb11b823ff91f \ - --hash=sha256:a75e646fed3a2a42a82e69a81644009189c8ab4271691f020d52da8630d0580e \ - --hash=sha256:bc25a3b3568910afb4bbd951d99835de29cade95417bca215339eac172eb381d \ - --hash=sha256:d036b7179c225ce6bd73e68b5a176319ce8835739f494650e4124cd9c383b826 \ - --hash=sha256:d1972b58083b85af460d8936f623d849b487c151b26eae925b25ec921ae6cd22 \ - --hash=sha256:d3bc0b483575ab8849d9c15b349f78ae0141eb4dfe2ba260c8fdc0b3ba5c6c42 \ - --hash=sha256:e679896fde39930dec1f46e5f4e1b1900378686168064966209ffb7b80e41743 +zopfli==0.4.3 \ + --hash=sha256:0087c9a6f0c8a052be0f6d1a9bb71b6caffdd3e10201d6d6166e28d482cebe6d \ + --hash=sha256:47604eee5c6704bdf0e94d8391fe3b74ddb2abd84128fbcfdc3ee0fc265feaef \ + --hash=sha256:62248dbf8dbcbd588ee194b210e5be9fa80bce29641f55599d6d394bd2a9d8a3 \ + --hash=sha256:628c3e941752880b3491db8d44163d0aedb221944e22a17187ff7fc549b050f6 \ + --hash=sha256:769875152d0625c46707bcca57d4b2233fe653482067acd55fbf6ec525cb9bdc \ + --hash=sha256:7e9703ca6e7ef66c8d05e0826b6f558b680c9db8206f84f05a3ee93430a12e42 \ + --hash=sha256:7fa3c35193475290e3f007bbcdebdbae64ba2f012d75c632da0d727e1da50d5e \ + --hash=sha256:88f4fbe429aad72bc206275d81fab11a097e0f951a5848d1f51083c37ea73073 \ + --hash=sha256:921c2c9907f4364963848da5ad194b46d68865e07fdb975d04fd09bc42d47357 \ + --hash=sha256:d3a50f91a13cea9bafe025de8fd87a005eb26de02a4f0c193127ddbf23ac8ebe \ + --hash=sha256:d4f51dd1ab5312e837e2091284e0d9f1a138188f2e65812f9a5799dc02c45f94 \ + --hash=sha256:eb0c9c1d40a8cb1d58762d7e57290ccb753e0828c4d01be8acb59aae5d0ca206 \ + --hash=sha256:f2e0adcf7d36c6fd0dd36cc771ef7f0c5803a05666feafcd90d7170174a4148e # via fonttools From ca16e6ec0a2ec137392e8f3bcf62d29559752a8e Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 20 Jun 2026 11:00:12 +1000 Subject: [PATCH 07/40] Report locale updates (#12208) * Optional 'locale' arg to format_money - Allows override of system locale when generating reports * Updated documentation * Add unit tests * Handle invalid locale * Handle invalid locale * Add new global setting to control currency locale in reports * Use setting in reports * Add CHANGELOG entry * Further unit tests * Add unit tests for new setting * Update docs * More docs * Refactoring: - Change REPORT_CURRENCY_LOCALE to REPORT_LOCALE * Extend unit testing * Refactor format_number * Add unit tests for explicit format strings * Update examples for format_date * Updated unit tests * Cleanup unit tests * Fix more tests * Adjust wording * Remove global setting - simplify code * Simplify unit tests * Revert 'min_digits' to 'leading' * Fix docs * Refactor the render_currency function - Move all functionality into report.py * Cleanup duplicate code * Updated docs * Allow user to specify date_format * Add support for 'leading' digits in render_currency * Bug fix * Fix unit test * Add tests for "include_symbol" --- CHANGELOG.md | 1 + docs/docs/concepts/pricing.md | 6 + docs/docs/report/helpers.md | 266 +++++++++++++++++- src/backend/InvenTree/InvenTree/format.py | 47 ---- .../InvenTree/InvenTree/helpers_model.py | 84 ------ src/backend/InvenTree/InvenTree/tests.py | 29 -- src/backend/InvenTree/common/validators.py | 15 + .../InvenTree/report/templatetags/report.py | 250 ++++++++++++---- src/backend/InvenTree/report/test_tags.py | 261 +++++++++++++++-- 9 files changed, 711 insertions(+), 248 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10a4265b85..930b77ad24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- [#12208](https://github.com/inventree/InvenTree/pull/12208) adds custom locale support for rendering currencies, dates and numbers within reports. This allows users to specify a custom locale for report rendering, which can be used to control the formatting of dates, numbers and currency values in the generated reports. - [#12204](https://github.com/inventree/InvenTree/pull/12204) adds new filtering options to PartCategoryTree and StockLocationTree API endpoints, allowing tree data to be fetched dynamically - [#12165](https://github.com/inventree/InvenTree/pull/12165) adds support for parameters against the PartCategory model - [#12103](https://github.com/inventree/InvenTree/pull/12103) adds column-based filtering to table views in the user interface. This extends the existing table filtering functionality by allowing users to apply filters directly to individual columns. diff --git a/docs/docs/concepts/pricing.md b/docs/docs/concepts/pricing.md index 037387e019..8e1e5a5345 100644 --- a/docs/docs/concepts/pricing.md +++ b/docs/docs/concepts/pricing.md @@ -63,3 +63,9 @@ Currency exchange rates are updated periodically, using the configured currency ## Pricing Settings Refer to the [global settings](../settings/global.md#pricing-and-currency) documentation for more information on available currency settings. + +## Rendering Currencies in Reports + +Currency values can be rendered in report templates using the [`render_currency`](../report/helpers.md#render_currency) helper function. This function formats a currency amount according to a locale, and supports currency conversion within the template. + +See the [report helpers documentation](../report/helpers.md#currency-formatting) for full details and examples. diff --git a/docs/docs/report/helpers.md b/docs/docs/report/helpers.md index c8811f561c..1cde507797 100644 --- a/docs/docs/report/helpers.md +++ b/docs/docs/report/helpers.md @@ -320,15 +320,86 @@ The helper function `format_number` allows for some common number formatting opt show_docstring_description: false show_source: False -#### Example +#### Examples ```html {% raw %} {% load report %} -{% format_number 3.14159265359 decimal_places=5, leading=3 %} - + + +{% format_number 3.14159265359 decimal_places=5 %} + + + +{% format_number 3.14159265359 decimal_places=5 leading=3 %} + + + {% format_number 3.14159265359 integer=True %} + + +{% format_number 9988776.5 decimal_places=2 separator=True %} + + + +{% format_number 9988776.5 decimal_places=2 separator=True locale='de-de' %} + + + +{% format_number 0.175 multiplier=100 decimal_places=1 %} + + + +{% format_number 1234.5 decimal_places=2 max_decimal_places=6 %} + + +{% endraw %} +``` + +#### Custom Format Strings + +The `fmt` argument accepts a [Unicode number pattern](https://unicode.org/reports/tr35/tr35-numbers.html#Number_Format_Patterns) string (the same syntax used by [Babel](https://babel.pocoo.org/en/latest/numbers.html)). When `fmt` is provided it takes complete priority over the `decimal_places`, `max_decimal_places`, `leading`, and `separator` arguments — those arguments are silently ignored. + +The `integer` and `multiplier` arguments **are** still applied to the number before the format string is used. + +| Symbol | Meaning | +| --- | --- | +| `0` | Required digit — always rendered, even if zero | +| `#` | Optional digit — suppressed when not significant | +| `,` | Grouping separator (position defines group size) | +| `.` | Decimal separator | + +Common patterns: + +| Pattern | Example output | +| --- | --- | +| `0` | `1235` | +| `#,##0` | `1,235` | +| `0.00` | `1234.57` | +| `#,##0.00` | `1,234.57` | +| `000` | `007` | + +```html +{% raw %} +{% load report %} + + +{% format_number 1234.5678 fmt='0.00' %} + + + +{% format_number 1234.5678 fmt='#,##0.00' %} + + + +{% format_number 1234.5678 fmt='#,##0.00' locale='de-de' %} + + + +{% format_number 9988776655.4321 fmt='#,##0' integer=True %} + + {% endraw %} ``` @@ -336,6 +407,25 @@ The helper function `format_number` allows for some common number formatting opt For rendering date and datetime information, the following helper functions are available: +Both functions resolve their output using the following priority order: + +1. **`fmt=` argument** — a [strftime format string](https://docs.python.org/3/library/datetime.html#format-codes). When provided, this takes full priority; `locale` and `date_format` are ignored. +2. **`locale=` argument** — when no `fmt` is given, Babel formats the value using the style set by `date_format` (default `medium`). +3. **Server `LANGUAGE_CODE`** — used as the locale when no `locale=` argument is supplied. + +#### Date Format Styles + +The `date_format` argument controls how Babel renders the date when locale-aware formatting is used. The four named styles are: + +| Style | `format_date` example (en-us, 2025-01-12) | `format_datetime` example (en-us, 2025-01-12 14:30) | +| --- | --- | --- | +| `full` | `Sunday, January 12, 2025` | `Sunday, January 12, 2025 at 2:30:00 PM UTC` | +| `long` | `January 12, 2025` | `January 12, 2025 at 2:30:00 PM UTC` | +| `medium` *(default)* | `Jan 12, 2025` | `Jan 12, 2025, 2:30:00 PM` | +| `short` | `1/12/25` | `1/12/25, 2:30 PM` | + +The exact output varies by locale — the table above uses `en-us`. + ### format_date ::: report.templatetags.report.format_date @@ -343,6 +433,35 @@ For rendering date and datetime information, the following helper functions are show_docstring_description: false show_source: False +#### Examples + +```html +{% raw %} +{% load report %} + + +{% format_date my_date %} + + + +{% format_date my_date fmt="%d/%m/%Y" %} + + + +{% format_date my_date locale='en-us' %} + + + +{% format_date my_date locale='en-us' date_format='short' %} + + + +{% format_date my_date locale='en-us' date_format='full' %} + + +{% endraw %} +``` + ### format_datetime ::: report.templatetags.report.format_datetime @@ -350,20 +469,31 @@ For rendering date and datetime information, the following helper functions are show_docstring_description: false show_source: False -### Date Formatting - -If not specified, these methods return a result which uses ISO formatting. Refer to the [datetime format codes](https://docs.python.org/3/library/datetime.html#format-codes) for more information! | - - -### Example - -A simple example of using the date formatting helper functions: +#### Examples ```html {% raw %} {% load report %} -Date: {% format_date my_date timezone="Australia/Sydney" %} -Datetime: {% format_datetime my_datetime format="%d-%m-%Y %H:%M%S" %} + + +{% format_datetime my_datetime %} + + + +{% format_datetime my_datetime fmt="%d-%m-%Y %H:%M" %} + + + +{% format_datetime my_datetime locale='en-us' %} + + + +{% format_datetime my_datetime locale='de-de' date_format='short' %} + + + +{% format_datetime my_datetime timezone="Australia/Sydney" locale='en-au' %} + {% endraw %} ``` @@ -373,11 +503,115 @@ Datetime: {% format_datetime my_datetime format="%d-%m-%Y %H:%M%S" %} The helper function `render_currency` allows for simple rendering of currency data. This function can also convert the specified amount of currency into a different target currency: -::: InvenTree.helpers_model.render_currency +::: report.templatetags.report.render_currency options: show_docstring_description: false show_source: False +#### Decimal Places + +When no decimal place arguments are provided, the locale/currency standard is used (e.g. 2 places for USD, 0 for JPY). + +`decimal_places` and `max_decimal_places` work the same way as in [`format_number`](#format_number): + +| Argument | Effect | +| --- | --- | +| `decimal_places=N` | Forces exactly N decimal digits (zero-padded) | +| `max_decimal_places=M` | Allows up to M decimal digits, suppressing trailing zeros beyond `decimal_places` | +| Both set | Forced minimum of `decimal_places`, optional up to `max_decimal_places` | +| Neither set | Locale/currency default (e.g. 2 for USD) | + +```html +{% raw %} +{% load report %} + + +{% render_currency order.total_price currency='USD' %} + + + +{% render_currency order.total_price currency='USD' decimal_places=3 %} + + + +{% render_currency order.total_price currency='USD' decimal_places=2 max_decimal_places=4 %} + + +{% endraw %} +``` + +#### Locale and Symbol Rendering + +The locale controls how the currency symbol and separators are rendered. For example, `USD 1234.56` with various locales: + +| Locale | Output | +| --- | --- | +| `en-us` | `$1,234.56` | +| `en-gb` | `US$1,234.56` | +| `en-au` | `USD1,234.56` | +| `de-de` | `1.234,56 $` | + +The locale is resolved in the following priority order: + +1. **Explicit `locale=` argument** — highest priority, always wins +2. **Server `LANGUAGE_CODE`** — fallback + +#### Leading Digits + +The `leading` argument specifies the minimum number of digits to render before the decimal point (zero-padded). This works identically to `leading` in [`format_number`](#format_number): + +```html +{% raw %} +{% load report %} + + +{% render_currency order.total_price currency='USD' %} + + + +{% render_currency order.total_price currency='USD' leading=4 %} + + +{% endraw %} +``` + +#### Custom Format Strings + +The `fmt` argument accepts a [Unicode number pattern](https://unicode.org/reports/tr35/tr35-numbers.html#Number_Format_Patterns) string (same syntax as [`format_number`](#custom-format-strings)). **When `fmt` is provided, it takes complete priority over `decimal_places`, `max_decimal_places`, and `leading`** — those arguments are ignored. + +The `locale`, `currency`, `multiplier`, and `include_symbol` arguments are still applied when `fmt` is set. + +To include the currency symbol in a `fmt` pattern, use the `¤` placeholder. Without it, no symbol appears regardless of `include_symbol`. + +| Pattern | Example output (en-us, USD) | +| --- | --- | +| `#,##0.00` | `1,234.56` (no symbol) | +| `¤#,##0.00` | `$1,234.56` | +| `¤#,##0.0000` | `$1,234.5600` | +| `¤ #,##0.00` | `$ 1,234.56` | + +```html +{% raw %} +{% load report %} + + +{% render_currency order.total_price currency='USD' fmt='#,##0.00' %} + + + +{% render_currency order.total_price currency='USD' fmt='¤#,##0.0000' locale='en-us' %} + + + +{% render_currency order.total_price currency='USD' fmt='#,##0.00' locale='de-de' %} + + + +{% render_currency order.total_price currency='USD' fmt='0.0000' decimal_places=2 %} + + +{% endraw %} +``` #### Example @@ -392,8 +626,12 @@ The helper function `render_currency` allows for simple rendering of currency da {% endfor %} + Total Price: {% render_currency order.total_price currency='NZD' decimal_places=2 %} + +Total Price: {% render_currency order.total_price currency='USD' locale='en-us' %} + {% endraw %} ``` diff --git a/src/backend/InvenTree/InvenTree/format.py b/src/backend/InvenTree/InvenTree/format.py index 3ee674b216..848c7e07ae 100644 --- a/src/backend/InvenTree/InvenTree/format.py +++ b/src/backend/InvenTree/InvenTree/format.py @@ -2,16 +2,9 @@ import re import string -from typing import Optional -from django.conf import settings -from django.utils import translation from django.utils.translation import gettext_lazy as _ -from babel import Locale -from babel.numbers import parse_pattern -from djmoney.money import Money - def parse_format_string(fmt_string: str) -> dict: """Extract formatting information from the provided format string. @@ -180,43 +173,3 @@ def extract_named_group(name: str, value: str, fmt_string: str) -> str: # And return the value we are interested in # Note: This will raise an IndexError if the named group was not matched return result.group(name) - - -def format_money( - money: Money, - decimal_places: Optional[int] = None, - fmt: Optional[str] = None, - include_symbol: bool = True, -) -> str: - """Format money object according to the currently set local. - - Args: - money (Money): The money object to format - decimal_places (int): Number of decimal places to use - fmt (str): Format pattern according LDML / the babel format pattern syntax (https://babel.pocoo.org/en/latest/numbers.html) - include_symbol (bool): Whether to include the currency symbol in the formatted output - - Returns: - str: The formatted string - - Raises: - ValueError: format string is incorrectly specified - """ - language = (None) or settings.LANGUAGE_CODE - locale = Locale.parse(translation.to_locale(language)) - if fmt: - pattern = parse_pattern(fmt) - else: - pattern = locale.currency_formats['standard'] - if decimal_places is not None: - pattern.frac_prec = (decimal_places, decimal_places) - - result = pattern.apply( - money.amount, - locale, - currency=money.currency.code if include_symbol else '', - currency_digits=decimal_places is None, - decimal_quantization=decimal_places is not None, - ) - - return result diff --git a/src/backend/InvenTree/InvenTree/helpers_model.py b/src/backend/InvenTree/InvenTree/helpers_model.py index ccd1cfd963..925046aef1 100644 --- a/src/backend/InvenTree/InvenTree/helpers_model.py +++ b/src/backend/InvenTree/InvenTree/helpers_model.py @@ -3,12 +3,10 @@ import io import ipaddress import socket -from decimal import Decimal from typing import Optional, cast from urllib.parse import urljoin, urlparse from django.conf import settings -from django.core.exceptions import ValidationError from django.core.validators import URLValidator from django.db.utils import OperationalError, ProgrammingError from django.utils.translation import gettext_lazy as _ @@ -16,8 +14,6 @@ from django.utils.translation import gettext_lazy as _ import requests import requests.exceptions import structlog -from djmoney.contrib.exchange.models import convert_money -from djmoney.money import Money from PIL import Image from common.notifications import ( @@ -31,7 +27,6 @@ from InvenTree.cache import ( get_session_cache, set_session_cache, ) -from InvenTree.format import format_money from InvenTree.ready import ignore_ready_warning logger = structlog.get_logger('inventree') @@ -252,85 +247,6 @@ def download_image_from_url( return img -def render_currency( - money: Money, - decimal_places: Optional[int] = None, - currency: Optional[str] = None, - multiplier: Optional[Decimal] = None, - min_decimal_places: Optional[int] = None, - max_decimal_places: Optional[int] = None, - include_symbol: bool = True, -): - """Render a currency / Money object to a formatted string (e.g. for reports). - - Arguments: - money: The Money instance to be rendered - decimal_places: The number of decimal places to render to. If unspecified, uses the PRICING_DECIMAL_PLACES setting. - currency: Optionally convert to the specified currency - multiplier: An optional multiplier to apply to the money amount before rendering - min_decimal_places: The minimum number of decimal places to render to. If unspecified, uses the PRICING_DECIMAL_PLACES_MIN setting. - max_decimal_places: The maximum number of decimal places to render to. If unspecified, uses the PRICING_DECIMAL_PLACES setting. - include_symbol: If True, include the currency symbol in the output - """ - if money in [None, '']: - return '-' - - if type(money) is not Money: - # Try to convert to a Money object - try: - money = Money( - Decimal(str(money)), - currency or get_global_setting('INVENTREE_DEFAULT_CURRENCY'), - ) - except Exception: - raise ValidationError( - f"render_currency: {_('Invalid money value')}: '{money}' ({type(money).__name__})" - ) - - if currency is not None: - # Attempt to convert to the provided currency - # If cannot be done, leave the original - try: - money = convert_money(money, currency) - except Exception: - pass - - if multiplier is not None: - try: - money *= Decimal(str(multiplier).strip()) - except Exception: - raise ValidationError( - f"render_currency: {_('Invalid multiplier value')}: '{multiplier}' ({type(multiplier).__name__})" - ) - - if min_decimal_places is None or not isinstance(min_decimal_places, (int, float)): - min_decimal_places = get_global_setting('PRICING_DECIMAL_PLACES_MIN', 0) - - if max_decimal_places is None or not isinstance(max_decimal_places, (int, float)): - max_decimal_places = get_global_setting('PRICING_DECIMAL_PLACES', 6) - - value = Decimal(str(money.amount)).normalize() - value = str(value) - - if decimal_places is not None and isinstance(decimal_places, (int, float)): - # Decimal place count is provided, use it - pass - elif '.' in value: - # If the value has a decimal point, use the number of decimal places in the value - decimal_places = len(value.split('.')[-1]) - else: - # No decimal point, use 2 as a default - decimal_places = 2 - - # Clip the decimal places to the specified range - decimal_places = max(decimal_places, min_decimal_places) - decimal_places = min(decimal_places, max_decimal_places) - - return format_money( - money, decimal_places=decimal_places, include_symbol=include_symbol - ) - - @ignore_ready_warning def getModelsWithMixin(mixin_class) -> list: """Return a list of database models that inherit from the given mixin class. diff --git a/src/backend/InvenTree/InvenTree/tests.py b/src/backend/InvenTree/InvenTree/tests.py index 38062926d5..ea2f6d4171 100644 --- a/src/backend/InvenTree/InvenTree/tests.py +++ b/src/backend/InvenTree/InvenTree/tests.py @@ -608,35 +608,6 @@ class FormatTest(TestCase): with self.assertRaises(ValueError): InvenTree.format.extract_named_group('test', 'PO-ABC-xyz', 'PO-###-{test}') - def test_currency_formatting(self): - """Test that currency formatting works correctly for multiple currencies.""" - test_data = ( - (Money(3651.285718, 'USD'), 4, True, '$3,651.2857'), - (Money(487587.849178, 'CAD'), 5, True, 'CA$487,587.84918'), - (Money(0.348102, 'EUR'), 1, False, '0.3'), - (Money(0.916530, 'GBP'), 1, True, '£0.9'), - (Money(61.031024, 'JPY'), 3, False, '61.031'), - (Money(49609.694602, 'JPY'), 1, True, '¥49,609.7'), - (Money(155565.264777, 'AUD'), 2, False, '155,565.26'), - (Money(0.820437, 'CNY'), 4, True, 'CN¥0.8204'), - (Money(7587.849178, 'EUR'), 0, True, '€7,588'), - (Money(0.348102, 'GBP'), 3, False, '0.348'), - (Money(0.652923, 'CHF'), 0, True, 'CHF1'), - (Money(0.820437, 'CNY'), 1, True, 'CN¥0.8'), - (Money(98789.5295680, 'CHF'), 0, False, '98,790'), - (Money(0.585787, 'USD'), 1, True, '$0.6'), - (Money(0.690541, 'CAD'), 3, True, 'CA$0.691'), - (Money(427.814104, 'AUD'), 5, True, 'A$427.81410'), - ) - - with self.settings(LANGUAGE_CODE='en-us'): - for value, decimal_places, include_symbol, expected_result in test_data: - result = InvenTree.format.format_money( - value, decimal_places=decimal_places, include_symbol=include_symbol - ) - - self.assertEqual(result, expected_result) - class TestHelpers(TestCase): """Tests for InvenTree helper functions.""" diff --git a/src/backend/InvenTree/common/validators.py b/src/backend/InvenTree/common/validators.py index 226a42b7d2..d1d9e63ebf 100644 --- a/src/backend/InvenTree/common/validators.py +++ b/src/backend/InvenTree/common/validators.py @@ -4,6 +4,7 @@ import re from django.core.exceptions import SuspiciousFileOperation, ValidationError from django.core.files.storage import default_storage +from django.utils import translation from django.utils.translation import gettext_lazy as _ import common.icons @@ -171,3 +172,17 @@ def validate_variable_string(value: str): """The passed value must be a valid variable identifier string.""" if not re.match(r'^[a-zA-Z_][a-zA-Z0-9_]*$', value): raise ValidationError(_('Value must be a valid variable identifier')) + + +def validate_locale(value: str): + """Validate that the provided value is a valid locale string.""" + from babel import Locale + from babel.core import UnknownLocaleError + + if not value: + return + + try: + Locale.parse(translation.to_locale(value)) + except (UnknownLocaleError, ValueError) as e: + raise ValidationError(f"Invalid locale value: '{value}' - {e}") diff --git a/src/backend/InvenTree/report/templatetags/report.py b/src/backend/InvenTree/report/templatetags/report.py index be28eef151..5ec71e1891 100644 --- a/src/backend/InvenTree/report/templatetags/report.py +++ b/src/backend/InvenTree/report/templatetags/report.py @@ -1,6 +1,7 @@ """Custom template tags for report generation.""" import base64 +import copy import logging import mimetypes from datetime import date, datetime @@ -11,14 +12,22 @@ from typing import Any, Optional from django import template from django.apps.registry import apps +from django.conf import settings from django.contrib.staticfiles.storage import staticfiles_storage from django.core.exceptions import SuspiciousFileOperation, ValidationError from django.core.files.storage import default_storage from django.db.models import Model from django.db.models.query import QuerySet +from django.utils import translation from django.utils.safestring import SafeString, mark_safe from django.utils.translation import gettext_lazy as _ +from babel import Locale +from babel.core import UnknownLocaleError +from babel.dates import format_date as babel_format_date +from babel.dates import format_datetime as babel_format_datetime +from babel.numbers import format_decimal as babel_format_decimal +from babel.numbers import parse_pattern from djmoney.contrib.exchange.exceptions import MissingRate from djmoney.contrib.exchange.models import convert_money from djmoney.money import Money @@ -40,6 +49,22 @@ register = template.Library() logger = logging.getLogger('inventree') +def get_locale(locale: Optional[str] = None) -> Locale: + """Resolve and return a babel Locale. + + Args: + locale: Optional locale string (e.g. 'en-us'). Falls back to LANGUAGE_CODE. + + Raises: + ValidationError: If the locale string is invalid. + """ + language = locale or settings.LANGUAGE_CODE + try: + return Locale.parse(translation.to_locale(language)) + except (UnknownLocaleError, ValueError) as e: + raise ValidationError(f"Invalid locale '{language}' - {e}") + + @register.simple_tag() def order_queryset(queryset: QuerySet, *args) -> QuerySet: """Order a database queryset based on the provided arguments. @@ -772,9 +797,98 @@ def modulo(x: Any, y: Any, cast: Optional[type] = None) -> Any: @register.simple_tag -def render_currency(money, **kwargs): - """Render a currency / Money object.""" - return InvenTree.helpers_model.render_currency(money, **kwargs) +def render_currency( + money: Money | str | int | float | Decimal, + decimal_places: Optional[int] = None, + currency: Optional[str] = None, + multiplier: Optional[Decimal] = None, + max_decimal_places: Optional[int] = None, + include_symbol: bool = True, + leading: Optional[int] = None, + fmt: Optional[str] = None, + locale: Optional[str] = None, + **kwargs, +) -> str: + """Render a currency / Money object to a formatted string. + + Arguments: + money: The Money instance to be rendered + currency: Optionally convert to the specified currency before rendering + multiplier: Optional multiplier to apply to the amount before rendering + decimal_places: Minimum (forced) decimal places, e.g. decimal_places=2 gives '.00'. Defaults to the locale/currency standard. + max_decimal_places: Maximum decimal places (optional digits beyond decimal_places), e.g. max_decimal_places=4 allows up to 4. + include_symbol: If True, include the currency symbol in the output + leading: Minimum number of leading digits to render before the decimal point (default = 1) + fmt: Optional Babel number pattern string. When provided, takes priority over all other formatting options. + locale: Optional locale override (e.g. 'en-us', 'de-de'). Defaults to server LANGUAGE_CODE. + """ + if money in [None, '']: + return '-' + + # If the supplied value is *not* a Money instance, attempt to convert it into one + if not isinstance(money, Money): + try: + money = Money( + Decimal(str(money)), + currency or get_global_setting('INVENTREE_DEFAULT_CURRENCY'), + ) + except Exception: + raise ValidationError(f'render_currency: invalid money value - {money!r}') + + if currency is not None: + try: + money = convert_money(money, currency) + except Exception: + pass + + if multiplier is not None: + try: + money *= Decimal(str(multiplier).strip()) + except Exception: + raise ValidationError( + f'render_currency: invalid multiplier value - {multiplier!r}' + ) + + locale = get_locale(locale) + + # If a custom fmt pattern is applied, that overrides other formatting options + if fmt: + pattern = parse_pattern(fmt) + return pattern.apply( + money.amount, + locale, + currency=money.currency.code if include_symbol else '', + currency_digits=False, + decimal_quantization=True, + ) + + pattern = copy.copy(locale.currency_formats['standard']) + + if decimal_places is None or not isinstance(decimal_places, (int, float)): + decimal_places = get_global_setting('PRICING_DECIMAL_PLACES_MIN', 0) + + if max_decimal_places is None or not isinstance(max_decimal_places, (int, float)): + max_decimal_places = get_global_setting('PRICING_DECIMAL_PLACES', 6) + + pattern.frac_prec = (decimal_places, max(decimal_places, max_decimal_places)) + + if leading is not None: + try: + leading = int(leading) or 0 + except (ValueError, TypeError): + leading = 0 + if leading > 0: + min_int, max_int = pattern.int_prec + pattern.int_prec = (max(leading, min_int), max(leading, max_int)) + + return pattern.apply( + money.amount, + locale, + currency=money.currency.code if include_symbol else '', + currency_digits=decimal_places is None and max_decimal_places is None, + decimal_quantization=decimal_places is not None + or max_decimal_places is not None, + ) @register.simple_tag @@ -871,82 +985,109 @@ def render_html_text(text: str, **kwargs): @register.simple_tag def format_number( number: int | float | Decimal, - decimal_places: Optional[int] = None, multiplier: Optional[int | float | Decimal] = None, integer: bool = False, - leading: int = 0, - separator: Optional[str] = None, + separator: bool = False, + leading: Optional[int] = None, + decimal_places: Optional[int] = None, + max_decimal_places: Optional[int] = None, + fmt: Optional[str] = None, + locale: Optional[str] = None, + **kwargs, ) -> str: """Render a number with optional formatting options. Arguments: number: The number to be formatted - decimal_places: Number of decimal places to render multiplier: Optional multiplier to apply to the number before formatting integer: Boolean, whether to render the number as an integer - leading: Number of leading zeros (default = 0) - separator: Character to use as a thousands separator (default = None) + separator: Boolean, whether to include a thousands separator + leading: Minimum number of leading digits to render (default = 1) + decimal_places: Number of decimal places to render (default = 0) + max_decimal_places: Maximum number of decimal places to render (default = 0) + separator: + fmt: Optional format string for the number - if provided, takes priority over 'decimal_places' and 'leading' + locale: Optional locale override (e.g. 'en-us', 'de-de'). When set, babel controls decimal and thousands separators. """ check_nulls('format_number', number) + # Check that the provided number is valid try: number = Decimal(str(number).strip()) except Exception: # If the number cannot be converted to a Decimal, just return the original value return str(number) + number = float(number) + if multiplier is not None: - number *= Decimal(str(multiplier).strip()) + number *= multiplier if integer: - # Convert to integer - number = Decimal(int(number)) + number = int(number) - # Normalize the number (remove trailing zeroes) - number = number.normalize() + # Construct a formatting string for the number, based on the provided options + if not fmt: + fmt = '###,###,###,###,##0' # Default format string - this will be modified based on the provided options - if decimal_places is not None: - try: - decimal_places = int(decimal_places) - number = round(number, decimal_places) - except ValueError: - pass + # The 'leading' option specifies the minimum number of leading digits to render (not including decimal places) + if leading is not None: + try: + leading = int(leading) or 0 + except (ValueError, TypeError): + leading = 0 - # Re-encode, and normalize again - # Ensure that the output never uses scientific notation - value = Decimal(number) - value = ( - value.quantize(Decimal(1)) - if value == value.to_integral() - else value.normalize() + if leading > 1: + fmt = fmt[::-1].replace('#', '0', (leading - 1))[::-1] + + if not bool(separator): + fmt = fmt.replace(',', '') + + if decimal_places is not None or max_decimal_places is not None: + # Account for decimal places, if provided + + try: + decimal_places = int(decimal_places) or 0 + except (ValueError, TypeError): + decimal_places = 0 + + try: + max_decimal_places = int(max_decimal_places) or 0 + except (ValueError, TypeError): + max_decimal_places = 0 + + fmt += '.' + '0' * decimal_places + + if max_decimal_places > decimal_places: + fmt += '#' * (max_decimal_places - decimal_places) + elif not integer: + # No decimal places specified, allow any number of decimal places (up to the precision of the Decimal) + fmt += '.####################' + + babel_locale = get_locale(locale) + + return babel_format_decimal( + number, format=fmt, locale=babel_locale, numbering_system='latn' ) - if separator: - value = f'{value:,}' - value = value.replace(',', separator) - else: - value = f'{value}' - - if leading is not None: - try: - leading = int(leading) - value = '0' * leading + value - except ValueError: - pass - - return value - @register.simple_tag def format_datetime( - dt: datetime, timezone: Optional[str] = None, fmt: Optional[str] = None + dt: datetime, + timezone: Optional[str] = None, + fmt: Optional[str] = None, + locale: Optional[str] = None, + date_format: str = 'medium', + **kwargs, ): """Format a datetime object for display. Arguments: dt: The datetime object to format timezone: The timezone to use for the date (defaults to the server timezone) - fmt: The format string to use (defaults to ISO formatting) + fmt: The strftime format string to use. When provided, takes priority over locale and date_format. + locale: Optional locale override (e.g. 'en-us', 'de-de'). Used for locale-aware formatting when no fmt is given. + date_format: Babel date format style. One of 'full', 'long', 'medium' (default), 'short'. """ check_nulls('format_datetime', dt) @@ -954,18 +1095,27 @@ def format_datetime( if fmt: return dt.strftime(fmt) - else: - return dt.isoformat() + + return babel_format_datetime(dt, format=date_format, locale=get_locale(locale)) @register.simple_tag -def format_date(dt: date, timezone: Optional[str] = None, fmt: Optional[str] = None): +def format_date( + dt: date, + timezone: Optional[str] = None, + fmt: Optional[str] = None, + locale: Optional[str] = None, + date_format: str = 'medium', + **kwargs, +): """Format a date object for display. Arguments: dt: The date to format timezone: The timezone to use for the date (defaults to the server timezone) - fmt: The format string to use (defaults to ISO formatting) + fmt: The strftime format string to use. When provided, takes priority over locale and date_format. + locale: Optional locale override (e.g. 'en-us', 'de-de'). Used for locale-aware formatting when no fmt is given. + date_format: Babel date format style. One of 'full', 'long', 'medium' (default), 'short'. """ check_nulls('format_date', dt) @@ -976,8 +1126,8 @@ def format_date(dt: date, timezone: Optional[str] = None, fmt: Optional[str] = N if fmt: return dt.strftime(fmt) - else: - return dt.isoformat() + + return babel_format_date(dt, format=date_format, locale=get_locale(locale)) @register.simple_tag() diff --git a/src/backend/InvenTree/report/test_tags.py b/src/backend/InvenTree/report/test_tags.py index cf7c20ec4d..b5bf18f806 100644 --- a/src/backend/InvenTree/report/test_tags.py +++ b/src/backend/InvenTree/report/test_tags.py @@ -14,6 +14,7 @@ from djmoney.money import Money from PIL import Image from common.models import InvenTreeSetting, Parameter, ParameterTemplate +from common.settings import set_global_setting from InvenTree.unit_test import InvenTreeTestCase from part.models import Part from part.test_api import PartImageTestMixin @@ -359,26 +360,60 @@ class ReportTagTest(PartImageTestMixin, InvenTreeTestCase): for x in ['10.000000', ' 10 ', 10.000000, 10]: self.assertEqual(fn(x), '10') + # Test with various formatting options self.assertEqual(fn(1234), '1234') self.assertEqual(fn(1234.5678, decimal_places=0), '1235') + self.assertEqual(fn(1234.5678, decimal_places=0, separator=True), '1,235') self.assertEqual(fn(1234.5678, decimal_places=1), '1234.6') self.assertEqual(fn(1234.5678, decimal_places=2), '1234.57') - self.assertEqual(fn(1234.5678, decimal_places=3), '1234.568') - self.assertEqual(fn(-9999.5678, decimal_places=2, separator=','), '-9,999.57') self.assertEqual( - fn(9988776655.4321, integer=True, separator=' '), '9 988 776 655' + fn(1234.5678, decimal_places=2, max_decimal_places=10), '1234.5678' ) + self.assertEqual(fn(1234.5678, decimal_places=3), '1234.568') + self.assertEqual(fn(-9999.5678, decimal_places=2, locale='fr-fr'), '-9999,57') + self.assertEqual( + fn(-9999.5678, decimal_places=2, locale='fr-fr', separator=True), + '-9\u202f999,57', + ) + self.assertEqual( + fn(9988776655.4321, integer=True, locale='de-de', separator=True), + '9.988.776.655', + ) + + # Test with 'leading' option + self.assertEqual(fn(5, leading=3), '005') + self.assertEqual(fn(123, leading=5), '00123') + self.assertEqual(fn(1234, leading=2, decimal_places=4), '1234.0000') + + # Test with custom 'fmt' format string (takes priority over decimal_places / separator) + self.assertEqual(fn(1234.5678, fmt='0.00'), '1234.57') + self.assertEqual(fn(1234.5678, fmt='#,##0.00'), '1,234.57') + self.assertEqual(fn(1234.5678, fmt='0.00', locale='de-de'), '1234,57') + self.assertEqual(fn(1234.5678, fmt='#,##0.00', locale='de-de'), '1.234,57') + # fmt bypasses decimal_places and separator options + self.assertEqual( + fn(1234.5678, fmt='0.00', decimal_places=4, separator=True), '1234.57' + ) + # integer conversion still applies before fmt is used + self.assertEqual( + fn(9988776655.4321, fmt='#,##0', integer=True), '9,988,776,655' + ) + # multiplier is applied before fmt is used + self.assertEqual(fn(100, fmt='0.00', multiplier=1.5), '150.00') # Test with multiplier self.assertEqual(fn(1000, multiplier=1.5), '1500') # Failure cases self.assertEqual(fn('abc'), 'abc') - self.assertEqual(fn(1234.456, decimal_places='a'), '1234.456') + self.assertEqual(fn(1234.456, decimal_places='a'), '1234') + self.assertEqual( + fn(1234.456, decimal_places='a', separator=True, locale='en-au'), '1,234' + ) self.assertEqual(fn(1234.456, leading='a'), '1234.456') @override_settings(TIME_ZONE='America/New_York') - def test_date_tags(self): + def test_datetime_tags(self): """Test for date formatting tags. - Source timezone is Australia/Sydney @@ -394,18 +429,21 @@ class ReportTagTest(PartImageTestMixin, InvenTreeTestCase): tzinfo=ZoneInfo('Australia/Sydney'), ) - # Format a set of tests: timezone, format, expected + # Format a set of tests: timezone, format, locale, expected tests = [ - (None, None, '2024-03-12T21:30:00-04:00'), - (None, '%d-%m-%y', '12-03-24'), - ('UTC', None, '2024-03-13T01:30:00+00:00'), - ('UTC', '%d-%B-%Y', '13-March-2024'), - ('Europe/Amsterdam', None, '2024-03-13T02:30:00+01:00'), - ('Europe/Amsterdam', '%y-%m-%d %H:%M', '24-03-13 02:30'), + (None, None, 'en-us', 'Mar 12, 2024, 9:30:00 PM'), # noqa: RUF001 + (None, '%d-%m-%y', 'en-us', '12-03-24'), + ('UTC', None, 'en-us', 'Mar 13, 2024, 1:30:00 AM'), # noqa: RUF001 + ('UTC', '%d-%B-%Y', 'en-us', '13-March-2024'), + ('Europe/Amsterdam', None, 'de-de', '13.03.2024, 02:30:00'), + ('Europe/Amsterdam', '%y-%m-%d %H:%M', 'de-de', '24-03-13 02:30'), ] - for tz, fmt, expected in tests: - result = report_tags.format_datetime(time, tz, fmt) + for tz, fmt, locale, expected in tests: + print(tz, fmt, locale, expected) + result = report_tags.format_datetime( + time, timezone=tz, fmt=fmt, locale=locale + ) self.assertEqual(result, expected) def test_icon(self): @@ -519,21 +557,24 @@ class ReportTagTest(PartImageTestMixin, InvenTreeTestCase): self.assertEqual(report_tags.render_currency(m, decimal_places=3), '$1,234.560') self.assertEqual( report_tags.render_currency( - Money(1234, 'USD'), currency='EUR', min_decimal_places=3 + Money(1234, 'USD'), currency='EUR', decimal_places=3 ), '$1,234.000', ) + + set_global_setting('PRICING_DECIMAL_PLACES_MIN', 2) + self.assertEqual( report_tags.render_currency( Money(1234, 'USD'), currency='EUR', max_decimal_places=1 ), - '$1,234.0', + '$1,234.00', ) # Test with non-currency values self.assertEqual( - report_tags.render_currency(1234.45, currency='USD', decimal_places=2), - '$1,234.45', + report_tags.render_currency(1234.45, currency='USD', decimal_places=5), + '$1,234.45000', ) # Test with an invalid amount @@ -544,9 +585,101 @@ class ReportTagTest(PartImageTestMixin, InvenTreeTestCase): report_tags.render_currency(m, multiplier='quork') self.assertEqual(report_tags.render_currency(m, decimal_places='a'), exp_m) - self.assertEqual(report_tags.render_currency(m, min_decimal_places='a'), exp_m) self.assertEqual(report_tags.render_currency(m, max_decimal_places='a'), exp_m) + # Test locale override — different locales render USD differently + self.assertEqual(report_tags.render_currency(m, locale='en-us'), '$1,234.56') + self.assertEqual(report_tags.render_currency(m, locale='en-gb'), 'US$1,234.56') + self.assertEqual(report_tags.render_currency(m, locale='en-au'), 'USD1,234.56') + + # Test with custom fmt pattern + # Pattern without currency placeholder — no symbol in output + self.assertEqual(report_tags.render_currency(m, fmt='#,##0.00'), '1,234.56') + # Pattern with currency placeholder — symbol rendered per locale + self.assertEqual( + report_tags.render_currency(m, fmt='¤#,##0.0000', locale='en-us'), + '$1,234.5600', + ) + # fmt + locale: de-de uses dot thousands, comma decimal + self.assertEqual( + report_tags.render_currency(m, fmt='#,##0.00', locale='de-de'), '1.234,56' + ) + # fmt takes priority over decimal_places + self.assertEqual( + report_tags.render_currency(m, fmt='0.0000', decimal_places=2), '1234.5600' + ) + + # Test leading digits + m_small = Money(1.23, 'USD') + self.assertEqual( + report_tags.render_currency(m_small, leading=4, locale='en-us'), '$0,001.23' + ) + # leading=1 is the default — no change + self.assertEqual( + report_tags.render_currency(m_small, leading=1, locale='en-us'), '$1.23' + ) + # invalid leading falls back gracefully + self.assertEqual( + report_tags.render_currency(m_small, leading='x', locale='en-us'), '$1.23' + ) + # fmt takes priority over leading + self.assertEqual( + report_tags.render_currency(m_small, leading=6, fmt='#,##0.00'), '1.23' + ) + + # Test include_symbol + # Default (True) — symbol present + self.assertEqual(report_tags.render_currency(m, locale='en-us'), '$1,234.56') + # Explicit False — symbol suppressed + self.assertEqual( + report_tags.render_currency(m, include_symbol=False, locale='en-us'), + '1,234.56', + ) + # include_symbol=False with fmt containing ¤ — ¤ renders as empty string + self.assertEqual( + report_tags.render_currency( + m, include_symbol=False, fmt='¤#,##0.00', locale='en-us' + ), + '1,234.56', + ) + # include_symbol=False with fmt lacking ¤ — no symbol either way + self.assertEqual( + report_tags.render_currency( + m, include_symbol=False, fmt='#,##0.00', locale='en-us' + ), + '1,234.56', + ) + + def test_render_currency_locale_override(self): + """Explicit locale= kwarg takes priority over global setting and system locale.""" + m = Money(1234.56, 'USD') + + # Explicit locale overrides system LANGUAGE_CODE + with override_settings(LANGUAGE_CODE='en-au'): + self.assertEqual( + report_tags.render_currency(m, locale='en-us'), '$1,234.56' + ) + self.assertEqual( + report_tags.render_currency(m, locale='en-gb'), 'US$1,234.56' + ) + + # Invalid locale raises ValidationError regardless of other settings + with self.assertRaises(ValidationError): + report_tags.render_currency(m, locale='xx-zz') + + def test_render_currency_system_locale(self): + """render_currency uses system LANGUAGE_CODE when no explicit locale= is passed.""" + m = Money(1234.56, 'USD') + + with override_settings(LANGUAGE_CODE='en-us'): + self.assertEqual(report_tags.render_currency(m), '$1,234.56') + + with override_settings(LANGUAGE_CODE='en-gb'): + self.assertEqual(report_tags.render_currency(m), 'US$1,234.56') + + with override_settings(LANGUAGE_CODE='en-au'): + self.assertEqual(report_tags.render_currency(m), 'USD1,234.56') + def test_create_currency(self): """Test the create_currency template tag.""" m = report_tags.create_currency(1000, 'USD') @@ -618,14 +751,94 @@ class ReportTagTest(PartImageTestMixin, InvenTreeTestCase): def test_format_date(self): """Test the format_date template tag.""" - # Test with a valid date - date = timezone.datetime(year=2024, month=3, day=13) - self.assertEqual(report_tags.format_date(date), '2024-03-13') - self.assertEqual(report_tags.format_date(date, fmt='%d-%m-%y'), '13-03-24') + dt = timezone.datetime(year=2024, month=3, day=13) + self.assertEqual(report_tags.format_date(dt, locale='de-de'), '13.03.2024') + self.assertEqual(report_tags.format_date(dt, locale='en-us'), 'Mar 13, 2024') + self.assertEqual(report_tags.format_date(dt, locale='en-au'), '13 Mar 2024') + self.assertEqual(report_tags.format_date(dt, locale='fr-fr'), '13 mars 2024') + self.assertEqual(report_tags.format_date(dt, fmt='%d-%m-%y'), '13-03-24') # Test with an invalid date self.assertEqual(report_tags.format_date('abc'), 'abc') - self.assertEqual(report_tags.format_date(date, fmt='a'), 'a') + self.assertEqual(report_tags.format_date(dt, fmt='a'), 'a') + + # Explicit fmt always wins over locale + self.assertEqual( + report_tags.format_date(dt, fmt='%Y-%m-%d', locale='de-de'), '2024-03-13' + ) + + # Falls back to LANGUAGE_CODE when no locale= arg + with override_settings(LANGUAGE_CODE='en-us'): + self.assertEqual(report_tags.format_date(dt), 'Mar 13, 2024') + + # date_format controls the Babel style + self.assertEqual( + report_tags.format_date(dt, locale='en-us', date_format='short'), '3/13/24' + ) + self.assertEqual( + report_tags.format_date(dt, locale='en-us', date_format='long'), + 'March 13, 2024', + ) + self.assertEqual( + report_tags.format_date(dt, locale='en-us', date_format='full'), + 'Wednesday, March 13, 2024', + ) + + # fmt= wins over date_format= + self.assertEqual( + report_tags.format_date(dt, fmt='%Y', locale='en-us', date_format='full'), + '2024', + ) + + # Invalid locale raises ValidationError + with self.assertRaises(ValidationError): + report_tags.format_date(dt, locale='xx-zz') + + def test_format_datetime(self): + """Test that format_datetime renders locale-aware output.""" + from zoneinfo import ZoneInfo + + dt = timezone.datetime(2026, 6, 19, 15, 30, 0, tzinfo=ZoneInfo('UTC')) + + self.assertEqual( + report_tags.format_datetime(dt, locale='en-us'), + 'Jun 19, 2026, 3:30:00 PM', # noqa: RUF001 + ) + self.assertEqual( + report_tags.format_datetime(dt, locale='de-de'), '19.06.2026, 15:30:00' + ) + + # Explicit fmt still wins + self.assertEqual( + report_tags.format_datetime(dt, fmt='%Y-%m-%d', locale='de-de'), + '2026-06-19', + ) + + # Falls back to LANGUAGE_CODE when no locale= arg + with override_settings(LANGUAGE_CODE='de-de'): + self.assertEqual(report_tags.format_datetime(dt), '19.06.2026, 15:30:00') + + # date_format controls the Babel style + self.assertEqual( + report_tags.format_datetime(dt, locale='de-de', date_format='short'), + '19.06.26, 15:30', + ) + self.assertEqual( + report_tags.format_datetime(dt, locale='de-de', date_format='long'), + '19. Juni 2026, 15:30:00 UTC', # codespell:ignore "Juni" + ) + + # fmt= wins over date_format= + self.assertEqual( + report_tags.format_datetime( + dt, fmt='%H:%M', locale='en-us', date_format='full' + ), + '15:30', + ) + + # Invalid locale raises ValidationError + with self.assertRaises(ValidationError): + report_tags.format_datetime(dt, locale='xx-zz') class BarcodeTagTest(TestCase): From c4d67b65d73352f3d51b78f1372739ca0ab52134 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Jun 2026 12:02:19 +0200 Subject: [PATCH 08/40] chore(deps): bump undici from 8.4.1 to 8.5.0 in /src/frontend (#12200) Bumps [undici](https://github.com/nodejs/undici) from 8.4.1 to 8.5.0. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v8.4.1...v8.5.0) --- updated-dependencies: - dependency-name: undici dependency-version: 8.5.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Matthias Mair --- src/frontend/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/frontend/yarn.lock b/src/frontend/yarn.lock index 5ee5ddcca6..f139eafcac 100644 --- a/src/frontend/yarn.lock +++ b/src/frontend/yarn.lock @@ -4657,9 +4657,9 @@ undici@^6.23.0, undici@^6.24.0: integrity sha512-4yqz8a3n5HmGTlsbADNtr/dJlhkh/55Rq798G6ibiULcXbDtaLpTl1pvdqcbFfeoj3iSi52lePFM7h9H21cw/A== undici@^8.4.1: - version "8.4.1" - resolved "https://registry.yarnpkg.com/undici/-/undici-8.4.1.tgz#060ad15af2b07ad6570d7c78d3f8b437426ab279" - integrity sha512-RNHlB4fxZK0IrkhBsxhlbx7s8kFWwr7rzzOqj5nvZugw3ig3RsB7KW3zVlV0eu8POl+rx5d1hmL7rRg0z1owow== + version "8.5.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-8.5.0.tgz#31ba9021a3d84c15e61cc5e28be2d7c451e66a66" + integrity sha512-xamtWoB1EshgjpmlXd7GGm2VfdDtw1+rD8uhry8pSNW3If6S8E0m2T2+orSKeZXEn/aPJMviCpDBA65WJt8zhg== universal-user-agent@^7.0.0, universal-user-agent@^7.0.2: version "7.0.3" From 5eaac37303b077d9a48011542b190651fbd6f6f8 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 20 Jun 2026 20:13:14 +1000 Subject: [PATCH 09/40] Fix signup warning (#12213) - Should only fire on an actual signup attempt --- src/backend/InvenTree/InvenTree/auth_overrides.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/backend/InvenTree/InvenTree/auth_overrides.py b/src/backend/InvenTree/InvenTree/auth_overrides.py index 9a223dd2f9..32de0107bd 100644 --- a/src/backend/InvenTree/InvenTree/auth_overrides.py +++ b/src/backend/InvenTree/InvenTree/auth_overrides.py @@ -114,9 +114,12 @@ class RegistrationMixin: """ if registration_enabled(self.REGISTRATION_SETTING): return True - logger.warning( - f'INVE-W12: Signup attempt blocked, because registration is disabled via setting {self.REGISTRATION_SETTING}.' - ) + # Only warn when this is an actual signup submission, not when called as + # a feature-availability check during login or other auth flows. + if request and request.method == 'POST' and 'signup' in request.path: + logger.warning( + f'INVE-W12: Signup attempt blocked, because registration is disabled via setting {self.REGISTRATION_SETTING}.' + ) return False def clean_email(self, email): From 204cff2f8822235f95cbaefc1d4cfaf3774ad9ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Jun 2026 13:14:34 +0200 Subject: [PATCH 10/40] chore(deps): bump undici from 6.26.0 to 8.5.0 in /src/frontend (#12214) Bumps [undici](https://github.com/nodejs/undici) from 6.26.0 to 8.5.0. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v6.26.0...v8.5.0) --- updated-dependencies: - dependency-name: undici dependency-version: 8.5.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/frontend/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/frontend/yarn.lock b/src/frontend/yarn.lock index f139eafcac..0612b6ef65 100644 --- a/src/frontend/yarn.lock +++ b/src/frontend/yarn.lock @@ -4652,9 +4652,9 @@ ufo@^1.6.3: integrity sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg== undici@^6.23.0, undici@^6.24.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-6.26.0.tgz#333a35b7f519c48d2dc6aeb38e4e91d9274e0652" - integrity sha512-4yqz8a3n5HmGTlsbADNtr/dJlhkh/55Rq798G6ibiULcXbDtaLpTl1pvdqcbFfeoj3iSi52lePFM7h9H21cw/A== + version "6.27.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-6.27.0.tgz#41f9e48f7c5a40d27376caaead8c9a9fc7bca9c4" + integrity sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg== undici@^8.4.1: version "8.5.0" From f1a1f6f18aea0e56413c677fcc3c6603e40c787f Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 20 Jun 2026 22:50:32 +1000 Subject: [PATCH 11/40] Agents (#12212) * Add AGENTS project awareness * Fix formatting * Additional info * Update AGENTS.md Co-authored-by: Matthias Mair * Update CLAUDE.md Co-authored-by: Matthias Mair --------- Co-authored-by: Matthias Mair --- AGENTS.md | 5 ++ CLAUDE.md | 5 ++ CONTRIBUTING.md | 218 +++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 225 insertions(+), 3 deletions(-) create mode 100644 AGENTS.md create mode 100644 CLAUDE.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000000..90afc6d2bc --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,5 @@ +See [CONTRIBUTING.md](CONTRIBUTING.md) for codebase guidance. +Security reports must follow the security policy in [SECURITY.md](docs/docs/SECURITY.md) and provide how they interact with the [threat model](docs/docs/concepts/threat_model.md). + +Do not open a pull request without manual review by a human. Do not file AI generated issues under any circumstances. +Using AI generated content in issue/PR discussions might lead to code of conduct violations and/or bans. diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000000..90afc6d2bc --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,5 @@ +See [CONTRIBUTING.md](CONTRIBUTING.md) for codebase guidance. +Security reports must follow the security policy in [SECURITY.md](docs/docs/SECURITY.md) and provide how they interact with the [threat model](docs/docs/concepts/threat_model.md). + +Do not open a pull request without manual review by a human. Do not file AI generated issues under any circumstances. +Using AI generated content in issue/PR discussions might lead to code of conduct violations and/or bans. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c589902e9b..5fdb18c218 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,13 +1,27 @@ -### Contributing to InvenTree +# Contributing to InvenTree Hi there, thank you for your interest in contributing! Please read our contribution guidelines, before submitting your first pull request to the InvenTree codebase. -### Project File Structure +## About InvenTree + +InvenTree is an open-source inventory management system designed for makers, engineers, and small manufacturers. + +The codebase is split into two independently deployable layers: + +**Backend — Django (Python)** +A REST API built with Django and Django REST Framework. It owns all business logic, the database schema, background task processing (Django-Q2), plugin execution, and report generation. The backend can be used standalone via the API without the frontend. + +**Frontend — React (TypeScript)** +A single-page application built with React 19, Mantine 9, and Vite. It communicates exclusively through the backend REST API. It has its own build pipeline, test suite (Playwright), and i18n system (Lingui). The frontend lives entirely in `src/frontend/` and has no Django awareness. + +When making changes, be clear about which layer you are working in — they have separate toolchains, test runners, and linting rules. + +## Project File Structure The InvenTree project is split into two main components: frontend and backend. This source is located in the `src` directory. All other files are used for project management, documentation, and testing. -```bash +``` InvenTree/ ├─ .devops/ # Files for Azure DevOps ├─ .github/ # Files for GitHub @@ -39,11 +53,209 @@ InvenTree/ │ │ ├─ tsconfig.json # Settings for frontend compilation ├─ .pkgr.yml # Build definition for Debian/Ubuntu packages ├─ .pre-commit-config.yaml # Code formatter/linter configuration +├─ biome.json # JS/TS linting and formatting config ├─ CONTRIBUTING.md # Contribution guidelines and overview ├─ Procfile # Process definition for Debian/Ubuntu packages +├─ pyproject.toml # Python tooling config (Ruff, pytest, coverage, djLint, ty) ├─ README.md # General project information and overview ├─ SECURITY.md # Project security policy ├─ tasks.py # Action definitions for development, testing and deployment ``` +### Backend app domains + +The following Django apps are defined in `src/backend/InvenTree/`: + +| Directory | Domain | +|-----------|--------| +| `build/` | Build (manufacturing/assembly) orders | +| `common/` | Shared models, settings, utilities | +| `company/` | Suppliers, customers, manufacturers | +| `data_exporter/` | Data export functionality | +| `generic/` | Shared enums, events, and state machine utilities | +| `importer/` | Data import functionality | +| `InvenTree/` | Core configuration (settings, URLs, middleware) | +| `machine/` | Support for external machines and devices | +| `order/` | Purchase orders and sales orders | +| `part/` | Parts catalogue and categories | +| `stock/` | Stock items and locations | +| `report/` | Report templates and generation | +| `plugin/` | Plugin system | +| `users/` | User accounts and permissions | +| `web/` | Serves the React frontend static build to Django | + +### Frontend layout + +``` +src/frontend/src/ + components/ # Reusable React components + pages/ # Page-level route components + tables/ # Data table components + forms/ # Form components + hooks/ # Custom React hooks + states/ # Zustand global state + locales/ # i18n translation catalogues (Lingui) +``` + +## Development Setup + +The project uses [Invoke](https://www.pyinvoketasks.com/) (`tasks.py`) as the task runner. + +```bash +# One-time setup: creates venv at dev/venv/, installs deps, sets up pre-commit hooks +invoke dev.setup-dev + +# Apply database migrations +invoke migrate + +# Create an admin account (required to log in) +invoke superuser + +# Terminal 1 — Django dev server (port 8000) +invoke dev.server + +# Terminal 2 — Vite dev server with HMR (port 5173) +invoke dev.frontend-server + +# Terminal 3 (optional) — Background task worker +invoke worker +``` + +A VS Code Dev Container configuration is available at `.devcontainer/` and includes PostgreSQL 15 and Redis 7 sidecar services. + +To see all available tasks, run `invoke --list`. + +## Running Backend Tests + +Always pass `--keepdb` to backend test commands. It reuses the existing test database instead of rebuilding it from scratch on every run, which is significantly faster. + +```bash +# All backend tests +invoke dev.test --keepdb + +# Specific test module +invoke dev.test --keepdb --runtest=company.test_api + +# With coverage +invoke dev.test --keepdb --coverage + +# Migration tests only (skip --keepdb here — migrations must run against a fresh DB) +invoke dev.test --migrations +``` + +## Running Frontend Tests + +Frontend tests use [Playwright](https://playwright.dev/) and target Chromium and Firefox. The test runner automatically starts the Vite dev server (port 5173), the Django backend (port 8000), and the background worker — no manual server startup is needed. + +```bash +# Open Playwright's interactive UI (recommended for local development) +invoke dev.frontend-test + +# Run tests in headless mode from the frontend directory +cd src/frontend && npx playwright test + +# Run a specific test file +cd src/frontend && npx playwright test tests/pui_login.spec.ts + +# Run tests in a specific browser only +cd src/frontend && npx playwright test --project=chromium +``` + +Test files live in `src/frontend/tests/` and follow the `pui_*.spec.ts` naming convention. + +Locally, tests run with a single worker (required for Vite HMR compatibility). In CI they run with multiple workers against a production build for speed. + +## Code Style and Linting + +All formatting and linting runs automatically on commit via pre-commit hooks. Never skip them. + +### Python (Backend) + +Tool: **Ruff** (replaces Black, isort, flake8, and others). + +```bash +ruff check src/backend/ # Lint +ruff format src/backend/ # Format +``` + +- Google-style docstrings enforced +- Enabled rule sets: A, B, C, D, F, I, N, SIM, PIE, PLE, PLW, RUF, UP, W +- Type checking: `ty` (configured in `pyproject.toml`) + +### Django Templates + +Tool: **djLint** + +```bash +djlint src/backend/ --check +``` + +### JavaScript / TypeScript (Frontend) + +Tool: **Biome** (replaces ESLint + Prettier). + +```bash +cd src/frontend +yarn biome check . # Lint + format check +yarn biome format . # Format only +``` + +- Single quotes, space indentation +- `noUnusedImports` is an error + +## Making Changes + +### Backend + +- Each Django app has its own `models.py`, `serializers.py`, `views.py`, `urls.py`, and `filters.py`. +- API endpoints use Django REST Framework; document them with drf-spectacular decorators. +- After changing models, create a migration: `invoke dev.makemigrations`. +- Tests live in `test_*.py` files within each app directory. +- Background tasks go through Django-Q2; define them in the app's `tasks.py`. + +### Frontend + +- Pages register themselves in `src/frontend/src/router.tsx`. +- Server state fetching uses TanStack Query (React Query); avoid raw `useEffect` for data fetching. +- Global UI state uses Zustand stores in `states/`. +- UI components come from Mantine 9.x; use the Mantine component library before writing custom CSS. +- Add i18n strings with Lingui (`t` macro / `Trans` component); run `invoke int.frontend-trans` to extract from source and compile. (`invoke dev.translate` is for the full translation pipeline and is not intended for local use.) +- Playwright tests live in `src/frontend/tests/`. + +### Dependencies + +**Python:** Add packages to `src/backend/requirements.in` (or `requirements-dev.in` for dev-only tools). The pre-commit hook runs `pip-compile` automatically on commit to regenerate `requirements.txt`. Never edit `requirements.txt` directly. + +**Frontend:** Add packages with `yarn add ` from `src/frontend/`. + +### Migrations + +- Never edit existing migration files; always generate new ones. +- Keep migrations reversible where possible. +- Migration tests run in CI under the tag `migration_test`. + +## CI / CD + +GitHub Actions workflows live in `.github/workflows/`. Key workflows: + +| Workflow | Purpose | +|----------|---------| +| `qc_checks.yaml` | Lint, type-check, backend tests, API schema | +| `frontend.yaml` | Playwright E2E tests, frontend build | +| `docker.yaml` | Docker image builds | +| `translations.yaml` | Crowdin i18n sync | + +CI uses path-based filtering — only affected jobs run per PR. Coverage tracked via Codecov; quality analysis via SonarCloud. + +## Key Conventions + +- **REST API versioning:** Endpoint changes must not break the published API schema. Run `invoke dev.schema` and check the diff before opening a PR. +- **Plugin safety:** The plugin system (`plugin/`) is a public extension point; avoid breaking its interfaces. +- **No hardcoded secrets:** gitleaks runs in pre-commit and CI — any credential-shaped string will block merges. +- **Database portability:** Code must work on PostgreSQL, MySQL/MariaDB, and SQLite. Avoid database-specific SQL or ORM features. +- **Frontend translations:** Every user-visible string must be wrapped in a Lingui `t` macro or `` component. +- **Test tagging:** Tag slow or special tests (`@tag('migration_test')`, `@tag('performance_test')`) so CI can filter them selectively. + +--- + Refer to our [contribution guidelines](https://docs.inventree.org/en/latest/develop/contributing/) for more information! From 8afc8b3d50f735165435847ae51a029ba17e1036 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=80=E6=BA=90=E6=96=97=E5=A3=AB?= <43269525+geekcj12@users.noreply.github.com> Date: Sat, 20 Jun 2026 20:51:38 +0800 Subject: [PATCH 12/40] build(docker): compile backend translations during image build (#12203) * build(docker): compile backend trasnlations during image build * test(docker): verify compiled backend translations exist in image Add checks to the "Test Docker Image" step that assert the compiled django.mo files are present for a few representative languages (de, fr, ru, zh_Hans). This guards the newly added backend translation compilation step in the production Dockerfile, ensuring the multilingual artifacts are produced at the expected locale paths. * test(docker): verify compiled frontend translations exist in image --- .github/workflows/docker.yaml | 10 ++++++++++ contrib/container/Dockerfile | 3 +++ tasks.py | 18 ++++++++++++++++++ 3 files changed, 31 insertions(+) diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 124fbcbfd2..df3770b803 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -84,6 +84,16 @@ jobs: docker run --rm inventree-test test -f /home/inventree/gunicorn.conf.py docker run --rm inventree-test test -f /home/inventree/src/backend/requirements.txt docker run --rm inventree-test test -f /home/inventree/src/backend/InvenTree/manage.py + # Check that backend translations were compiled into the image (a few representative languages) + docker run --rm inventree-test test -f /home/inventree/src/backend/InvenTree/locale/de/LC_MESSAGES/django.mo + docker run --rm inventree-test test -f /home/inventree/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.mo + docker run --rm inventree-test test -f /home/inventree/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.mo + docker run --rm inventree-test test -f /home/inventree/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.mo + # Check that frontend translations (lingui) were compiled into the static build output (a few representative languages) + docker run --rm inventree-test grep -q '"src/locales/de/messages.ts"' /home/inventree/src/backend/InvenTree/web/static/web/.vite/manifest.json + docker run --rm inventree-test grep -q '"src/locales/fr/messages.ts"' /home/inventree/src/backend/InvenTree/web/static/web/.vite/manifest.json + docker run --rm inventree-test grep -q '"src/locales/ru/messages.ts"' /home/inventree/src/backend/InvenTree/web/static/web/.vite/manifest.json + docker run --rm inventree-test grep -q '"src/locales/zh_Hans/messages.ts"' /home/inventree/src/backend/InvenTree/web/static/web/.vite/manifest.json - name: Build Docker Image # Build the development docker image (using docker-compose.yml) run: docker compose --project-directory . -f contrib/container/dev-docker-compose.yml build --no-cache diff --git a/contrib/container/Dockerfile b/contrib/container/Dockerfile index 0427dd15ed..16418375e6 100644 --- a/contrib/container/Dockerfile +++ b/contrib/container/Dockerfile @@ -145,6 +145,9 @@ ENV PATH=/root/.local/bin:$PATH COPY --from=builder_stage ${INVENTREE_BACKEND_DIR}/InvenTree/web/static/web ${INVENTREE_BACKEND_DIR}/InvenTree/web/static/web COPY --from=builder_stage /root/.local /root/.local +# Compile Django backend translations during image build +RUN bash -c "cd '${INVENTREE_HOME}' && invoke int.backend-compilemessages" + # Launch the production server CMD ["sh", "-c", "exec gunicorn -c ./gunicorn.conf.py InvenTree.wsgi -b ${INVENTREE_WEB_ADDR}:${INVENTREE_WEB_PORT} --chdir ${INVENTREE_BACKEND_DIR}/InvenTree"] diff --git a/tasks.py b/tasks.py index 4f94ff57f6..b59a43d738 100644 --- a/tasks.py +++ b/tasks.py @@ -906,6 +906,23 @@ def backend_trans(c, verbose: bool = False): success('Backend translations compiled successfully') +@task(help={'verbose': 'Print verbose output'}) +@state_logger('backend_compilemessages') +def backend_compilemessages(c, verbose: bool = False): + """Compile backend Django translation files without loading InvenTree settings.""" + info('Compiling backend translations...') + + cmd = 'python3 -m django compilemessages' + + if verbose: + cmd += ' -v 1' + else: + cmd += ' -v 0' + + run(c, cmd, manage_py_dir()) + success('Backend translations compiled successfully') + + @task( help={ 'clean': 'Clean up old backup files', @@ -2490,6 +2507,7 @@ internal = Collection( clear_generated, export_settings_definitions, export_definitions, + backend_compilemessages, frontend_build, frontend_check, frontend_compile, From 50577da65ad1a24ecf1c7d9bc6ba724d9bdf6c93 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 20 Jun 2026 23:49:36 +1000 Subject: [PATCH 13/40] Add meaningful message on CSRF failure (#12216) * Add meaningful message on CSRF failure * Add link to CSRF_FAILURE_VIEW * Add unit test for new CSRF feedback --- src/backend/InvenTree/InvenTree/middleware.py | 26 ++++++++ src/backend/InvenTree/InvenTree/settings.py | 1 + .../InvenTree/InvenTree/test_middleware.py | 66 +++++++++++++++---- src/frontend/src/functions/auth.tsx | 4 +- 4 files changed, 85 insertions(+), 12 deletions(-) diff --git a/src/backend/InvenTree/InvenTree/middleware.py b/src/backend/InvenTree/InvenTree/middleware.py index 98ffc08c22..0c6ff3c94b 100644 --- a/src/backend/InvenTree/InvenTree/middleware.py +++ b/src/backend/InvenTree/InvenTree/middleware.py @@ -106,6 +106,32 @@ apps_mfa_bypass = [ """App namespaces that bypass MFA enforcement - normal security model is still enforced.""" +def csrf_failure(request, reason=''): + """Custom CSRF failure handler. + + Returns a JSON response for API/headless requests so the frontend can + provide a meaningful error message to the user + """ + from django.views.csrf import csrf_failure as django_default + + if ( + request.path.startswith('/_allauth/') + or request.path.startswith('/api/') + or 'application/json' in request.headers.get('Accept', '') + or 'application/json' in request.headers.get('Content-Type', '') + ): + return JsonResponse( + { + 'detail': _( + 'CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly.' + ) + }, + status=403, + ) + + return django_default(request, reason=reason) + + class AuthRequiredMiddleware: """Check for user to be authenticated.""" diff --git a/src/backend/InvenTree/InvenTree/settings.py b/src/backend/InvenTree/InvenTree/settings.py index d5f643594c..06ba9dfc64 100644 --- a/src/backend/InvenTree/InvenTree/settings.py +++ b/src/backend/InvenTree/InvenTree/settings.py @@ -851,6 +851,7 @@ valid_cookie_modes = ['lax', 'strict', 'none'] COOKIE_MODE = COOKIE_MODE.capitalize() if COOKIE_MODE in valid_cookie_modes else False # Additional CSRF settings +CSRF_FAILURE_VIEW = 'InvenTree.middleware.csrf_failure' CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN' CSRF_COOKIE_NAME = 'csrftoken' diff --git a/src/backend/InvenTree/InvenTree/test_middleware.py b/src/backend/InvenTree/InvenTree/test_middleware.py index 410822d3cf..b6b89cf31d 100644 --- a/src/backend/InvenTree/InvenTree/test_middleware.py +++ b/src/backend/InvenTree/InvenTree/test_middleware.py @@ -2,8 +2,7 @@ from unittest.mock import patch -from django.conf import settings -from django.http import Http404 +from django.http import Http404, HttpRequest from django.urls import reverse from error_report.models import Error @@ -289,18 +288,63 @@ class MiddlewareTests(InvenTreeTestCase): response, 'window.INVENTREE_SETTINGS', status_code=500 ) - # Log stuff # TODO remove - print( - '###DBG-TST###', - 'site', - settings.SITE_URL, - 'trusted', - settings.CSRF_TRUSTED_ORIGINS, - ) - # Check that the correct step triggers the error message self.assertContains( response, 'INVE-E7: The visited path `http://testserver` does not match', status_code=500, ) + + def test_csrf_failure(self): + """Test the custom CSRF failure handler.""" + from InvenTree.middleware import csrf_failure + + EXPECTED_DETAIL = 'CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly.' + + def make_request(path, headers=None): + request = HttpRequest() + request.path = path + request.META['SERVER_NAME'] = 'testserver' + request.META['SERVER_PORT'] = '80' + for key, value in (headers or {}).items(): + request.META[f'HTTP_{key.upper().replace("-", "_")}'] = value + return request + + # API path -> JSON 403 with meaningful message + response = csrf_failure( + make_request('/api/part/'), reason='origin check failed' + ) + self.assertEqual(response.status_code, 403) + import json + + data = json.loads(response.content) + self.assertEqual(data['detail'], EXPECTED_DETAIL) + + # allauth headless path -> JSON 403 + response = csrf_failure(make_request('/_allauth/browser/v1/auth/login')) + self.assertEqual(response.status_code, 403) + data = json.loads(response.content) + self.assertEqual(data['detail'], EXPECTED_DETAIL) + + # Accept: application/json header -> JSON 403 + response = csrf_failure( + make_request('/some/other/path/', {'Accept': 'application/json'}), + reason='origin check failed', + ) + self.assertEqual(response.status_code, 403) + data = json.loads(response.content) + self.assertEqual(data['detail'], EXPECTED_DETAIL) + + # Content-Type: application/json header -> JSON 403 + response = csrf_failure( + make_request('/some/other/path/', {'Content-Type': 'application/json'}), + reason='origin check failed', + ) + self.assertEqual(response.status_code, 403) + data = json.loads(response.content) + self.assertEqual(data['detail'], EXPECTED_DETAIL) + + # Plain browser request -> falls back to Django default CSRF page (403 HTML, not JSON) + response = csrf_failure(make_request('/web/'), reason='origin check failed') + self.assertEqual(response.status_code, 403) + self.assertNotIn(b'application/json', response.get('Content-Type', '').encode()) diff --git a/src/frontend/src/functions/auth.tsx b/src/frontend/src/functions/auth.tsx index 6f541f049c..2c940df733 100644 --- a/src/frontend/src/functions/auth.tsx +++ b/src/frontend/src/functions/auth.tsx @@ -131,7 +131,9 @@ export async function doBasicLogin( default: notifications.show({ title: `${t`Login failed`} (${err.response.status})`, - message: t`Check your input and try again.`, + message: + err.response?.data?.detail ?? + t`Check your input and try again.`, id: 'auth-login-error', color: 'red' }); From 6057aafe6523b289bd25b651554d6a90c57f1573 Mon Sep 17 00:00:00 2001 From: Andrey Lushnikov Date: Sun, 21 Jun 2026 22:17:09 +0100 Subject: [PATCH 14/40] devops: fix chromium test uploads to flakiness.io (#12219) Currently, only Firefox test results get uploaded to Flakiness.io. This patch fixes the upload for chromium results as well, per https://docs.flakiness.io/ci/github-actions-setup/ --- .github/workflows/frontend.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/frontend.yaml b/.github/workflows/frontend.yaml index e894fc30d4..82a261c5dd 100644 --- a/.github/workflows/frontend.yaml +++ b/.github/workflows/frontend.yaml @@ -195,6 +195,9 @@ jobs: --health-interval 10s --health-timeout 5s --health-retries 5 + permissions: + contents: read # Required for actions/checkout + id-token: write # Required for GitHub OIDC env: COVERAGE: true From ec845c61cda2d9fd458906aef7e2871f7a09a188 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Mon, 22 Jun 2026 00:26:31 +0200 Subject: [PATCH 15/40] Bump ty (#12211) * bump ty * various fixes * fix settings * bump stubs * update pre-commit setup * update ignore * fix various issues * fix style * fix ignores * fix wrong ty warnings --- .pre-commit-config.yaml | 2 +- pyproject.toml | 6 +- src/backend/InvenTree/InvenTree/api.py | 2 +- src/backend/InvenTree/InvenTree/exceptions.py | 8 +- src/backend/InvenTree/InvenTree/schema.py | 4 +- .../InvenTree/InvenTree/setting/ldap.py | 4 +- src/backend/InvenTree/common/api.py | 2 +- .../migrations/0019_auto_20200413_0642.py | 2 +- src/backend/InvenTree/order/models.py | 11 +- .../samples/supplier/supplier_sample.py | 2 +- src/backend/InvenTree/report/apps.py | 4 +- .../InvenTree/report/templatetags/report.py | 2 +- src/backend/InvenTree/script/update_icons.py | 2 +- src/backend/InvenTree/stock/api.py | 1 + src/backend/InvenTree/users/models.py | 4 +- src/backend/requirements-dev-3.14.txt | 169 +++++++++++++----- src/backend/requirements-dev.txt | 38 ++-- 17 files changed, 170 insertions(+), 93 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b140056f45..e56b3f2f3d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -37,7 +37,7 @@ repos: files: src/backend/requirements-dev\.(in|txt)$ - id: pip-compile name: pip-compile requirements-dev.in 3.14 - args: [src/backend/requirements-dev.in, -o, src/backend/requirements-dev-3.14.txt, -c, src/backend/requirements-3.14.txt, --python-version=3.14, -c, src/backend/requirements.txt] + args: [src/backend/requirements-dev.in, -o, src/backend/requirements-dev-3.14.txt, -c, src/backend/requirements-3.14.txt, --python-version=3.14, -c, src/backend/requirements.txt, -c, src/backend/requirements-dev.txt] files: src/backend/requirements-dev\.(in|txt)$ - id: pip-compile name: pip-compile requirements.txt diff --git a/pyproject.toml b/pyproject.toml index 169e5a1f89..e1216eaaf6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -102,20 +102,20 @@ no-strip-extras=true generate-hashes=true [tool.ty.environment] -root = ["src/backend/InvenTree"] +extra-paths = ["src/backend/InvenTree"] [tool.ty.rules] unresolved-reference="ignore" # 21 # see https://github.com/astral-sh/ty/issues/220 unresolved-attribute="ignore" # 505 # need Plugin Mixin typing call-non-callable="ignore" # 8 ## invalid-assignment="ignore" # 17 # need to wait for better django field stubs -# invalid-method-override="ignore" # 99 +invalid-method-override="ignore" # 104 invalid-return-type="ignore" # 22 ## # possibly-missing-attribute="ignore" # 25 # https://github.com/astral-sh/ty/issues/164 unknown-argument="ignore" # 3 # need to wait for better django field stubs invalid-argument-type="ignore" # 49 no-matching-overload="ignore" # 3 # need to wait for betterdjango field stubs -possibly-unbound-attribute="ignore" # 21 +# possibly-unbound-attribute="ignore" # 21 [tool.coverage.run] source = ["src/backend/InvenTree", "InvenTree"] diff --git a/src/backend/InvenTree/InvenTree/api.py b/src/backend/InvenTree/InvenTree/api.py index a85498596f..1dfc53fa5c 100644 --- a/src/backend/InvenTree/InvenTree/api.py +++ b/src/backend/InvenTree/InvenTree/api.py @@ -494,7 +494,7 @@ class BulkCreateMixin: if unique_create_fields := getattr(self, 'unique_create_fields', None): existing = collections.defaultdict(list) for idx, item in enumerate(data): - key = tuple(item[v] for v in list(unique_create_fields)) # type: ignore[not-subscriptable] + key = tuple(item[v] for v in list(unique_create_fields)) # ty: ignore[not-subscriptable] existing[key].append(idx) unique_errors = [[] for _ in range(len(data))] diff --git a/src/backend/InvenTree/InvenTree/exceptions.py b/src/backend/InvenTree/InvenTree/exceptions.py index 161860339d..61bde3b275 100644 --- a/src/backend/InvenTree/InvenTree/exceptions.py +++ b/src/backend/InvenTree/InvenTree/exceptions.py @@ -19,10 +19,10 @@ logger = structlog.get_logger('inventree') def log_error( - path, - error_name=None, - error_info=None, - error_data=None, + path: Optional[str] = None, + error_name: Optional[str] = None, + error_info: Optional[str] = None, + error_data: Optional[str] = None, scope: Optional[str] = None, plugin: Optional[str] = None, ): diff --git a/src/backend/InvenTree/InvenTree/schema.py b/src/backend/InvenTree/InvenTree/schema.py index 55fa008349..edea87bfef 100644 --- a/src/backend/InvenTree/InvenTree/schema.py +++ b/src/backend/InvenTree/InvenTree/schema.py @@ -282,7 +282,7 @@ def postprocess_print_stats(result, generator, request, public): scopes = {} for path, details in rlt_dict.items(): if details['oauth']: - for scope in details['oauth']: + for scope in list(details['oauth']): if scope not in scopes: scopes[scope] = [] scopes[scope].append(path) @@ -343,7 +343,7 @@ def schema_for_view_output_options(view_class): return extended_view -def exclude_from_schema(klass: type, alternative_path: str) -> type: +def exclude_from_schema(klass: type[Any], alternative_path: str) -> type[Any]: """Decorator to exclude a view from the OpenAPI schema. This is used to hide legacy endpoints from the schema, while still retaining them for backwards compatibility. diff --git a/src/backend/InvenTree/InvenTree/setting/ldap.py b/src/backend/InvenTree/InvenTree/setting/ldap.py index 6e6f57989f..3b39179701 100644 --- a/src/backend/InvenTree/InvenTree/setting/ldap.py +++ b/src/backend/InvenTree/InvenTree/setting/ldap.py @@ -9,8 +9,8 @@ def get_ldap_config(debug: bool = False) -> dict: The returned settings will be updated into the globals() object, and will be used to configure the LDAP authentication backend. """ - import django_auth_ldap.config # type: ignore[unresolved-import] - import ldap # type: ignore[unresolved-import] + import django_auth_ldap.config # ty: ignore[unresolved-import] + import ldap # ty: ignore[unresolved-import] # get global options from dict and use ldap.OPT_* as keys and values global_options_dict = get_setting( diff --git a/src/backend/InvenTree/common/api.py b/src/backend/InvenTree/common/api.py index 94a1ec8335..f2bec5e94b 100644 --- a/src/backend/InvenTree/common/api.py +++ b/src/backend/InvenTree/common/api.py @@ -577,7 +577,7 @@ class CustomUnitViewset(DataExportViewMixin, viewsets.ModelViewSet): return { 'name': k, 'is_alias': reg.get_name(k) == k, - 'compatible_units': [str(a) for a in unit.compatible_units()], + 'compatible_units': [str(a) for a in unit.compatible_units()], # ty:ignore[missing-argument] 'isdimensionless': unit.dimensionless, } diff --git a/src/backend/InvenTree/company/migrations/0019_auto_20200413_0642.py b/src/backend/InvenTree/company/migrations/0019_auto_20200413_0642.py index 0fc852354b..d4d33f9697 100644 --- a/src/backend/InvenTree/company/migrations/0019_auto_20200413_0642.py +++ b/src/backend/InvenTree/company/migrations/0019_auto_20200413_0642.py @@ -15,7 +15,7 @@ TESTING = 'test' in sys.argv def clear(): if not TESTING: # pragma: no cover - os.system('cls' if os.name == 'nt' else 'clear') + os.system('cls' if os.name == 'nt' else 'clear') # ty:ignore[deprecated] def reverse_association(apps, schema_editor): # pragma: no cover diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py index 17f9d8193f..6563bf1bc0 100644 --- a/src/backend/InvenTree/order/models.py +++ b/src/backend/InvenTree/order/models.py @@ -272,7 +272,7 @@ class ReturnOrderReportContext(report.mixins.BaseReportContext, TypedDict): customer: Optional[Company] -class TransferOrderReportContext(report.mixins.BaseReportContext, TypedDict): +class TransferOrderReportContext(BaseOrderReportContext, TypedDict): """Context for the transfer order model. Attributes: @@ -639,7 +639,8 @@ class PurchaseOrder(TotalPriceMixin, Order): def report_context(self) -> PurchaseOrderReportContext: """Return report context data for this PurchaseOrder.""" return_ctx = super().report_context() - return_ctx.update({'supplier': self.supplier}) + + return_ctx.update({'supplier': self.supplier}) # ty:ignore[invalid-key] return return_ctx def get_absolute_url(self) -> str: @@ -1372,7 +1373,8 @@ class SalesOrder(TotalPriceMixin, Order): def report_context(self) -> SalesOrderReportContext: """Generate report context data for this SalesOrder.""" return_ctx = super().report_context() - return_ctx.update({'customer': self.customer}) + + return_ctx.update({'customer': self.customer}) # ty:ignore[invalid-key] return return_ctx def get_absolute_url(self) -> str: @@ -2931,7 +2933,8 @@ class ReturnOrder(TotalPriceMixin, Order): def report_context(self) -> ReturnOrderReportContext: """Generate report context data for this ReturnOrder.""" return_ctx = super().report_context() - return_ctx.update({'customer': self.customer}) + + return_ctx.update({'customer': self.customer}) # ty:ignore[invalid-key] return return_ctx def get_absolute_url(self): diff --git a/src/backend/InvenTree/plugin/samples/supplier/supplier_sample.py b/src/backend/InvenTree/plugin/samples/supplier/supplier_sample.py index 4ea7d761b8..4500da8c7c 100644 --- a/src/backend/InvenTree/plugin/samples/supplier/supplier_sample.py +++ b/src/backend/InvenTree/plugin/samples/supplier/supplier_sample.py @@ -66,7 +66,7 @@ class SampleSupplierPlugin(SupplierMixin, InvenTreePlugin): name=p['name'], description=p['description'], exact=p['sku'] == term, - price=f'{p["price"][1][0]:.2f}€', + price=f'{p["price"][1][0]:.2f}€', # ty:ignore[not-subscriptable] link=p['link'], image_url=p['image_url'], existing_part=getattr( diff --git a/src/backend/InvenTree/report/apps.py b/src/backend/InvenTree/report/apps.py index e72ea19145..1dfc507553 100644 --- a/src/backend/InvenTree/report/apps.py +++ b/src/backend/InvenTree/report/apps.py @@ -73,7 +73,9 @@ class ReportConfig(AppConfig): def cleanup(self): """Cleanup old label and report outputs.""" try: - from report.tasks import cleanup_old_report_outputs # type: ignore[import] + from report.tasks import ( + cleanup_old_report_outputs, # type: ignore[import] # ty: ignore[unresolved-import] + ) cleanup_old_report_outputs() except Exception: diff --git a/src/backend/InvenTree/report/templatetags/report.py b/src/backend/InvenTree/report/templatetags/report.py index 5ec71e1891..aad9db84b5 100644 --- a/src/backend/InvenTree/report/templatetags/report.py +++ b/src/backend/InvenTree/report/templatetags/report.py @@ -1021,7 +1021,7 @@ def format_number( number = float(number) if multiplier is not None: - number *= multiplier + number *= float(multiplier) if integer: number = int(number) diff --git a/src/backend/InvenTree/script/update_icons.py b/src/backend/InvenTree/script/update_icons.py index ea24479456..716ffeb878 100644 --- a/src/backend/InvenTree/script/update_icons.py +++ b/src/backend/InvenTree/script/update_icons.py @@ -19,7 +19,7 @@ if __name__ == '__main__': os.mkdir(STATIC_FOLDER) print('Downloading tabler icons...') - os.system(f'npm install --prefix {TMP_FOLDER} @tabler/icons @tabler/icons-webfont') + os.system(f'npm install --prefix {TMP_FOLDER} @tabler/icons @tabler/icons-webfont') # ty:ignore[deprecated] print(f'Copying tabler icons to {STATIC_FOLDER}...') diff --git a/src/backend/InvenTree/stock/api.py b/src/backend/InvenTree/stock/api.py index 31ef0f915a..6557761651 100644 --- a/src/backend/InvenTree/stock/api.py +++ b/src/backend/InvenTree/stock/api.py @@ -18,6 +18,7 @@ from rest_framework.generics import GenericAPIView from rest_framework.response import Response from rest_framework.serializers import ValidationError +import common.filters import common.models import common.settings import InvenTree.helpers diff --git a/src/backend/InvenTree/users/models.py b/src/backend/InvenTree/users/models.py index 54fb8ae2da..0e6e1eb316 100644 --- a/src/backend/InvenTree/users/models.py +++ b/src/backend/InvenTree/users/models.py @@ -47,9 +47,7 @@ User.add_to_class('__str__', user_model_str) # Overriding User.__str__ if settings.LDAP_AUTH: - from django_auth_ldap.backend import ( # type: ignore[unresolved-import] - populate_user, - ) + from django_auth_ldap.backend import populate_user # ty: ignore[unresolved-import] @receiver(populate_user) def create_email_address(user, **kwargs): diff --git a/src/backend/requirements-dev-3.14.txt b/src/backend/requirements-dev-3.14.txt index 93889781ee..f711289cc9 100644 --- a/src/backend/requirements-dev-3.14.txt +++ b/src/backend/requirements-dev-3.14.txt @@ -1,21 +1,25 @@ # This file was autogenerated by uv via the following command: -# uv pip compile src/backend/requirements-dev.in -o src/backend/requirements-dev-3.14.txt -c src/backend/requirements-3.14.txt --python-version=3.14 -c src/backend/requirements.txt +# uv pip compile src/backend/requirements-dev.in -o src/backend/requirements-dev-3.14.txt -c src/backend/requirements-3.14.txt --python-version=3.14 -c src/backend/requirements.txt -c src/backend/requirements-dev.txt asgiref==3.11.1 \ --hash=sha256:5f184dc43b7e763efe848065441eac62229c9f7b0475f41f80e207a114eda4ce \ --hash=sha256:e8667a091e69529631969fd45dc268fa79b99c92c5fcdda727757e52146ec133 # via # -c src/backend/requirements-3.14.txt + # -c src/backend/requirements-dev.txt # -c src/backend/requirements.txt # django build==1.5.0 \ --hash=sha256:13f3eecb844759ab66efec90ca17639bbf14dc06cb2fdf37a9010322d9c50a6f \ --hash=sha256:302c22c3ba2a0fd5f3911918651341ebb3896176cbdec15bd421f80b1afc7647 - # via pip-tools + # via + # -c src/backend/requirements-dev.txt + # pip-tools certifi==2026.6.17 \ --hash=sha256:024c88eeec92ca068db80f02b8b07c9cef7b9fe261d1d535abfd5abd6f6af432 \ --hash=sha256:2227dcbaafe0d2f59279d1762ddddc37783ed4354594f194ffc31d20f41fc3db # via # -c src/backend/requirements-3.14.txt + # -c src/backend/requirements-dev.txt # -c src/backend/requirements.txt # requests cffi==2.0.0 \ @@ -105,6 +109,7 @@ cffi==2.0.0 \ --hash=sha256:fe562eb1a64e67dd297ccc4f5addea2501664954f2692b69a76449ec7913ecbf # via # -c src/backend/requirements-3.14.txt + # -c src/backend/requirements-dev.txt # -c src/backend/requirements.txt # cryptography charset-normalizer==3.4.7 \ @@ -239,13 +244,16 @@ charset-normalizer==3.4.7 \ --hash=sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464 # via # -c src/backend/requirements-3.14.txt + # -c src/backend/requirements-dev.txt # -c src/backend/requirements.txt # pdfminer-six # requests click==8.4.1 \ --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \ --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96 - # via pip-tools + # via + # -c src/backend/requirements-dev.txt + # pip-tools coverage[toml]==7.14.1 \ --hash=sha256:0177614a0370f227888b4e436a7c55686d6a9f90eb1ade2b624ba685a1686e86 \ --hash=sha256:01b7733daad0237daa01ef80fe2dfceffc911e6a17fa7b55d14aa8214eaaaecd \ @@ -353,7 +361,9 @@ coverage[toml]==7.14.1 \ --hash=sha256:fad54e871165f6ec2f536063ac74c3104508a12963e64072ba44bd822de52b0c \ --hash=sha256:fc459e5d73be2d6332fcfe8dbf3d8994671fe33c700f4565988ecfa511547253 \ --hash=sha256:fd86572566fb40189a8260446158235159bc7a82dfbc87a3b39cf4fb57fcec1c - # via -r src/backend/requirements-dev.in + # via + # -c src/backend/requirements-dev.txt + # -r src/backend/requirements-dev.in cryptography==48.0.1 \ --hash=sha256:08a597acce1ff37f347400087776599e2348a3a8bc53b44120e463cd274efe4a \ --hash=sha256:09f73a725d582cef64b91281a322cd798d14a33b2b6f2b7ad9531dc336d84c02 \ @@ -406,6 +416,7 @@ cryptography==48.0.1 \ --hash=sha256:fe0180af5bf9236518a087e35bf2d9a347d5f5f51e63c579d683ddff424e3d46 # via # -c src/backend/requirements-3.14.txt + # -c src/backend/requirements-dev.txt # -c src/backend/requirements.txt # pdfminer-six django==5.2.15 \ @@ -413,6 +424,7 @@ django==5.2.15 \ --hash=sha256:5154a9bf84ac01dde011e367f355c07dbb329532e06810dcf3ef2af269e236e7 # via # -c src/backend/requirements-3.14.txt + # -c src/backend/requirements-dev.txt # -c src/backend/requirements.txt # django-silk # django-slowtests @@ -420,62 +432,88 @@ django==5.2.15 \ # django-stubs-ext django-querycount==0.8.3 \ --hash=sha256:0782484e8a1bd29498fa0195a67106e47cdcc98fafe80cebb1991964077cb694 - # via -r src/backend/requirements-dev.in + # via + # -c src/backend/requirements-dev.txt + # -r src/backend/requirements-dev.in django-silk==5.5.0 \ --hash=sha256:41fcabe65d59d31ccdb69daeb3c3e6d30879ab2c00b0875b111fda0f69aec065 \ --hash=sha256:82b5a690d623935be916dd145e2f605a4ac9454d54e03df6a7ffcf38333c8444 - # via -r src/backend/requirements-dev.in + # via + # -c src/backend/requirements-dev.txt + # -r src/backend/requirements-dev.in django-slowtests==1.1.1 \ --hash=sha256:3c6936d420c9df444ac03625b41d97de043c662bbde61fbcd33e4cd407d0c247 - # via -r src/backend/requirements-dev.in + # via + # -c src/backend/requirements-dev.txt + # -r src/backend/requirements-dev.in django-stubs==6.0.5 \ --hash=sha256:7742b8e60afc68a8545158e2bdb103376d5a092f7902c17f370920a9c08eb957 \ --hash=sha256:9fb9eede9b2fc47b36c3dc4a93652eb959dff45466ec4a580e4a22782192d746 - # via -r src/backend/requirements-dev.in + # via + # -c src/backend/requirements-dev.txt + # -r src/backend/requirements-dev.in django-stubs-ext==6.0.5 \ --hash=sha256:1cc325e991303849bce70e19748981b225ef08b37256f263e113caf97cd3bcc0 \ --hash=sha256:a9932c8233d6dd4e34ae0b192026379c1a9be8f0b7c27aa1fa09ae215169773e - # via django-stubs + # via + # -c src/backend/requirements-dev.txt + # django-stubs django-test-migrations==1.5.0 \ --hash=sha256:1cbff04b1e82c5564a6f635284907b381cc11a2ff883adff46776d9126824f07 \ --hash=sha256:96a08f085fc8bfaa53d44618341d82a2d22fd194c821cd81b147b66f0bec0da8 - # via -r src/backend/requirements-dev.in + # via + # -c src/backend/requirements-dev.txt + # -r src/backend/requirements-dev.in django-types==0.24.0 \ --hash=sha256:af903de8b9ee963b7594459a7a20cb8eaaab176ae2b3244ecaa089e0c570b0d1 \ --hash=sha256:ddb478ca733e0dde5475118dd59ab340156980f9659fd92de2083326ae96100a - # via -r src/backend/requirements-dev.in + # via + # -c src/backend/requirements-dev.txt + # -r src/backend/requirements-dev.in gprof2dot==2025.4.14 \ --hash=sha256:0742e4c0b4409a5e8777e739388a11e1ed3750be86895655312ea7c20bd0090e \ --hash=sha256:35743e2d2ca027bf48fa7cba37021aaf4a27beeae1ae8e05a50b55f1f921a6ce - # via django-silk + # via + # -c src/backend/requirements-dev.txt + # django-silk idna==3.18 \ --hash=sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2 \ --hash=sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848 # via # -c src/backend/requirements-3.14.txt + # -c src/backend/requirements-dev.txt # -c src/backend/requirements.txt # requests iniconfig==2.3.0 \ --hash=sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730 \ --hash=sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12 - # via pytest + # via + # -c src/backend/requirements-dev.txt + # pytest isort==8.0.1 \ --hash=sha256:171ac4ff559cdc060bcfff550bc8404a486fee0caab245679c2abe7cb253c78d \ --hash=sha256:28b89bc70f751b559aeca209e6120393d43fbe2490de0559662be7a9787e3d75 - # via -r src/backend/requirements-dev.in + # via + # -c src/backend/requirements-dev.txt + # -r src/backend/requirements-dev.in markdown-it-py==4.2.0 \ --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \ --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a - # via rich + # via + # -c src/backend/requirements-dev.txt + # rich mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ --hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba - # via markdown-it-py + # via + # -c src/backend/requirements-dev.txt + # markdown-it-py packaging==26.2 \ --hash=sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e \ --hash=sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661 # via # -c src/backend/requirements-3.14.txt + # -c src/backend/requirements-dev.txt # -c src/backend/requirements.txt # build # pytest @@ -483,19 +521,27 @@ packaging==26.2 \ pdfminer-six==20260107 \ --hash=sha256:366585ba97e80dffa8f00cebe303d2f381884d8637af4ce422f1df3ef38111a9 \ --hash=sha256:96bfd431e3577a55a0efd25676968ca4ce8fd5b53f14565f85716ff363889602 - # via -r src/backend/requirements-dev.in + # via + # -c src/backend/requirements-dev.txt + # -r src/backend/requirements-dev.in pip==26.1.2 \ --hash=sha256:382ff9f685ee3bc25864f820aa50505825f10f5458ffff07e30a6d96e5715cab \ --hash=sha256:f49cd134c61cf2fd75e0ce2676db03e4054504a5a4986d00f8299ae632dc4605 - # via pip-tools + # via + # -c src/backend/requirements-dev.txt + # pip-tools pip-tools==7.5.3 \ --hash=sha256:3aac0c473240ae90db7213c033401f345b05197293ccbdd2704e52e7a783785e \ --hash=sha256:8fa364779ebc010cbfe17cb9de404457ac733e100840423f28f6955de7742d41 - # via -r src/backend/requirements-dev.in + # via + # -c src/backend/requirements-dev.txt + # -r src/backend/requirements-dev.in pluggy==1.6.0 \ --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \ --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746 - # via pytest + # via + # -c src/backend/requirements-dev.txt + # pytest prek==0.4.5 \ --hash=sha256:14109d37b33e5529db41a3539d4f8f72d295f6eeddede3964994d898b8cec05c \ --hash=sha256:1fd98b986767dafdb6b4305b563ee5a3a8f13bd3c78b98d708626815ea9f147f \ @@ -514,30 +560,36 @@ prek==0.4.5 \ --hash=sha256:e491a1a4641d91d8b03dcce5588397e76d2a5b432c9b0a6c70475972b4512ab4 \ --hash=sha256:f7517774c72b001573520dc7111156779fd3e5b4452c11f09ff53c71a067e835 \ --hash=sha256:fccd11613ae92619d1ecda0ab3359ceebeb38898909ec84a8d383733d12158cc - # via -r src/backend/requirements-dev.in + # via + # -c src/backend/requirements-dev.txt + # -r src/backend/requirements-dev.in pycparser==3.0 \ --hash=sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29 \ --hash=sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992 # via # -c src/backend/requirements-3.14.txt + # -c src/backend/requirements-dev.txt # -c src/backend/requirements.txt # cffi pygments==2.20.0 \ --hash=sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f \ --hash=sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176 # via + # -c src/backend/requirements-dev.txt # pytest # rich pyproject-hooks==1.2.0 \ --hash=sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8 \ --hash=sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913 # via + # -c src/backend/requirements-dev.txt # build # pip-tools pytest==9.1.1 \ --hash=sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313 \ --hash=sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c # via + # -c src/backend/requirements-dev.txt # pytest-codspeed # pytest-django pytest-codspeed==5.0.3 \ @@ -570,31 +622,41 @@ pytest-codspeed==5.0.3 \ --hash=sha256:f56d0339cd98d26f6e561987be25bdd2761a5d53d8f73493b1ebe02d0d451093 \ --hash=sha256:f852bee785a7a124cb1720b1915670c6742af87747dc4d838f3ffdbd365ce9d9 \ --hash=sha256:fe2ea83c924c2250675b75686c3ee456b8cf0208d83d552e182a195fdf467378 - # via -r src/backend/requirements-dev.in + # via + # -c src/backend/requirements-dev.txt + # -r src/backend/requirements-dev.in pytest-django==4.12.0 \ --hash=sha256:3ff300c49f8350ba2953b90297d23bf5f589db69545f56f1ec5f8cff5da83e85 \ --hash=sha256:df94ec819a83c8979c8f6de13d9cdfbe76e8c21d39473cfe2b40c9fc9be3c758 - # via -r src/backend/requirements-dev.in + # via + # -c src/backend/requirements-dev.txt + # -r src/backend/requirements-dev.in requests==2.34.2 \ --hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \ --hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed # via # -c src/backend/requirements-3.14.txt + # -c src/backend/requirements-dev.txt # -c src/backend/requirements.txt # requests-mock requests-mock==1.12.1 \ --hash=sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563 \ --hash=sha256:e9e12e333b525156e82a3c852f22016b9158220d2f47454de9cae8a77d371401 - # via -r src/backend/requirements-dev.in + # via + # -c src/backend/requirements-dev.txt + # -r src/backend/requirements-dev.in rich==15.0.0 \ --hash=sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb \ --hash=sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36 - # via pytest-codspeed + # via + # -c src/backend/requirements-dev.txt + # pytest-codspeed setuptools==82.0.1 \ --hash=sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9 \ --hash=sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb # via # -c src/backend/requirements-3.14.txt + # -c src/backend/requirements-dev.txt # -c src/backend/requirements.txt # -r src/backend/requirements-dev.in # pip-tools @@ -603,42 +665,50 @@ sqlparse==0.5.5 \ --hash=sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e # via # -c src/backend/requirements-3.14.txt + # -c src/backend/requirements-dev.txt # -c src/backend/requirements.txt # django # django-silk -ty==0.0.1a21 \ - --hash=sha256:0efba2e52b58f536f4198ba5c4a36cac2ba67d83ec6f429ebc7704233bcda4c3 \ - --hash=sha256:1474d883129bb63da3b2380fc7ead824cd3baf6a9551e6aa476ffefc58057af3 \ - --hash=sha256:1f276ceab23a1410aec09508248c76ae0989c67fb7a0c287e0d4564994295531 \ - --hash=sha256:218d53e7919e885bd98e9196d9cb952d82178b299aa36da6f7f39333eb7400ed \ - --hash=sha256:21f708d02b6588323ffdbfdba38830dd0ecfd626db50aa6006b296b5470e52f9 \ - --hash=sha256:334d2a212ebf42a0e55d57561926af7679fe1e878175e11dcb81ad8df892844e \ - --hash=sha256:3c3bc66fcae41eff133cfe326dd65d82567a2fb5d4efe2128773b10ec2766819 \ - --hash=sha256:5dfc73299d441cc6454e36ed0a976877415024143dfca6592dc36f7701424383 \ - --hash=sha256:7505aeb8bf2a62f00f12cfa496f6c965074d75c8126268776565284c8a12d5dd \ - --hash=sha256:84243455f295ed850bd53f7089819321807d4e6ee3b1cbff6086137ae0259466 \ - --hash=sha256:87a200c21e02962e8a27374d9d152582331d57d709672431be58f4f898bf6cad \ - --hash=sha256:9463cac96b8f1bb5ba740fe1d42cd6bd152b43c5b159b2f07f8fd629bcdded34 \ - --hash=sha256:a8c769987d00fbc33054ff7e342633f475ea10dc43bc60fb9fb056159d48cb90 \ - --hash=sha256:ba13d03b9e095216ceb4e4d554a308517f28ab0a6e4dcd07cfe94563e4c2c489 \ - --hash=sha256:be8f457d7841b7ead2a3f6b65ba668abc172a1150a0f1f6c0958af3725dbb61a \ - --hash=sha256:cc0880ec344fbdf736b05d8d0da01f0caaaa02409bd9a24b68d18d0127a79b0e \ - --hash=sha256:e941e9a9d1e54b03eeaf9c3197c26a19cf76009fd5e41e16e5657c1c827bd6d3 \ - --hash=sha256:ecf41706b803827b0de8717f32a434dad1e67be9f4b8caf403e12013179ea06a - # via -r src/backend/requirements-dev.in +ty==0.0.51 \ + --hash=sha256:08adbe53fb8bc9e7f00e89bf1d3c875a02cda76d83f109d2e6ab1ff35a7bfa8c \ + --hash=sha256:25a5b31e6f23fd5dc63ad29087ded09932409e4154e2fe07bbaed015035990bb \ + --hash=sha256:2faed19a8f1505370de071c008df52a994fc03a204f3267c3a33a32ca26f854f \ + --hash=sha256:429a997394dac73870d71b87cc90efc54da3efaf319e72ca18aeef35a78aef90 \ + --hash=sha256:49a21237f6fd1de56beaff0a3e85fe022a09a3401e67e3abec41ce838a5d4d2e \ + --hash=sha256:608d417cd1eaf79bcbd713d9830d5e3db9d57ec225c3af3e4ac9a9ff66b45d70 \ + --hash=sha256:61b4b6a003c3ebe53a63a1125c9b6542aa01bc1b6c9a235d01ee328d000d61a9 \ + --hash=sha256:62ced5e380284f12b2dc4802a3e4ed3dac39913fc6719afde7978814a4c7f169 \ + --hash=sha256:62d94f06e8c317e89b6884f2bde443040e596b88c7c79bd944c84c105b06257a \ + --hash=sha256:79d1877e93460f936bc10ed1a31525702b7ce51075763ccba993be17f0b9e905 \ + --hash=sha256:947986bd82d324b3a5c58ce03f1dad160cdf36443d3e8f64b3484b861ba9bc64 \ + --hash=sha256:abd92913bc90d1705ef9391ff8c6822b61e2e827fa295eb30bf0dfabcf815645 \ + --hash=sha256:b90172d46365bb9d51a7011cbb5c60cc4f514f42c86635df6c092b717f85e1ac \ + --hash=sha256:bc7459348a253247bbfb2669a021e614281b86bbea24c36112b8a6e1a2499a16 \ + --hash=sha256:c1bd1355aee86af01e4e21b0bc16fc460fb05905761f0d8b8d70841de0feade8 \ + --hash=sha256:cc233a6235fb23e2a44b14731a10043e37ba2f30f2c361cf49ad3633c5b9da9c \ + --hash=sha256:dc5e93695ab5dcbf1eef663aee60ec23a413547cc9cb06adcb0d842e9166bd0f \ + --hash=sha256:f8f52952cff665bc52a36147e610c10f5699d30007d7a14ab7f345cff93476ff + # via + # -c src/backend/requirements-dev.txt + # -r src/backend/requirements-dev.in types-psycopg2==2.9.21.20260518 \ --hash=sha256:2fd728a4fa3860db0a4a9813e5f49c30ed329b3d2e60e73530d9db01b2b98420 \ --hash=sha256:8b1f80d90d6799a4fcdac12198b382a8feee9ed4340d5f69b56fc5ffa0644143 - # via django-types + # via + # -c src/backend/requirements-dev.txt + # django-types types-pyyaml==6.0.12.20260518 \ --hash=sha256:d2150f75a231c9fe9c7463bd29487d93e60bac90400287351384bc2284eba7cd \ --hash=sha256:d917f83fb38462550338c1297faedd860b3ec83912b96b1e3d73255f7473e466 - # via django-stubs + # via + # -c src/backend/requirements-dev.txt + # django-stubs typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 # via # -c src/backend/requirements-3.14.txt + # -c src/backend/requirements-dev.txt # -c src/backend/requirements.txt # django-stubs # django-stubs-ext @@ -648,9 +718,12 @@ urllib3==2.7.0 \ --hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 # via # -c src/backend/requirements-3.14.txt + # -c src/backend/requirements-dev.txt # -c src/backend/requirements.txt # requests wheel==0.47.0 \ --hash=sha256:212281cab4dff978f6cedd499cd893e1f620791ca6ff7107cf270781e587eced \ --hash=sha256:cc72bd1009ba0cf63922e28f94d9d83b920aa2bb28f798a31d0691b02fa3c9b3 - # via pip-tools + # via + # -c src/backend/requirements-dev.txt + # pip-tools diff --git a/src/backend/requirements-dev.txt b/src/backend/requirements-dev.txt index 38d084dbaf..ddac7da830 100644 --- a/src/backend/requirements-dev.txt +++ b/src/backend/requirements-dev.txt @@ -643,25 +643,25 @@ tomli==2.4.1 \ --hash=sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9 \ --hash=sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049 # via coverage -ty==0.0.1a21 \ - --hash=sha256:0efba2e52b58f536f4198ba5c4a36cac2ba67d83ec6f429ebc7704233bcda4c3 \ - --hash=sha256:1474d883129bb63da3b2380fc7ead824cd3baf6a9551e6aa476ffefc58057af3 \ - --hash=sha256:1f276ceab23a1410aec09508248c76ae0989c67fb7a0c287e0d4564994295531 \ - --hash=sha256:218d53e7919e885bd98e9196d9cb952d82178b299aa36da6f7f39333eb7400ed \ - --hash=sha256:21f708d02b6588323ffdbfdba38830dd0ecfd626db50aa6006b296b5470e52f9 \ - --hash=sha256:334d2a212ebf42a0e55d57561926af7679fe1e878175e11dcb81ad8df892844e \ - --hash=sha256:3c3bc66fcae41eff133cfe326dd65d82567a2fb5d4efe2128773b10ec2766819 \ - --hash=sha256:5dfc73299d441cc6454e36ed0a976877415024143dfca6592dc36f7701424383 \ - --hash=sha256:7505aeb8bf2a62f00f12cfa496f6c965074d75c8126268776565284c8a12d5dd \ - --hash=sha256:84243455f295ed850bd53f7089819321807d4e6ee3b1cbff6086137ae0259466 \ - --hash=sha256:87a200c21e02962e8a27374d9d152582331d57d709672431be58f4f898bf6cad \ - --hash=sha256:9463cac96b8f1bb5ba740fe1d42cd6bd152b43c5b159b2f07f8fd629bcdded34 \ - --hash=sha256:a8c769987d00fbc33054ff7e342633f475ea10dc43bc60fb9fb056159d48cb90 \ - --hash=sha256:ba13d03b9e095216ceb4e4d554a308517f28ab0a6e4dcd07cfe94563e4c2c489 \ - --hash=sha256:be8f457d7841b7ead2a3f6b65ba668abc172a1150a0f1f6c0958af3725dbb61a \ - --hash=sha256:cc0880ec344fbdf736b05d8d0da01f0caaaa02409bd9a24b68d18d0127a79b0e \ - --hash=sha256:e941e9a9d1e54b03eeaf9c3197c26a19cf76009fd5e41e16e5657c1c827bd6d3 \ - --hash=sha256:ecf41706b803827b0de8717f32a434dad1e67be9f4b8caf403e12013179ea06a +ty==0.0.51 \ + --hash=sha256:08adbe53fb8bc9e7f00e89bf1d3c875a02cda76d83f109d2e6ab1ff35a7bfa8c \ + --hash=sha256:25a5b31e6f23fd5dc63ad29087ded09932409e4154e2fe07bbaed015035990bb \ + --hash=sha256:2faed19a8f1505370de071c008df52a994fc03a204f3267c3a33a32ca26f854f \ + --hash=sha256:429a997394dac73870d71b87cc90efc54da3efaf319e72ca18aeef35a78aef90 \ + --hash=sha256:49a21237f6fd1de56beaff0a3e85fe022a09a3401e67e3abec41ce838a5d4d2e \ + --hash=sha256:608d417cd1eaf79bcbd713d9830d5e3db9d57ec225c3af3e4ac9a9ff66b45d70 \ + --hash=sha256:61b4b6a003c3ebe53a63a1125c9b6542aa01bc1b6c9a235d01ee328d000d61a9 \ + --hash=sha256:62ced5e380284f12b2dc4802a3e4ed3dac39913fc6719afde7978814a4c7f169 \ + --hash=sha256:62d94f06e8c317e89b6884f2bde443040e596b88c7c79bd944c84c105b06257a \ + --hash=sha256:79d1877e93460f936bc10ed1a31525702b7ce51075763ccba993be17f0b9e905 \ + --hash=sha256:947986bd82d324b3a5c58ce03f1dad160cdf36443d3e8f64b3484b861ba9bc64 \ + --hash=sha256:abd92913bc90d1705ef9391ff8c6822b61e2e827fa295eb30bf0dfabcf815645 \ + --hash=sha256:b90172d46365bb9d51a7011cbb5c60cc4f514f42c86635df6c092b717f85e1ac \ + --hash=sha256:bc7459348a253247bbfb2669a021e614281b86bbea24c36112b8a6e1a2499a16 \ + --hash=sha256:c1bd1355aee86af01e4e21b0bc16fc460fb05905761f0d8b8d70841de0feade8 \ + --hash=sha256:cc233a6235fb23e2a44b14731a10043e37ba2f30f2c361cf49ad3633c5b9da9c \ + --hash=sha256:dc5e93695ab5dcbf1eef663aee60ec23a413547cc9cb06adcb0d842e9166bd0f \ + --hash=sha256:f8f52952cff665bc52a36147e610c10f5699d30007d7a14ab7f345cff93476ff # via -r src/backend/requirements-dev.in types-psycopg2==2.9.21.20260518 \ --hash=sha256:2fd728a4fa3860db0a4a9813e5f49c30ed329b3d2e60e73530d9db01b2b98420 \ From 3bf410c31360f7700549e985bb52ad8837311b8e Mon Sep 17 00:00:00 2001 From: Phil Date: Tue, 23 Jun 2026 14:26:06 +0800 Subject: [PATCH 16/40] color scheme: Use the users prefered mode by default (#12227) * color scheme: Use the users prefered colour scheme if one isn't defined in the store * fix style --------- Co-authored-by: Matthias Mair --- src/frontend/src/contexts/colorSchema.tsx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/frontend/src/contexts/colorSchema.tsx b/src/frontend/src/contexts/colorSchema.tsx index 131e9da8e4..a2a734a8ce 100644 --- a/src/frontend/src/contexts/colorSchema.tsx +++ b/src/frontend/src/contexts/colorSchema.tsx @@ -1,5 +1,4 @@ import { - type MantineColorScheme, type MantineColorSchemeManager, isMantineColorScheme } from '@mantine/core'; @@ -21,10 +20,18 @@ export function localStorageColorSchemeManager({ } try { - return ( - (window.localStorage.getItem(key) as MantineColorScheme) || - defaultValue - ); + const storedValue = window.localStorage.getItem(key); + + // If a value exists in storage, return it + if (storedValue && isMantineColorScheme(storedValue)) { + return storedValue; + } + + // If no value, check the system preference + const systemPrefersDark = window.matchMedia( + '(prefers-color-scheme: dark)' + ).matches; + return systemPrefersDark ? 'dark' : 'light'; } catch { return defaultValue; } From 78a00d320a97db2fa24476c422e6ed33ef6fbe9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Jun 2026 16:30:07 +1000 Subject: [PATCH 17/40] chore(deps): bump the dependencies group with 3 updates (#12220) Bumps the dependencies group with 3 updates: [oasdiff/oasdiff-action](https://github.com/oasdiff/oasdiff-action), [CodSpeedHQ/action](https://github.com/codspeedhq/action) and [crowdin/github-action](https://github.com/crowdin/github-action). Updates `oasdiff/oasdiff-action` from 0.0.57 to 0.1.1 - [Release notes](https://github.com/oasdiff/oasdiff-action/releases) - [Commits](https://github.com/oasdiff/oasdiff-action/compare/3530478ec30f84adedbfeb28f0d9527a290f50a9...5fbe96ede8d0c53aeadef122d7a0abb79152d493) Updates `CodSpeedHQ/action` from 4.17.0 to 4.17.5 - [Release notes](https://github.com/codspeedhq/action/releases) - [Changelog](https://github.com/CodSpeedHQ/action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codspeedhq/action/compare/9d332c4d90b43981c3e55ae8e38e68709996240f...c145068895e045cc725ee76fcd2307624b65c3af) Updates `crowdin/github-action` from 2.16.2 to 2.16.3 - [Release notes](https://github.com/crowdin/github-action/releases) - [Commits](https://github.com/crowdin/github-action/compare/8868a33591d21088edfc398968173a3b98d51706...52aa776766211d83d975df51f3b9c53c2f8ba35f) --- updated-dependencies: - dependency-name: oasdiff/oasdiff-action dependency-version: 0.1.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: CodSpeedHQ/action dependency-version: 4.17.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: crowdin/github-action dependency-version: 2.16.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/qc_checks.yaml | 6 +++--- .github/workflows/translations.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/qc_checks.yaml b/.github/workflows/qc_checks.yaml index 2b3419ac64..2532796e03 100644 --- a/.github/workflows/qc_checks.yaml +++ b/.github/workflows/qc_checks.yaml @@ -222,7 +222,7 @@ jobs: echo "Downloaded api.yaml" - name: Running OpenAPI Spec diff action id: breaking_changes - uses: oasdiff/oasdiff-action/diff@3530478ec30f84adedbfeb28f0d9527a290f50a9 # pin@main + uses: oasdiff/oasdiff-action/diff@5fbe96ede8d0c53aeadef122d7a0abb79152d493 # pin@main with: base: "api.yaml" revision: "src/backend/InvenTree/schema.yml" @@ -363,7 +363,7 @@ jobs: pip install . if: needs.paths-filter.outputs.submit-performance == 'true' - name: Performance Reporting - uses: CodSpeedHQ/action@9d332c4d90b43981c3e55ae8e38e68709996240f # pin@v4.17.0 + uses: CodSpeedHQ/action@c145068895e045cc725ee76fcd2307624b65c3af # pin@v4.17.5 # check if we are in inventree/inventree - reporting only works in that OIDC context if: github.repository == 'inventree/InvenTree' && needs.paths-filter.outputs.submit-performance == 'true' with: @@ -454,7 +454,7 @@ jobs: env: node_version: '>=24' - name: Performance Reporting - uses: CodSpeedHQ/action@9d332c4d90b43981c3e55ae8e38e68709996240f # pin@v4.17.0 + uses: CodSpeedHQ/action@c145068895e045cc725ee76fcd2307624b65c3af # pin@v4.17.5 with: mode: walltime run: inv dev.test --pytest diff --git a/.github/workflows/translations.yaml b/.github/workflows/translations.yaml index 3307459c02..503eb02657 100644 --- a/.github/workflows/translations.yaml +++ b/.github/workflows/translations.yaml @@ -56,7 +56,7 @@ jobs: echo "Resetting to HEAD~" git reset HEAD~ || true - name: crowdin action - uses: crowdin/github-action@8868a33591d21088edfc398968173a3b98d51706 # pin@v2 + uses: crowdin/github-action@52aa776766211d83d975df51f3b9c53c2f8ba35f # pin@v2 with: upload_sources: true upload_translations: false From f21bc2d06f906838e760d2face15cc50cc9df984 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Wed, 24 Jun 2026 02:45:26 +0200 Subject: [PATCH 18/40] extend barcode scans API (#12233) * extend barcode scans with user perm check * fix import * fix call * align error message * add missing permissions to test * remove erronous assign * ensure permission erros knock through --- docs/docs/plugins/mixins/barcode.md | 4 ++-- src/backend/InvenTree/InvenTree/models.py | 11 ++++++++++- src/backend/InvenTree/plugin/base/barcodes/api.py | 12 ++++++++---- .../InvenTree/plugin/base/barcodes/mixins.py | 6 +++--- .../InvenTree/plugin/base/barcodes/test_barcode.py | 8 +++++++- .../plugin/builtin/barcodes/inventree_barcode.py | 14 ++++++++------ .../builtin/barcodes/test_inventree_barcode.py | 1 + .../builtin/suppliers/test_supplier_barcodes.py | 9 +++++++++ 8 files changed, 48 insertions(+), 17 deletions(-) diff --git a/docs/docs/plugins/mixins/barcode.md b/docs/docs/plugins/mixins/barcode.md index 962e36da31..3985990141 100644 --- a/docs/docs/plugins/mixins/barcode.md +++ b/docs/docs/plugins/mixins/barcode.md @@ -54,14 +54,14 @@ class InvenTreeBarcodePlugin(BarcodeMixin, InvenTreePlugin): VERSION = "0.0.1" AUTHOR = "Michael" - def scan(self, barcode_data): + def scan(self, barcode_data, user, **kwargs): if barcode_data.startswith("PART-"): try: pk = int(barcode_data.split("PART-")[1]) instance = Part.objects.get(pk=pk) label = Part.barcode_model_type() - return {label: instance.format_matched_response()} + return {label: instance.format_matched_response(user=user)} except Part.DoesNotExist: pass ``` diff --git a/src/backend/InvenTree/InvenTree/models.py b/src/backend/InvenTree/InvenTree/models.py index 1043fb6db9..31c68e8730 100644 --- a/src/backend/InvenTree/InvenTree/models.py +++ b/src/backend/InvenTree/InvenTree/models.py @@ -23,6 +23,7 @@ from django_q.models import Task from error_report.models import Error from mptt.exceptions import InvalidMove from mptt.models import MPTTModel, TreeForeignKey +from rest_framework.exceptions import PermissionDenied from stdimage.models import StdImageField from taggit.managers import TaggableManager @@ -1334,8 +1335,16 @@ class InvenTreeBarcodeMixin(models.Model): return generate_barcode(self) - def format_matched_response(self): + def format_matched_response(self, user, **kwargs): """Format a standard response for a matched barcode.""" + # Check permission for this object + from users.permissions import check_user_permission + + if not check_user_permission(user, self, 'view'): + raise PermissionDenied( + _('User does not have permission to view this model') + ) + data = {'pk': self.pk} if hasattr(self, 'get_api_url'): diff --git a/src/backend/InvenTree/plugin/base/barcodes/api.py b/src/backend/InvenTree/plugin/base/barcodes/api.py index cf9b0d8dd6..af84a5b4e8 100644 --- a/src/backend/InvenTree/plugin/base/barcodes/api.py +++ b/src/backend/InvenTree/plugin/base/barcodes/api.py @@ -153,7 +153,9 @@ class BarcodeView(CreateAPIView): for current_plugin in plugins: try: - result = current_plugin.scan(barcode) + result = current_plugin.scan(barcode, user=request.user, **kwargs) + except PermissionDenied as exc: + raise exc except Exception: log_error('BarcodeView.scan_barcode', plugin=current_plugin.slug) continue @@ -282,7 +284,7 @@ class BarcodeAssign(BarcodeView): # First check if the provided barcode matches an existing database entry if inventree_barcode_plugin: - result = inventree_barcode_plugin.scan(barcode) + result = inventree_barcode_plugin.scan(barcode, user=request.user, **kwargs) if result is not None: result['error'] = _('Barcode matches existing item') @@ -459,7 +461,9 @@ class BarcodePOAllocate(BarcodeView): manufacturer_part=response.get('manufacturerpart', None), ) response['success'] = _('Matched supplier part') - response['supplierpart'] = supplier_part.format_matched_response() + response['supplierpart'] = supplier_part.format_matched_response( + user=request.user + ) except ValidationError as e: response['error'] = str(e) @@ -524,7 +528,7 @@ class BarcodePOReceive(BarcodeView): filter(lambda plugin: plugin.name == 'InvenTreeBarcode', plugins) ) - if result := internal_barcode_plugin.scan(barcode): + if result := internal_barcode_plugin.scan(barcode, user=request.user, **kwargs): if 'stockitem' in result: response['error'] = _('Item has already been received') self.log_scan(request, response, False) diff --git a/src/backend/InvenTree/plugin/base/barcodes/mixins.py b/src/backend/InvenTree/plugin/base/barcodes/mixins.py index fe9d2e684b..9189e6f3ba 100644 --- a/src/backend/InvenTree/plugin/base/barcodes/mixins.py +++ b/src/backend/InvenTree/plugin/base/barcodes/mixins.py @@ -42,7 +42,7 @@ class BarcodeMixin: """Does this plugin have everything needed to process a barcode.""" return True - def scan(self, barcode_data): + def scan(self, barcode_data: str, user, **kwargs) -> dict | None: """Scan a barcode against this plugin. This method is explicitly called from the /scan/ API endpoint, @@ -261,7 +261,7 @@ class SupplierBarcodeMixin(BarcodeMixin): 'extract_barcode_fields must be implemented by each plugin' ) - def scan(self, barcode_data: str) -> dict | None: + def scan(self, barcode_data: str, user, **kwargs) -> dict | None: """Perform a generic 'scan' operation on a supplier barcode. The supplier barcode may provide sufficient information to match against @@ -297,7 +297,7 @@ class SupplierBarcodeMixin(BarcodeMixin): for k, v in matches.items(): if v and hasattr(v, 'pk'): has_match = True - data[k] = v.format_matched_response() + data[k] = v.format_matched_response(user=user) if not has_match: return None diff --git a/src/backend/InvenTree/plugin/base/barcodes/test_barcode.py b/src/backend/InvenTree/plugin/base/barcodes/test_barcode.py index cec6fc68ad..667ef8d4ed 100644 --- a/src/backend/InvenTree/plugin/base/barcodes/test_barcode.py +++ b/src/backend/InvenTree/plugin/base/barcodes/test_barcode.py @@ -15,6 +15,7 @@ class BarcodeAPITest(InvenTreeAPITestCase): """Tests for barcode api.""" fixtures = ['category', 'part', 'location', 'stock'] + roles = ['stock.view', 'stock_location.view', 'part.view'] def setUp(self): """Setup for all tests.""" @@ -259,6 +260,7 @@ class SOAllocateTest(InvenTreeAPITestCase): """Unit tests for the barcode endpoint for allocating items to a sales order.""" fixtures = ['category', 'company', 'part', 'location', 'stock'] + roles = ['stock.view'] @classmethod def setUpTestData(cls): @@ -343,10 +345,14 @@ class SOAllocateTest(InvenTreeAPITestCase): # Test with barcode which points to a *part* instance item.part.assign_barcode(barcode_data='abcde') + # missing permission for viewing the part - error + self.postBarcode('abcde', sales_order=self.sales_order.pk, expected_code=403) + + # Add part.view role and test again + self.assignRole('part.view') result = self.postBarcode( 'abcde', sales_order=self.sales_order.pk, expected_code=400 ) - self.assertIn('does not match an existing stock item', str(result['error'])) def test_submit(self): diff --git a/src/backend/InvenTree/plugin/builtin/barcodes/inventree_barcode.py b/src/backend/InvenTree/plugin/builtin/barcodes/inventree_barcode.py index 10cf3189c8..c2f163fe8f 100644 --- a/src/backend/InvenTree/plugin/builtin/barcodes/inventree_barcode.py +++ b/src/backend/InvenTree/plugin/builtin/barcodes/inventree_barcode.py @@ -48,11 +48,11 @@ class InvenTreeInternalBarcodePlugin(SettingsMixin, BarcodeMixin, InvenTreePlugi }, } - def format_matched_response(self, label, model, instance): + def format_matched_response(self, label, model, instance, user, **kwargs): """Format a response for the scanned data.""" - return {label: instance.format_matched_response()} + return {label: instance.format_matched_response(user=user, **kwargs)} - def scan(self, barcode_data): + def scan(self, barcode_data, user, **kwargs): """Scan a barcode against this plugin. Here we are looking for a dict object which contains a reference to a particular InvenTree database object @@ -79,7 +79,7 @@ class InvenTreeInternalBarcodePlugin(SettingsMixin, BarcodeMixin, InvenTreePlugi try: instance = model.objects.get(pk=int(pk)) - return self.format_matched_response(label, model, instance) + return self.format_matched_response(label, model, instance, user=user) except (ValueError, model.DoesNotExist): pass @@ -111,7 +111,9 @@ class InvenTreeInternalBarcodePlugin(SettingsMixin, BarcodeMixin, InvenTreePlugi instance = model.objects.get(pk=pk) return { - **self.format_matched_response(label, model, instance), + **self.format_matched_response( + label, model, instance, user=user + ), 'success': succcess_message, } except (ValueError, model.DoesNotExist): @@ -129,7 +131,7 @@ class InvenTreeInternalBarcodePlugin(SettingsMixin, BarcodeMixin, InvenTreePlugi if instance is not None: return { - **self.format_matched_response(label, model, instance), + **self.format_matched_response(label, model, instance, user=user), 'success': succcess_message, } diff --git a/src/backend/InvenTree/plugin/builtin/barcodes/test_inventree_barcode.py b/src/backend/InvenTree/plugin/builtin/barcodes/test_inventree_barcode.py index 1dc1eb90b2..4ae09064af 100644 --- a/src/backend/InvenTree/plugin/builtin/barcodes/test_inventree_barcode.py +++ b/src/backend/InvenTree/plugin/builtin/barcodes/test_inventree_barcode.py @@ -11,6 +11,7 @@ class TestInvenTreeBarcode(InvenTreeAPITestCase): """Tests for the integrated InvenTreeBarcode barcode plugin.""" fixtures = ['category', 'part', 'location', 'stock', 'company', 'supplier_part'] + roles = ['stock.view', 'stock_location.view', 'part.view'] def setUp(self): """Set up the test case.""" diff --git a/src/backend/InvenTree/plugin/builtin/suppliers/test_supplier_barcodes.py b/src/backend/InvenTree/plugin/builtin/suppliers/test_supplier_barcodes.py index d194102581..d04993bef6 100644 --- a/src/backend/InvenTree/plugin/builtin/suppliers/test_supplier_barcodes.py +++ b/src/backend/InvenTree/plugin/builtin/suppliers/test_supplier_barcodes.py @@ -14,6 +14,13 @@ class SupplierBarcodeTests(InvenTreeAPITestCase): """Tests barcode parsing for all suppliers.""" SCAN_URL = reverse('api-barcode-scan') + roles = [ + 'stock.view', + 'stock_location.view', + 'part.view', + 'company.view', + 'order.view', + ] @classmethod def setUpTestData(cls): @@ -176,6 +183,8 @@ class SupplierBarcodeTests(InvenTreeAPITestCase): class SupplierBarcodePOReceiveTests(InvenTreeAPITestCase): """Tests barcode scanning to receive a purchase order item.""" + roles = ['stock.view', 'stock_location.view'] + def setUp(self): """Create supplier part and purchase_order.""" super().setUp() From 6a2094e2a0f6ddf6e1661ddf54cad47a1516e286 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 24 Jun 2026 11:44:51 +1000 Subject: [PATCH 19/40] New Crowdin translations by GitHub Action (#12192) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../InvenTree/locale/ar/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/bg/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/cs/LC_MESSAGES/django.po | 1352 +++++++-------- .../InvenTree/locale/da/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/de/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/el/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/en/LC_MESSAGES/django.po | 1336 +++++++-------- .../InvenTree/locale/es/LC_MESSAGES/django.po | 1338 +++++++-------- .../locale/es_MX/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/et/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/fa/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/fi/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/fr/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/he/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/hi/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/hu/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/id/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/it/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/ja/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/ko/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/lt/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/lv/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/nl/LC_MESSAGES/django.po | 1376 +++++++-------- .../InvenTree/locale/no/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/pl/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/pt/LC_MESSAGES/django.po | 1338 +++++++-------- .../locale/pt_BR/LC_MESSAGES/django.po | 1342 +++++++-------- .../InvenTree/locale/ro/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/ru/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/sk/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/sl/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/sr/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/sv/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/th/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/tr/LC_MESSAGES/django.po | 1494 +++++++++-------- .../InvenTree/locale/uk/LC_MESSAGES/django.po | 1338 +++++++-------- .../InvenTree/locale/vi/LC_MESSAGES/django.po | 1338 +++++++-------- .../locale/zh_Hans/LC_MESSAGES/django.po | 1338 +++++++-------- .../locale/zh_Hant/LC_MESSAGES/django.po | 1338 +++++++-------- src/frontend/src/locales/ar/messages.po | 107 +- src/frontend/src/locales/bg/messages.po | 107 +- src/frontend/src/locales/cs/messages.po | 107 +- src/frontend/src/locales/da/messages.po | 107 +- src/frontend/src/locales/de/messages.po | 107 +- src/frontend/src/locales/el/messages.po | 107 +- src/frontend/src/locales/en/messages.po | 105 +- src/frontend/src/locales/es/messages.po | 107 +- src/frontend/src/locales/es_MX/messages.po | 107 +- src/frontend/src/locales/et/messages.po | 107 +- src/frontend/src/locales/fa/messages.po | 107 +- src/frontend/src/locales/fi/messages.po | 107 +- src/frontend/src/locales/fr/messages.po | 107 +- src/frontend/src/locales/he/messages.po | 107 +- src/frontend/src/locales/hi/messages.po | 107 +- src/frontend/src/locales/hu/messages.po | 107 +- src/frontend/src/locales/id/messages.po | 107 +- src/frontend/src/locales/it/messages.po | 107 +- src/frontend/src/locales/ja/messages.po | 107 +- src/frontend/src/locales/ko/messages.po | 107 +- src/frontend/src/locales/lt/messages.po | 107 +- src/frontend/src/locales/lv/messages.po | 107 +- src/frontend/src/locales/nl/messages.po | 107 +- src/frontend/src/locales/no/messages.po | 107 +- src/frontend/src/locales/pl/messages.po | 107 +- src/frontend/src/locales/pt/messages.po | 107 +- src/frontend/src/locales/pt_BR/messages.po | 107 +- src/frontend/src/locales/ro/messages.po | 107 +- src/frontend/src/locales/ru/messages.po | 107 +- src/frontend/src/locales/sk/messages.po | 107 +- src/frontend/src/locales/sl/messages.po | 107 +- src/frontend/src/locales/sr/messages.po | 107 +- src/frontend/src/locales/sv/messages.po | 107 +- src/frontend/src/locales/th/messages.po | 107 +- src/frontend/src/locales/tr/messages.po | 515 +++--- src/frontend/src/locales/uk/messages.po | 107 +- src/frontend/src/locales/vi/messages.po | 107 +- src/frontend/src/locales/zh_Hans/messages.po | 107 +- src/frontend/src/locales/zh_Hant/messages.po | 107 +- 78 files changed, 28856 insertions(+), 28115 deletions(-) diff --git a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po index d5359a3a0d..55d5fd2370 100644 --- a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Arabic\n" "Language: ar_SA\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "نقطة نهاية API غير موجودة" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "المستخدم ليس لديه الصلاحية لعرض هذا النموذج" @@ -65,11 +65,11 @@ msgstr "تأكيد البريد الإلكتروني" msgid "You must type the same email each time." msgstr "يجب عليك كتابة نفس البريد الإلكتروني كل مرة." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "عنوان البريد الإلكتروني الرئيسي المقدم غير صالح." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "لم تتم الموافقة على نطاق البريد الإلكتروني المقدم." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "تعذّر تحويل {original} إلى {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "الكمية المقدمة غير صحيحة" @@ -105,22 +105,22 @@ msgstr "أدخل التاريخ" msgid "Invalid decimal value" msgstr "" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "ملاحظات" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "القيمة '{name}' لا تظهر في تنسيق النمط" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "القيمة المقدمة لا تتطابق مع النمط المطلوب: " @@ -164,51 +164,51 @@ msgstr "إزالة علامات HTML من هذه القيمة" msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "خطأ فى الاتصال" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "" @@ -220,117 +220,121 @@ msgstr "" msgid "Email" msgstr "البريد الإلكتروني" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "خطأ في تشغيل التحقق من صحة الإضافات" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "البيانات الوصفية يجب أن تكون كائن القالب بايثون" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "" msgid "Currency" msgstr "" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "" @@ -521,11 +525,11 @@ msgstr "" msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "" @@ -546,23 +550,23 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "" @@ -593,7 +597,7 @@ msgstr "" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "" @@ -601,11 +605,11 @@ msgstr "" msgid "Assigned To" msgstr "" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "" @@ -883,8 +887,8 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "" @@ -900,7 +904,7 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "" @@ -962,9 +966,9 @@ msgstr "" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "" @@ -999,7 +1003,7 @@ msgstr "" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "" @@ -1057,8 +1061,8 @@ msgstr "" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "" @@ -1082,7 +1086,7 @@ msgstr "" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "" @@ -1139,7 +1143,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "" @@ -1527,31 +1531,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "" @@ -1654,8 +1658,8 @@ msgstr "" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "" @@ -1677,8 +1681,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "" @@ -1686,7 +1690,7 @@ msgstr "" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "" @@ -1756,7 +1760,7 @@ msgstr "" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "" @@ -2430,7 +2434,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2524,7 +2528,7 @@ msgstr "" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "" @@ -2931,7 +2935,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "" @@ -4448,7 +4452,7 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4533,7 +4537,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "" msgid "Sales Order" msgstr "" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "" @@ -6382,7 +6394,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "" @@ -6390,7 +6402,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8766,200 +8778,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po index aea6591f9e..d90b2d90f6 100644 --- a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" "Language: bg_BG\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "Не е намерена крайна точка на API" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Елементите трябва да се предоставят, като списък" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Потребителя няма нужното разрешение, за да вижда този модел" @@ -65,11 +65,11 @@ msgstr "Потвърждение на електронната поща" msgid "You must type the same email each time." msgstr "Трябва ла въведете една и съща електронна поща." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Въведената основна електронна поща е невалидна." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Въведеният домейн на електронната поща не е утвърден." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Преобразуването на {original} в {unit} не беше успешно" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Въведена е недопустима стойност" @@ -105,22 +105,22 @@ msgstr "Въведи дата" msgid "Invalid decimal value" msgstr "" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Бележки" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Значението '{name}' не отговаря на шаблона" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Въведеното значение не отговаря на задължителния шаблон: " @@ -164,51 +164,51 @@ msgstr "Премахнете HTML маркерите от тази стойно msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Грешка при съединението" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Сървърът отговари с невалиден статусен код" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Възникна изключение" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Сървърът отговори с невалидна стойност за дължината на съдържанието (Content-Length)" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Размерът на изображението е твърде голям" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Сваляното на изображение превиши максималния размер" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Отдалеченият сървър върна празен отговор" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "" @@ -220,117 +220,121 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Трябва да активирате двойно оторизиране преди да направите, каквото и да е." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "" msgid "Currency" msgstr "" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "" @@ -521,11 +525,11 @@ msgstr "Китайски (опростен)" msgid "Chinese (Traditional)" msgstr "Китайски (традиционен)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "" @@ -546,23 +550,23 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "Част" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "" @@ -593,7 +597,7 @@ msgstr "" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "" @@ -601,11 +605,11 @@ msgstr "" msgid "Assigned To" msgstr "" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "" @@ -883,8 +887,8 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "" @@ -900,7 +904,7 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "" @@ -962,9 +966,9 @@ msgstr "" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "" @@ -999,7 +1003,7 @@ msgstr "" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "" @@ -1057,8 +1061,8 @@ msgstr "" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "" @@ -1082,7 +1086,7 @@ msgstr "" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "" @@ -1139,7 +1143,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "" @@ -1527,31 +1531,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Потребител" @@ -1654,8 +1658,8 @@ msgstr "Потребител" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "" @@ -1677,8 +1681,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "" @@ -1686,7 +1690,7 @@ msgstr "" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "" @@ -1756,7 +1760,7 @@ msgstr "" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "" @@ -2430,7 +2434,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2524,7 +2528,7 @@ msgstr "" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "" @@ -2931,7 +2935,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "" @@ -4448,7 +4452,7 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4533,7 +4537,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "" msgid "Sales Order" msgstr "" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Изпратено" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "" @@ -6382,7 +6394,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "" @@ -6390,7 +6402,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Цялостна наличност" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8766,200 +8778,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po index e1d7e2996f..3b6dedbd31 100644 --- a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Czech\n" "Language: cs_CZ\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API endpoint nebyl nalezen" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "Seznam položek musí být k dispozici pro hromadnou operaci" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Položky musí být uvedeny jako seznam" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Zadán neplatný seznam položek" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "Všechny filtry musí být použity s Pravda" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "Zadaným kritériím neodpovídají žádné položky" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "Nebyla poskytnuta žádná data" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "Toto pole musí být unikátní." -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Uživatel nemá právo zobrazit tento model" @@ -65,11 +65,11 @@ msgstr "Potvrzení emailové adresy" msgid "You must type the same email each time." msgstr "Pokaždé musíte zadat stejný email." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Zadaná primární e-mailová adresa je neplatná." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Zadaná e-mailová doména není povolena." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Nelze převést {original} na {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Vyplněno neplatné množství" @@ -105,22 +105,22 @@ msgstr "Zadejte datum" msgid "Invalid decimal value" msgstr "Neplaté desetinné číslo" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Poznámky" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Hodnota '{name}' neodpovídá formátu vzoru" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Poskytnutá hodnota neodpovídá požadovanému vzoru: " @@ -164,51 +164,51 @@ msgstr "Odstranit HTML tagy z této hodnoty" msgid "Data contains prohibited markdown content" msgstr "Data obsahují zakázaný markdown obsah" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "Neplatná URH: žádný název hostitele" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "Neplatná URL: nelze zjistit název hostitele" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "URL směřuje na soukromou nebo rezervovanou IP adresu" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "Příliš mnoho přesměrování" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Chyba spojení" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Server odpověděl s neplatným stavovým kódem" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Došlo k výjimce" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Server odpověděl s neplatnou hodnotou Content-Length" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Velikost obrázku je příliš velká" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Stahování obrázku překročilo maximální velikost" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Vzdálený server vrátil prázdnou odpověď" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "Zadaná URL adresa není platný soubor obrázku" @@ -220,117 +220,121 @@ msgstr "Přihlásit se do aplikace" msgid "Email" msgstr "E-mail" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "Ověření CSRF se nezdařilo. Ujistěte se, že INVENTREE_SITE_URL a INVENTREE_TRUSTED_ORIGINS jsou nastaveny správně." + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Před tím, než budete dělat cokoli jiného, musíte zapnout dvoufaktorové ověřování." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Chyba při ověření pluginu" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metadata musí být objekt python dict" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Metadata pluginu" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "Pole metadat JSON pro použití externími pluginy" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Nesprávně naformátovaný vzor" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Neznámý formát klíče" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Chybí požadovaný klíč" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Referenční pole nemůže být prázdné" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Referenční číslo musí odpovídat požadovanému vzoru" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Referenční číslo je příliš velké" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Neplatný výběr" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Název" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Popis" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Popis (volitelně)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Cesta" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplicitní názvy nemohou existovat pod stejným nadřazeným názvem" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Poznámky (volitelné)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Data čárového kódu" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Data čárového kódu třetí strany" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Hash čárového kódu" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Jedinečný hash dat čárového kódu" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Nalezen existující čárový kód" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Chyba serveru" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Server zaznamenal chybu." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Musí být platné číslo" msgid "Currency" msgstr "Měna" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Vyberte měnu z dostupných možností" @@ -521,11 +525,11 @@ msgstr "Čínština (zjednodušená)" msgid "Chinese (Traditional)" msgstr "Čínština (tradiční)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "Dostupná aktualizace" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "Aktualizace pro InvenTree je k dispozici" @@ -537,7 +541,7 @@ msgstr "Neplatná fyzikální jednotka" msgid "Not a valid currency code" msgstr "Neplatný kód měny" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Stav objednávky" @@ -546,23 +550,23 @@ msgstr "Stav objednávky" msgid "Parent Build" msgstr "Nadřazená sestava" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "Zahrnout varianty" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "Zahrnout varianty" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "Zahrnout varianty" msgid "Part" msgstr "Díl" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Kategorie" @@ -593,7 +597,7 @@ msgstr "Kategorie" msgid "Ancestor Build" msgstr "Sestava předků" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Přiřazeno mě" @@ -601,11 +605,11 @@ msgstr "Přiřazeno mě" msgid "Assigned To" msgstr "Přiřazeno" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Vytvořeno před" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Vytvořeno po" @@ -641,99 +645,99 @@ msgstr "Dokončeno před" msgid "Completed after" msgstr "Dokončeno po" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "Min. datum" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "Max datum" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "Vyloučit strom" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Sestavení musí být zrušeno před odstraněním" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Spotřební materiál" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Volitelné" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Sestava" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Sledováno" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Testovatelné" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Objednávka nevyřízená" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Přiděleno" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Spotřebováno" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Dostupné" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Na objednávku" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "Sestava nenalezena" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Výrobní příkaz" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Lokace" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "Výstup" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Filtrovat podle ID výstupní položky zásoby. Použijte 'null' pro nalezení odinstalovaných položek sestavení." @@ -773,9 +777,9 @@ msgstr "Cílové datum musí být po datu zahájení" msgid "Build Order Reference" msgstr "Referenční číslo výrobního příkazu" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Referenční číslo prodejní objednávky" msgid "Sales Order to which this build is allocated" msgstr "Prodejní objednávka, které je tato stavba přiřazena" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Zdrojové umístění" @@ -821,7 +825,7 @@ msgstr "Externí sestavení" msgid "This build order is fulfilled externally" msgstr "Tento výrobní příkaz je plněn externě" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Cílová lokace" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Stavový kód sestavení" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Kód dávky" @@ -883,8 +887,8 @@ msgstr "Cílové datum dokončení" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Cílové datum dokončení sestavení. Sestavení bude po tomto datu v prodlení." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Datum dokončení" @@ -900,7 +904,7 @@ msgstr "Vystavil" msgid "User who issued this build order" msgstr "Uživatel, který vystavil tento výrobní příkaz" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Priorita tohoto výrobního příkazu" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Kód projektu" @@ -962,9 +966,9 @@ msgstr "Výstup neodpovídá výrobnímu příkazu" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "Množství musí být vyšší než nula" @@ -999,7 +1003,7 @@ msgstr "Vytvořit objekt" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Množství musí být 1 pro zřetězený sklad" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Zabrané množství ({q}) nesmí překročit dostupné skladové množství ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Skladová položka je nadměrně zabrána" @@ -1057,8 +1061,8 @@ msgstr "Skladová položka je nadměrně zabrána" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Skladové položky" @@ -1082,7 +1086,7 @@ msgstr "Cílová skladová položka" msgid "Build Level" msgstr "Úroveň sestavení" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Název dílu" @@ -1139,7 +1143,7 @@ msgstr "Automaticky zvolit sériová čísla" msgid "Automatically allocate required items with matching serial numbers" msgstr "Automaticky přidělit požadované položky s odpovídajícími sériovými čísly" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Následující sériová čísla již existují nebo jsou neplatná" @@ -1272,7 +1276,7 @@ msgstr "Řádková položka sestavy" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part musí ukazovat na stejný díl jako výrobní příkaz" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "Položka musí být skladem" @@ -1385,8 +1389,8 @@ msgstr "Informace instalace" msgid "Build" msgstr "Sestavení" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Díl dodavatele" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Povolit varianty" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "Položka kusovníku" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "Ve výrobě" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "Naplánováno na sestavení" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Externí zásoby" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Dostupné zásoby" @@ -1527,31 +1531,31 @@ msgstr "Opožděný výrobní příkaz" msgid "Build order {bo} is now overdue" msgstr "Objednávka sestavy {bo} je nyní opožděná" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "Má miniaturu" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "Je odkaz" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "Je soubor" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "Uživatel nemá oprávnění k odstranění těchto příloh" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "Uživatel nemá povolení k úpravě této přílohy" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "Uživatel nemá oprávnění k odstranění této přílohy" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "Tento výběr je uzamčen" @@ -1571,8 +1575,8 @@ msgstr "Nejsou uvedeny žádné platné kódy měn" msgid "No plugin" msgstr "Žádný plugin" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "Tagy" @@ -1645,8 +1649,8 @@ msgstr "Klíčový text musí být jedinečný" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Uživatel" @@ -1654,8 +1658,8 @@ msgstr "Uživatel" msgid "Price break quantity" msgstr "Množství cenové slevy" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Cena" @@ -1677,8 +1681,8 @@ msgstr "Název tohoto webhooku" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Aktivní" @@ -1686,7 +1690,7 @@ msgstr "Aktivní" msgid "Is this webhook active" msgstr "Je tento webhook aktivní" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Token" @@ -1756,7 +1760,7 @@ msgstr "Název" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "Platné volby pro tento parametr (oddělené čárkami)" msgid "Selection list for this parameter" msgstr "Seznam výběru pro tento parametr" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Povoleno" @@ -2204,8 +2208,8 @@ msgstr "ID modelu" msgid "ID of the target model for this parameter" msgstr "ID cílového modelu pro tento parametr" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Šablona" @@ -2262,7 +2266,7 @@ msgstr "Datum a čas skenování čárového kódu" msgid "URL endpoint which processed the barcode" msgstr "Koncový bod URL, který zpracoval čárový kód" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Kontext" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "Emailové vlákna" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Klíč" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} zrušeno" msgid "A order that is assigned to you was canceled" msgstr "Objednávka, která je vám přidělena, byla zrušena" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Přijaté položky" @@ -2524,7 +2528,7 @@ msgstr "Název souboru" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "Typ modelu" @@ -2914,8 +2918,8 @@ msgstr "Díly jsou ve výchozím nastavení šablony" msgid "Parts can be assembled from other components by default" msgstr "Díly lze ve výchozím nastavení sestavit z jiných komponentů" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Komponent" @@ -2931,7 +2935,7 @@ msgstr "Možné zakoupit" msgid "Parts are purchaseable by default" msgstr "Díly jsou zakoupitelné ve výchozím nastavení" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Prodejné" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "Zaznamenávat chyby, které se vyskytnou při vytváření reportů" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Velikost stránky" @@ -4128,49 +4132,49 @@ msgstr "Zobrazit položky na poslední úrovni" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "Automaticky zobrazit položky místo podúrovní pro umístění nebo kategorie bez podkategorií" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "Všechny modely" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "Není zadán typ modelu přílohy" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "Neplatný typ přílohy modelu" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "Velikost souboru překračuje maximální limit nahrávání {max_size} MB" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "Neplatný název souboru" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "Minimální počet míst nesmí být větší než maximální počet míst" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "Maximální počet míst nesmí být menší než minimální počet míst" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Prázdná doména není povolena." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Neplatný název domény: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "Hodnota musí být napsána velkými písmeny" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "Hodnota musí být platný variabilní identifikátor" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "Dodavatel je aktivní" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Výrobce" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Společnost" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Kontaktní e-mailová adresa" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Kontakt" @@ -4297,7 +4301,7 @@ msgstr "DIČ" msgid "Company Tax ID" msgstr "DIČ společnosti" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Adresa" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "Odkaz na informace o adrese (externí)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Výrobce dílu" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Vyberte výrobce" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "MPN" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "Odkazovaný díl výrobce musí odkazovat na stejný základní díl" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Dodavatel" @@ -4448,7 +4452,7 @@ msgstr "Dodavatel" msgid "Select supplier" msgstr "Vyberte dodavatele" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Skladová evidence dodavatele" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimální poplatek (např. poplatek za skladování)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Balení" @@ -4533,7 +4537,7 @@ msgstr "Výchozí měna používaná pro tohoto dodavatele" msgid "Company Name" msgstr "Jméno společnosti" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "Skladem" @@ -4643,11 +4647,11 @@ msgstr "Některá povinná pole nebyla namapována" #: importer/models.py:413 msgid "Completed Row Count History" -msgstr "" +msgstr "Dokončená historie počtu řádků" #: importer/models.py:416 msgid "Row Count History" -msgstr "" +msgstr "Historie počtu řádků" #: importer/models.py:439 msgid "ID" @@ -4722,7 +4726,7 @@ msgstr "Původní data řádku" msgid "Errors" msgstr "Chyby" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Platné" @@ -4838,7 +4842,7 @@ msgstr "Počet kopií, které se mají tisknout pro každý štítek" msgid "Connected" msgstr "Připojeno" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Neznámý" @@ -4942,7 +4946,7 @@ msgstr "Klíč vlastnosti" msgid "Value of the property" msgstr "Hodnota vlastnosti" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Skupina" @@ -4966,118 +4970,118 @@ msgstr "Maximální pokrok" msgid "Maximum value for progress type, required if type=progress" msgstr "Maximální hodnota pro pokrok typu, vyžadováno pokud typ=pokrok" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Označení objednávky" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "Vynikající" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "Má projektový kód" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Vytvořil(a)" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "Vytvořeno před" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "Vytvořeno po" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "Má počáteční datum" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "Datum začátku před" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "Datum začátku po" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "Má cílové datum" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "Cílové datum před" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "Cílové datum po" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "Aktualizováno před" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "Aktualizováno po" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "Má cenu" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "Dokončeno před" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "Dokončeno po" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "Externí výrobní příkaz" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Objednávka" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "Objednávka byla dokončena" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Interní díl" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "Objednávka čeká na vyřízení" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Dokončeno" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "Má zásilku" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "Zásilka nebyla nalezena" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Nákupní objednávka" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Nákupní objednávka" msgid "Sales Order" msgstr "Prodejní objednávka" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "Vratka" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "Převodní příkaz" @@ -5135,11 +5139,11 @@ msgstr "Adresa nesouhlasí s vybranou společností" msgid "Order description (optional)" msgstr "Popis objednávky (volitelné)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Vyberte kód projektu pro tuto objednávku" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Odkaz na externí stránku" @@ -5151,7 +5155,7 @@ msgstr "Datum zahájení" msgid "Scheduled start date for this order" msgstr "Plánované datum zahájení této objednávky" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Cílené datum" @@ -5184,487 +5188,487 @@ msgstr "Kontaktní bod pro tuto objednávku" msgid "Company address for this order" msgstr "Adresa společnosti pro tuto objednávku" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Číslo objednávky" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Stav" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Stav objednávky" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Společnost, od které se položky objednávají" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Reference dodavatele" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Referenční kód objednávky dodavatele" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "přijal" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "Datum dokončení objednávky" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Místo určení" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "Cílové místo pro přijaté položky" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "Dodavatel dílu se musí shodovat s dodavatelem PO" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "Řádková položka neodpovídá nákupní objednávce" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "Řádkové položce chybí propojený díl" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "Množství musí být kladné" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "Sériová čísla nemohou být přiřazena virtuálním dílům" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "Povolit jakékoliv zásoby (serializované nebo neserializované)" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "Pouze serializované zásoby" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "Pouze neserializované zásoby" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Zákazník" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Společnost, jíž se položky prodávají" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "Stav prodejní objednávky" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Reference zákazníka " -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Referenční kód objednávky zákazníka" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Datum odeslání" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "odesláno společností" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "Objednávka je již dokončena" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "Objednávka je již zrušena" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Pouze otevřená objednávka může být označena jako kompletní" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Objednávku nelze dokončit, protože dodávky jsou nekompletní" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "Objednávka nemůže být dokončena, protože jsou neúplné přiřazení" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "Objednávka nemůže být dokončena, protože jsou neúplné řádkové položky" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "Objednávka je uzamčena a nelze ji upravit" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Množství položky" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "Číslo linky" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "Číslo řádku pro tuto položku (nepovinné)" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Označení řádkové položky" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Poznámky k řádkovým položkám" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Cílové datum pro tuto řádkovou položku (pro použití cílového data z objednávky ponechte prázdné)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Popis řádkové položky (nepovinné)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "Dodatečný kontext pro tento řádek" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Cena za jednotku" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "Řádková položka nákupní objednávky" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "Dodavatelský díl musí odpovídat dodavateli" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "Objednávka sestavení musí být označená jako externí" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "Objednávka sestavení může být propojena pouze s montážními díly" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "Výrobní příkaz musí odpovídat lince předmětu dílu" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "Externí výrobní příkaz je vyžadován pro montážní díly" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Díl dodavatele" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Doručeno" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Počet přijatých položek" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Nákupní cena" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Jednotková nákupní cena" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "Externí výrobní příkaz který má být splněn touto linkovou položkou" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "Nákupní příkaz extra linka" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "Řádková položka prodejní objednávky" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "K prodejní objednávce lze přiřadit pouze prodejné díly" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Prodejní cena" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Jednotková prodejní cena" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Odesláno" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Odeslané množství" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "Zásilka prodejní objednávky" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "Adresa zásilky musí odpovídat adrese zákazníka" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "Dodací adresa pro tuto zásilku" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Datum odeslání" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Datum doručení" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Datum doručení zásilky" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Kontroloval(a)" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Uživatel, který zkontroloval tuto zásilku" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Doprava" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Číslo zásilky" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Sledovací číslo" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Informace o sledování zásilky" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Číslo faktury" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Referenční číslo přiřazené faktury" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "Zásilka již byla odeslána" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "Zásilka nemá žádné přidělené skladové položky" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "Zásilka musí být zkontrolována než může být dokončená" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "Prodejní příkaz extra linka" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "Přidělení prodejní objednávky" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "Skladová položka nebyla přiřazena" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "Nelze přidělit skladovou položku na řádek s jiným dílem" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "Nelze přidělit skladovou položku na řádek bez dílu" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Přidělené množství nesmí překročit množství zásob" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Zabrané množství musí být větší než nula" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "Množství musí být 1 pro serializovanou skladovou položku" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "Prodejní objednávka neodpovídá zásilce" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "Zásilka neodpovídá prodejní objednávce" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Řádek" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Odkaz na zásilku z prodejní objednávky" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Položka" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Vyberte skladovou položku pro přidělení" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Zadejte množství pro přidělení zásob" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "Reference návratové objednávky" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Společnost, od které se vrací položky" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "Stav návratové objednávky" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "Linkový předmět vratky" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "Zásobní položka musí být specifikována" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "Množství vratky přesahuje množstvní zásob" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "Množstvní vratky musí být více než nula" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "Neplatné množství pro sériovou skladovou položku" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Vyberte položku pro vrácení od zákazníka" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Datum přijetí" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "Datum příjetí této vratky" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Výsledek" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Výsledky pro tuto položku" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Náklady spojené s návratem nebo opravou této položky" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "Vratka extra linka" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "Reference převodního příkazu" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "Stav převodního příkazu" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "Zdroj pro přenášené položky" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "Cíl pro přenášené položky" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "Spotřebovat zásoby" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "Spíše než převést zásoby na místo určení, \"konzumovat\" je odebráním převedeného množství z přidělených zásob" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "Příkaz nelze dokončit bez uvedené cílové lokace" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "Příkaz nelze dokončit, dokud nebude plně přidělen" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "Převodní příkaz položky" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "převedeno" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "převedené množství" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "Přidělení převodního příkazu" @@ -5692,7 +5696,7 @@ msgstr "Kopírovat extra řádky" msgid "Copy extra line items from the original order" msgstr "Kopírovat extra řádkové položky z původní objednávky" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Kopírovat parametry" @@ -5714,11 +5718,11 @@ msgstr "Dokončené řádky" #: order/serializers.py:132 msgid "Custom Status Key" -msgstr "" +msgstr "Vlastní stavový klíč" #: order/serializers.py:133 msgid "Update order status to a custom value for this logical value" -msgstr "" +msgstr "Aktualizovat stav objednávky na vlastní hodnotu pro tuto logickou hodnotu" #: order/serializers.py:199 msgid "Duplicate Order" @@ -5730,15 +5734,15 @@ msgstr "Specifikujte možnosti pro duplikaci této objednávky" #: order/serializers.py:221 msgid "Custom status key must be an integer" -msgstr "" +msgstr "Vlastní stavový klíč musí být celé číslo" #: order/serializers.py:228 msgid "Invalid custom status key" -msgstr "" +msgstr "Neplatný vlastní stavový klíč" #: order/serializers.py:231 msgid "Invalid custom status key for this order status" -msgstr "" +msgstr "Neplatný vlastní stavový klíč pro stav této objednávky" #: order/serializers.py:305 msgid "Invalid order ID" @@ -5784,11 +5788,11 @@ msgstr "Sloučit položky" msgid "Merge items with the same part, destination and target date into one line item" msgstr "Sloučit položky se stejným dílem, místem určení a cílovým datem do jedné řádkové položky" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "Číslo zboží (SKU)" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Interní číslo dílu" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Zadat kód šarže pro příchozí skladové položky" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Datum expirace" @@ -6056,123 +6060,131 @@ msgstr "Vratka po termínu vrácení" msgid "Return order {ro} is now overdue" msgstr "Vratka {ro} je nyní opožděná" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "Označené" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "Filtrovat podle kategorií s hvězdičkou" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Hloubka" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "Filtrovat podle hloubky kategorie" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "Nejvyšší úroveň" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "Filtrovat podle nejvyšších kategorií" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "Kaskáda" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "Zahrnout podkategorie do filtrovaných výsledků" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "Předek" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "Filtrovat podle nadřazené kategorie" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "Vyloučit podkategorie v zadané kategorii" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "Maximální úroveň" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "Omezení hloubky stromu kategorie" + +#: part/api.py:442 msgid "Has Results" msgstr "Má výsledky" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "Je varianta" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "Je revizí" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "Má revize" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "Kusovník schválen" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "Kaskádové kategorie" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "Pokud je pravda, zahrne položky z podkategorií dané kategorie" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "Filtrovat podle numerického ID kategorie nebo doslovného 'null'" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "Sestavený díl je aktivní" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "Sestavený díl je sledovatelný" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "Sestavený díl je testovatelný" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "Sestavený díl je uzamčen" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "Kompotenta je aktivní" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "Komponenta je sledovatelná" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "Díl komponenty je testovatelný" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "Komponenta je část sestavy" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "Komponenta je virtuální" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "Má dostupné zásoby" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "Využití" @@ -6213,7 +6225,7 @@ msgstr "Výchozí klíčová slova pro díly v této kategorii" msgid "Icon" msgstr "Ikona" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Ikona (volitelná)" @@ -6349,7 +6361,7 @@ msgstr "Klíčová slova dílu pro zlepšení vyhledávání" msgid "Part category" msgstr "Kategorie dílu" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "Interní číslo dílu (IPN)" @@ -6358,7 +6370,7 @@ msgstr "Interní číslo dílu (IPN)" msgid "Part revision or version number" msgstr "Číslo revize nebo verze dílu" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Revize" @@ -6382,7 +6394,7 @@ msgstr "Výchozí expirace" msgid "Expiry time (in days) for stock items of this part" msgstr "Expirační čas (ve dnech) pro zásoby tohoto dílu" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Minimální zásoby na skladě" @@ -6390,7 +6402,7 @@ msgstr "Minimální zásoby na skladě" msgid "Minimum allowed stock level" msgstr "Minimální povolená úroveň zásob" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "Maximální zásoby" @@ -6759,7 +6771,7 @@ msgstr "Poddílec" msgid "Select part to be used in BOM" msgstr "Vyberte díl které bude použit v kusovníku" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "Množství" @@ -6911,351 +6923,351 @@ msgstr "Nadřazená kategorie" msgid "Parent part category" msgstr "Nadřazená kategorie dílu" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Podkategorie" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "Výsledky" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "Počet výsledků zaznamenaných podle této šablony" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Nákupní měna této skladové položky" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "Soubor není obrázek" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Původní díl" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Vyberte původní díl, který má být duplikován" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Kopírovat obrázek" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Kopírovat obrázek z původního dílu" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Kopírovat kusovník" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Kopírovat kusovník z původního dílu" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Kopírovat data parametrů z původního dílu" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Kopírovat poznámky" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "Kopírovat poznámky z původního dílu" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "Kopírovat testy" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "Kopírovat testovací šablony z původního dílu" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Počáteční skladové množství" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Zadejte počáteční skladové množství pro tuto část. Pokud je množství nulové, není přidáno žádné." -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "Počáteční skladové místo" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "Zadejte počáteční skladové místo pro tento díl" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Vyberte dodavatele (nebo nechte prázdné pro přeskočení)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Vyberte výrobce (nebo nechte prázdné pro přeskočení)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Číslo dílu výrobce" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "Vybraná společnost není platný dodavatel" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "Vybraná společnost není platný výrobce" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "Výrobce dílu se stejným MPN již existuje" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "Dodavatelský díl s tímto SKU již existuje" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Název kategorie" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "Budova" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "Množství tohoto dílu, které je v současné době ve výrobě" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "Zbývající množství tohoto dílu, které má být postaveno" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Skladové položky" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "Revize" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Celkem skladem" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "Nezařazené zásoby" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "Skladové varianty" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Duplikovat díl" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "Kopírovat počáteční data z jiného dílu" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Počáteční zásoby" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Vytvořit díl s počátečním množstvím zásob" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Informace o dodavateli" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Přidat počáteční informace dodavatele pro tento díl" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Kopírovat parametry kategorie" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "Kopírovat šablony parametrů z vybrané kategorie dilu" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Stávající obrázek" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "Název souboru existujícího obrázku dílu" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "Obrázek neexistuje" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Schválit celý kusovník" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Lze postavit" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "Vyžadováno pro výrobní objednávku" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "Přířazeno výrobním objednávkám" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "Vyžadováno pro prodejní objednávky" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "Přiřazeno prodejním objednávkám" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "IPN dílu" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "Popis dílu" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "Vyberte díl u kterého chce vytvořit informace inventury (i pro jeho varianty)" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "Vyberte kategorii pro obsažení všech dílů v dané kategorii (a podkategoriích)" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "Vyberte lokaci pro obsažení všech dílů se zásobami na dané lokaci (včetně pod-lokací)" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "Generovat vstupy inventury" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "Uložit vstupy inventury pro vybrané díly" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "Generovat report" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "Generovat report inventury pro vybrané díly" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Minimální cena" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Přespat vypočítanou hodnotu pro minimální cenu" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Měna minimální ceny" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Maximální cena" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "Přespat vypočítanou hodnotu pro maximální cenu" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Měna maximální ceny" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Aktualizovat" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "Aktualizovat cenu pro díl" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Nelze převést z poskytnutých měn na {default_currency}" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "Minimální cena musí být vyšší než maximální cena" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "Maximální cena nesmí být nížší než minimální cena" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "Množství vyžadováno pro tuto položku (může zahrnout jednotky)" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "Vybrat nadřazenou sestavu" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "Vyberte komponentu dílu" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "Neplatný formát množství" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "Vyberte díl pro kopírování kusovníku z" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Odstranit existující data" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Odstranit existující položky kusovníku před kopírováním" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Zahrnout zděděné" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Zahrnout položky kusovníku které jsou zdědené z šablonových dílů" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Přeskočit neplatné řádky" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Povolte tuto možnost pro přeskočení neplatných řádků" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Kopírovat náhradní díly" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "Kopírovat náhradní díly při duplikaci položek kusovníku" @@ -7326,91 +7338,91 @@ msgstr "Činnost nebyla specifikována" msgid "No matching action found" msgstr "Nebyla nalezena odpovídající činnost" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "Pro data čárového kódu nebyla nalezena shoda" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Pro data čárového kódu byla nalezena shoda" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "Model není podporován" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "Instance modelu nebyla nalezena" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "Čárový kód odpovídá existující položce" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "Žádné odpovídající data nebyla nalezena" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "Žádné odpovídající díly dodavatelů nebyly nalezeny" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "Vícero odpovídajících dílů dodavatelů bylo nalezeno" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "Žádný odpovídající plugin pro čárové kódy nebyl nalezen" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "Odpovídající díl dodavatele" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "Položka již byla obdržena" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "Objednávka nenašela\\rŽádnou shodu dílu dodavatele" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "Díl dodavatele nenašel\\rŽádnou shodu objednávky" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "Žádný plugin neodpovídá čárový kód dodavatele" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "Vícero odpovídajících řádkových položek bylo nalezeno" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "Žádná odpovídající řádková položka nebyla nalezena" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "Žádná prodejní objednávka nebyla poskytnuta" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "Čárový kód neodpovídá žádné existující skladové položce" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "Skladová položka se neshoduje s řádkovou položkou" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "Nedostatečný počet zásob" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "Skladová položka byla přidělena prodejní objednávce" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "Nedostatek informací" @@ -7992,7 +8004,7 @@ msgstr "Rámeček" msgid "Print a border around each label" msgstr "Vytisknout okraj kolem každého štítku" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "Na šířku" @@ -8481,136 +8493,136 @@ msgstr "Legal" msgid "Letter" msgstr "Letter" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "Šablona s tímto názvem již existuje" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Název šablony" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "Popis šablony" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "Číslo revize (automatické navýšení)" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "Připojit k modelu při tisku" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "Uložit výstup reportu jako přílohu v instanci propojeného modelu při tisku" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Šablona pro názvy souborů" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "Šablona pro generování názvů souborů" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "Šablona je povolena" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "Cílový typ modelu pro šablonu" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Filtry" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "Filtry dotazů šablon (čárkou oddělený seznam klíčových=dvojic hodnot)" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "Vzorový soubor" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "Velikost stránky pro PDF reporty" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "Vykreslit report v orientaci na šířku" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "Sloučit" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "Vykreslit jeden report proti vybraným položkám" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "Report generován ze šablony {self.name}" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "Chyba syntaxe šablony" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "Chyba při vykreslování reportu" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "Chyba při generování reportu" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "Chyba při slučování výstupů reportu" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Šířka [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Šířka štítku zadaná v mm" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Výška [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Výška štítku uvedená v mm" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "Chyba při tisku štítků" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Úryvek" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Nahlásit soubor úryvku" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Popis souboru úryvku" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Aktivum" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Nahlásit soubor aktiva" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Popis souboru aktiva" @@ -8766,200 +8778,200 @@ msgstr "Žádný výsledek" msgid "Transferred" msgstr "Převedeno" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "Neplatná cesta k media souboru" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "Neplatná cesta ke statickému souboru" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "Soubor aktiva nebyl nalezen" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "Soubor obrázku nebyl nalezen" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "Nebyl zadán žádný obrázek" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "part_image tag vyžaduje instanci dílu" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "company_image tag vyžaduje intanci společnosti" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "Filtrovat dle hloubky lokace" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "Filtrovat dle nejvyšší lokace" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "Zahrnout pod-lokace ve filtrovaných výsledcích" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "Nadřazená místo" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "Filtrovat podle nadřazené lokace" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "Název dílu (citlivost písmen na malá a velká písmena)" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "Název dílu obsahuje (citlivost písmen na malá a velká písmena)" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "Název dílu (regex)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "IPN dílu (citlivost písmen na malá a velká písmena)" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "IPN dílu obsahuje (citlivost písmen na malá a velká písmena)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "IPN dílu (regex)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "Minimální zásoby" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "Maximální zásoby" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Kód stavu" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Externí umístění" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "Spotřebováno výrobním příkazem" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "Nainstalováno v jiné skladové položce" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "Strom dílů" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "Aktualizováno před" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "Aktualizováno po" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "Inventura před" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "Inventura po" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "Má datum inventury" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "Datum expirace ped" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "Datum expirace po" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "Zastaralé" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "Zadejte PK skladové položky, abyste vyloučili danou položku a všechny její potomky" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "Umístění kaskády" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "Pokud je pravda, uveďte předměty v podružených místech dané lokace" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "Filtrovat podle numberické ID lokace nebo doslovného 'null'" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "Množství je povinné" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "Platný díl musí být dodán" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "Daný dodavatelský díl neexistuje" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Dodavatelský díl na nastavenou velikost balení, ale znak use_pack_size není nastaven" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Sériové čísla nemohou být zadána pro díl bez sledovanosti" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "Zahrnout nainstalované" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "Pokud je pravda, zahrne výslekdy testů pro předměty nainstalované pod danou skladovou položku" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "Filtrovat podle číselného ID položky skladu" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "Skladová položka s ID {id} neexistuje" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "Zahrnout varianty" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "Datum po" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "Datum před" @@ -8995,7 +9007,7 @@ msgstr "Vybrat vlastníka" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Skladové položky nelze umístit přímo do strukturálních skladových umístění, ale lze je umístit do podřízených skladových umístění." -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Externí" @@ -9101,7 +9113,7 @@ msgstr "Vyberte odpovídající díl dodavatele pro tuto skladovou položku" msgid "Where is this stock item located?" msgstr "Kde se tato skladová položka nachází?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "Balení, ve kterém je tato skladová položka uložena" @@ -9117,7 +9129,7 @@ msgstr "Je tato položka nainstalována v jiné položce?" msgid "Serial number for this item" msgstr "Sériové číslo pro tuto položku" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Kód šarže pro tuto skladovou položku" @@ -9234,7 +9246,7 @@ msgstr "Skladová položka je ve výrobě" msgid "Serialized stock cannot be merged" msgstr "Serializované zásoby nelze sloučit" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Duplicitní skladové položky" @@ -9398,7 +9410,7 @@ msgstr "Zadejte sériová čísla pro nové položky" msgid "Supplier Part Number" msgstr "Číslo dílu dodavatele" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Expirováno" @@ -9428,8 +9440,8 @@ msgstr "Nebyla poskytnuta žádná skladová položka" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Množství nesmí překročit dostupné skladové množství ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Cílové skladové umístění" @@ -9501,127 +9513,127 @@ msgstr "Vybrat skladové položky pro změnu stavu" msgid "No stock items selected" msgstr "Nejsou vybrány žádné skladové položky" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Podumístění" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "Odstranit skladové položky" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "Odstranit všechny skladové položky obsažené v této lokaci" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "Odstranit podkategorie" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "Odstranit všechny podkategorie obsažené v této lokaci" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "Nadřazené skladové umístění" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "Díl musí být prodejný" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "Položka je přidělena prodejní objednávce" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "Položka je přiřazená v převodní objednávce" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "Položka je přidělena výrobnímu příkazu" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Zákazník, kterému mají být přiděleny skladové položky" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "Vybraná společnost není zákazník" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Poznámky ke skladové položce" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "Musí být poskytnut seznam skladových položek" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Poznámky ke sloučení skladových položek" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Povolit neodpovídající dodavatele" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Povolit sloučení skladových položek s různými díly dodavatele" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Povolit neodpovídající stav" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Povolit sloučení skladových položek s různými stavovými kódy" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "Musí být poskytnuty alespoň dvě skladové položky" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "Beze změny" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Hodnota primárního klíče skladové položky" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "Skladová položka není skladem" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "Skladová položka je již na skladě" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "Množství nesmí být záporné" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Poznámky ke skladovací transakci" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "Nastavit umístění zásob pro počítané položky (volitelné)" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "Sloučit do existující zásoby" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "Sloučit vrácené položky do existujích položek, pokud je to možné" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "Další sériové číslo" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "Předchozí sériové číslo" @@ -9919,7 +9931,7 @@ msgstr "Oprávnění" msgid "Important dates" msgstr "Důležité termíny" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "Token byl zrušen" @@ -9927,163 +9939,163 @@ msgstr "Token byl zrušen" msgid "Token has expired" msgstr "Token vypršel" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "API token" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "API tokeny" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Název tokenu" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Uživatelský název tokenu" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Datum vypršení tokenu" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Naposledy aktivní" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "Čas posledního použití tokenu" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Zrušeno" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Nastavení oprávnění" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Zobrazit" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Oprávnění k zobrazení položek" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Přidat" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Oprávnění přidat položky" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Změnit" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Oprávnění k úpravě položek" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Odstranit" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Oprávnění k odstranění položek" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "Bot" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "Interní" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "Host" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "Jazyk" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "Preferovaný jazyk uživatele" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "Motiv" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "Nastavení webového rozhraní jako JSON - neupravujte ručně!" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "Widgety" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "Nastavení widgetů hlavního panelu jako JSON - neupravujte ručně!" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "Zobrazované jméno" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "Zvolené zobrazované jméno pro uživatele" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "Pozice" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "Název nebo funkce hlavního zaměstnání" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "Zpráva statusu uživatele" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "Informace o umístění uživatele" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "Uživatel aktivně používá systém" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "Upřednostňované kontaktní údaje pro uživatele" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "Typ uživatele" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "Jaký typ uživatele to je?" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "Organizace" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "Primární organizace / přidružení uživatelů" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "Primární skupina" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "Primární skupina uživatele" diff --git a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po index 4020fbff05..1689042d54 100644 --- a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Danish\n" "Language: da_DK\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API endpoint ikke fundet" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Elementer skal angives som en liste" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "Alle filtre må kun bruges med sand" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "Ingen data angivet" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "Dette felt skal være unikt." -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Bruger har ikke tilladelse til at se denne model" @@ -65,11 +65,11 @@ msgstr "Bekræftelse af e-mailadresse" msgid "You must type the same email each time." msgstr "Du skal indtaste den samme e-mail hver gang." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Den indtastede email adresse er ikke gyldig." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Det angivne e-mail domæne er ikke godkendt." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Kunne ikke konvertere {original} til {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Ugyldigt antal angivet" @@ -105,22 +105,22 @@ msgstr "Angiv dato" msgid "Invalid decimal value" msgstr "Ugyldig decimalværdi" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Bemærkninger" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Værdi '{name}' vises ikke i mønsterformat" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Den angivne værdi matcher ikke det påkrævede mønster: " @@ -164,51 +164,51 @@ msgstr "Fjern HTML-tags fra denne værdi" msgid "Data contains prohibited markdown content" msgstr "Data indeholder forbudt markdown indhold" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Forbindelsesfejl" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Serveren svarede med ugyldig statuskode" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Der opstod en fejl" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Serveren svarede med ugyldig Content-Length værdi" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Billedstørrelsen er for stor" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Billeddownload overskred maksimumstørrelsen" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Fjernserver returnerede tomt svar" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "Angivet URL er ikke en gyldig billedfil" @@ -220,117 +220,121 @@ msgstr "Log ind på appen" msgid "Email" msgstr "E-mail" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metadata skal være et python dict objekt" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadata felt, til brug af eksterne plugins" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Forkert formateret mønster" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Ukendt formatnøgle angivet" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Mangler nødvendig formatnøgle" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Referencefelt må ikke være tomt" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Reference skal matche det påkrævede mønster" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Referencenummer er for stort" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Ugyldigt valg" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Navn" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Beskrivelse" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Beskrivelse (valgfri)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Sti" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Markdown noter (valgfri)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Stregkode Data" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Tredjeparts stregkode data" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Stregkode Hash" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Unik hash af stregkode data" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Eksisterende stregkode fundet" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Serverfejl" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "En fejl blev logget af serveren." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Skal være et gyldigt tal" msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Vælg valuta fra tilgængelige muligheder" @@ -521,11 +525,11 @@ msgstr "Kinesisk (forenklet)" msgid "Chinese (Traditional)" msgstr "Kinesisk (traditionelt)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "Opdatering tilgængelig" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "En opdatering til InvenTree er tilgængelig" @@ -537,7 +541,7 @@ msgstr "Ugyldig fysisk enhed" msgid "Not a valid currency code" msgstr "Ikke en gyldig valutakode" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Ordre status" @@ -546,23 +550,23 @@ msgstr "Ordre status" msgid "Parent Build" msgstr "Overordnet produktion" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "Del" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Kategori" @@ -593,7 +597,7 @@ msgstr "Kategori" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Tildelt til Mig" @@ -601,11 +605,11 @@ msgstr "Tildelt til Mig" msgid "Assigned To" msgstr "Tildelt Til" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Oprettet før" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Oprettet efter" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Produktion skal anulleres, før den kan slettes" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Forbrugsvare" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Valgfri" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Sporet" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Ordre Udestående" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Allokeret" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Tilgængelig" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Produktionsordre" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Lokation" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Produktionsordre reference" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Salgsordrereference" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Kilde Lokation" @@ -821,7 +825,7 @@ msgstr "Ekstern Byg" msgid "This build order is fulfilled externally" msgstr "Denne byggeordre er gennemført eksternt" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Destinations Placering" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Produktions statuskode" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Batch Kode" @@ -883,8 +887,8 @@ msgstr "Projekteret afslutningsdato" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Dato for afslutning" @@ -900,7 +904,7 @@ msgstr "Udstedt af" msgid "User who issued this build order" msgstr "Bruger som udstedte denne byggeordre" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Prioritet af denne byggeordre" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Projektkode" @@ -962,9 +966,9 @@ msgstr "" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "" @@ -999,7 +1003,7 @@ msgstr "" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "" @@ -1057,8 +1061,8 @@ msgstr "" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Lagervarer" @@ -1082,7 +1086,7 @@ msgstr "" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Del Navn" @@ -1139,7 +1143,7 @@ msgstr "Automatisk alloker serienumre" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Følgende serienumre findes allerede eller er ugyldige" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "Varen skal være på lager" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "Byg" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Leverandør Del" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "Stykliste Del" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "I Produktion" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Ekstern Lager" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Tilgængelig Lager" @@ -1527,31 +1531,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "Ingen plugin" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "Nøglestrengen skal være unik" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Bruger" @@ -1654,8 +1658,8 @@ msgstr "Bruger" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Pris" @@ -1677,8 +1681,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Aktiv" @@ -1686,7 +1690,7 @@ msgstr "Aktiv" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Token" @@ -1756,7 +1760,7 @@ msgstr "Titel" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "E-mail Tråde" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Nøgle" @@ -2430,7 +2434,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2524,7 +2528,7 @@ msgstr "Filnavn" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "" @@ -2931,7 +2935,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "" @@ -4448,7 +4452,7 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4533,7 +4537,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "" msgid "Sales Order" msgstr "" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Afsendt" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "" @@ -6382,7 +6394,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "" @@ -6390,7 +6402,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8766,200 +8778,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po index 87d9d70f2a..9a26d021ad 100644 --- a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API-Endpunkt nicht gefunden" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Elemente müssen als Liste angegeben werden" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Ungültige Artikelliste angegeben" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "Alle Filter dürfen nur mit true verwendet werden" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "Keine Gegenstände erfüllen die vorgegebenen Kriterien" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "Keine Daten verfügbar" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "Dieses Feld muss eindeutig sein." -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Benutzer hat keine Berechtigung, dieses Modell anzuzeigen" @@ -65,11 +65,11 @@ msgstr "Bestätigung der E-Mail Adresse" msgid "You must type the same email each time." msgstr "E-Mail Adressen müssen übereinstimmen." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Die angegebene primäre E-Mail-Adresse ist ungültig." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Die angegebene E-Mail-Domain ist nicht freigegeben." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Konnte {original} nicht in {unit} umwandeln" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" @@ -105,22 +105,22 @@ msgstr "Datum eingeben" msgid "Invalid decimal value" msgstr "Ungültiger Dezimalwert" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Notizen" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Wert '{name}' hält das Musterformat nicht ein" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Angegebener Wert entspricht nicht dem benötigten Muster: " @@ -164,51 +164,51 @@ msgstr "Entferne HTML-Tags von diesem Wert" msgid "Data contains prohibited markdown content" msgstr "Daten enthalten verbotene Markdown-Inhalte" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Verbindungsfehler" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Server antwortete mit ungültigem Statuscode" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Ausnahme aufgetreten" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Server antwortete mit ungültigem Wert für die Inhaltslänge" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Bild ist zu groß" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Bilddownload überschreitet maximale Größe" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Remote-Server gab leere Antwort zurück" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "Angegebene URL ist kein gültiges Bild" @@ -220,117 +220,121 @@ msgstr "Bei der App anmelden" msgid "Email" msgstr "Email" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Sie müssen die Zwei-Faktor-Authentifizierung aktivieren, bevor Sie etwas tun können." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Fehler beim Ausführen der Plugin Validierung" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metadaten müssen ein Python-Dict Objekt sein" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Plugin Metadaten" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "JSON-Metadatenfeld, für die Verwendung durch externe Plugins" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Falsch formatiertes Muster" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Unbekannter Formatschlüssel angegeben" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Erforderlicher Formatschlüssel fehlt" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Referenz-Feld darf nicht leer sein" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Referenz muss erforderlichem Muster entsprechen" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Referenznummer ist zu groß" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Ungültige Auswahl" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Name" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Beschreibung" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Beschreibung (optional)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Pfad" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Doppelte Namen können nicht unter dem selben Elternteil existieren" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Markdown Notizen (optional)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Barcode-Daten" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Drittanbieter-Barcode-Daten" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Barcode-Hash" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Eindeutiger Hash der Barcode-Daten" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Bestehender Barcode gefunden" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Serverfehler" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Ein Fehler wurde vom Server protokolliert." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Muss eine gültige Nummer sein" msgid "Currency" msgstr "Währung" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Währung aus verfügbaren Optionen auswählen" @@ -521,11 +525,11 @@ msgstr "Chinesisch (Vereinfacht)" msgid "Chinese (Traditional)" msgstr "Chinesisch (Traditionell)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "Update verfügbar" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "Ein Update für InvenTree ist verfügbar" @@ -537,7 +541,7 @@ msgstr "Ungültige physikalische Einheit" msgid "Not a valid currency code" msgstr "Kein gültiger Währungscode" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Bestellstatus" @@ -546,23 +550,23 @@ msgstr "Bestellstatus" msgid "Parent Build" msgstr "Eltern-Bauauftrag" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "Varianten einschließen" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "Varianten einschließen" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "Varianten einschließen" msgid "Part" msgstr "Teil" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Kategorie" @@ -593,7 +597,7 @@ msgstr "Kategorie" msgid "Ancestor Build" msgstr "Vorgänger-Build" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Mir zugewiesen" @@ -601,11 +605,11 @@ msgstr "Mir zugewiesen" msgid "Assigned To" msgstr "Zugewiesen zu" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Erstellt vor" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Erstellt nach" @@ -641,99 +645,99 @@ msgstr "Abgeschlossen vor" msgid "Completed after" msgstr "Abgeschlossen nach" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "Baum ausschließen" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Bauauftrag muss abgebrochen werden, bevor er gelöscht werden kann" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Verbrauchsmaterial" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Optional" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Baugruppe" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Nachverfolgt" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Prüfbar" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Offene Bestellung" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Zugeordnet" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Verbraucht" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Verfügbar" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Bestellt" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Bauauftrag" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Lagerort" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "Bauprodukt" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "Zieldatum muss nach dem Startdatum liegen" msgid "Build Order Reference" msgstr "Bauauftragsreferenz" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Auftrag Referenz" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Quell-Lagerort" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Ziel-Lagerort" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Bau-Statuscode" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Losnummer" @@ -883,8 +887,8 @@ msgstr "geplantes Fertigstellungsdatum" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Zieldatum für Bauauftrag-Fertigstellung." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Fertigstellungsdatum" @@ -900,7 +904,7 @@ msgstr "Aufgegeben von" msgid "User who issued this build order" msgstr "Nutzer der diesen Bauauftrag erstellt hat" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Priorität dieses Bauauftrags" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Projektcode" @@ -962,9 +966,9 @@ msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" @@ -999,7 +1003,7 @@ msgstr "Objekt bauen" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "BestandObjekt ist zu oft zugewiesen" @@ -1057,8 +1061,8 @@ msgstr "BestandObjekt ist zu oft zugewiesen" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Lagerartikel" @@ -1082,7 +1086,7 @@ msgstr "Ziel-Lagerartikel" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Name des Teils" @@ -1139,7 +1143,7 @@ msgstr "Seriennummern automatisch zuweisen" msgid "Automatically allocate required items with matching serial numbers" msgstr "Benötigte Lagerartikel automatisch mit passenden Seriennummern zuweisen" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Die folgenden Seriennummern existieren bereits oder sind ungültig" @@ -1272,7 +1276,7 @@ msgstr "Bauauftragspositionsartikel" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part muss auf dasselbe Teil verweisen wie der Bauauftrag" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "Teil muss auf Lager sein" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "Zusammenbau" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Zuliefererteil" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Varianten zulassen" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "Stücklisten-Position" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "In Produktion" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "Geplant zum Erstellen" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Externes Lager" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Verfügbarer Bestand" @@ -1527,31 +1531,31 @@ msgstr "Überfälliger Bauauftrag" msgid "Build order {bo} is now overdue" msgstr "Bauauftrag {bo} ist jetzt überfällig" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "Link" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "Datei" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "Benutzer hat keine Berechtigung zum Löschen der Anhänge" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "Benutzer hat keine Berechtigung zum Löschen des Anhangs" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "Kein Plugin" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "Schlüsseltext muss eindeutig sein" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Benutzer" @@ -1654,8 +1658,8 @@ msgstr "Benutzer" msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Preis" @@ -1677,8 +1681,8 @@ msgstr "Name für diesen Webhook" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Aktiv" @@ -1686,7 +1690,7 @@ msgstr "Aktiv" msgid "Is this webhook active" msgstr "Ist dieser Webhook aktiv" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Token" @@ -1756,7 +1760,7 @@ msgstr "Titel" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "Gültige Optionen für diesen Parameter (durch Kommas getrennt)" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Aktiviert" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Vorlage" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Kontext" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Schlüssel" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} storniert" msgid "A order that is assigned to you was canceled" msgstr "Eine Bestellung, die Ihnen zugewiesen war, wurde storniert" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Artikel erhalten" @@ -2524,7 +2528,7 @@ msgstr "Dateiname" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "Modelltyp" @@ -2914,8 +2918,8 @@ msgstr "Teile sind standardmäßig Vorlagen" msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Komponente" @@ -2931,7 +2935,7 @@ msgstr "Kaufbar" msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Verkäuflich" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "Fehler, die beim Erstellen von Berichten auftreten, protokollieren" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Seitengröße" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Eine leere Domain ist nicht erlaubt." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Ungültiger Domainname: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "Lieferant ist aktiv" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Hersteller" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Firma" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Kontakt-Email" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Kontakt" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Adresse" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "Link zu Adressinformationen (extern)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Herstellerteil" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Hersteller auswählen" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "MPN" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Zulieferer" @@ -4448,7 +4452,7 @@ msgstr "Zulieferer" msgid "Select supplier" msgstr "Zulieferer auswählen" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Lagerbestandseinheit (SKU) des Zulieferers" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Verpackungen" @@ -4533,7 +4537,7 @@ msgstr "Standard-Währung für diesen Zulieferer" msgid "Company Name" msgstr "Firmenname" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "Auf Lager" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "Fehler" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Gültig" @@ -4838,7 +4842,7 @@ msgstr "Anzahl der zu druckenden Kopien für jedes Label" msgid "Connected" msgstr "Verbunden" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Unbekannt" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Gruppe" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Bestellreferenz" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "Ausstehend" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Erstellt von" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "Hat Preise" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Bestellung" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "Bestellung abgeschlossen" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Internes Teil" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "Bestellung ausstehend" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Fertig" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Bestellung" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Bestellung" msgid "Sales Order" msgstr "Auftrag" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "Rücksendeauftrag" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "Auftragsbeschreibung (optional)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Projektcode für diesen Auftrag auswählen" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Link auf externe Seite" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Zieldatum" @@ -5184,487 +5188,487 @@ msgstr "Ansprechpartner für diesen Auftrag" msgid "Company address for this order" msgstr "Firmenadresse für diesen Auftrag" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Bestell-Referenz" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Status" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Bestellungs-Status" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Firma bei der die Teile bestellt werden" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Zulieferer-Referenz" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Zulieferer Bestellreferenz" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "Empfangen von" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "Datum an dem der Auftrag fertigstellt wurde" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Ziel-Lager" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "Position stimmt nicht mit Kaufauftrag überein" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "Anzahl muss eine positive Zahl sein" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Kunde" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Firma an die die Teile verkauft werden" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Kundenreferenz" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Bestellreferenz" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Versanddatum" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "Versand von" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "Bestellung ist bereits abgeschlossen" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "Bestellung ist bereits storniert" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Nur ein offener Auftrag kann als abgeschlossen markiert werden" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Auftrag kann nicht abgeschlossen werden, da unvollständige Sendungen vorhanden sind" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "Auftrag kann nicht abgeschlossen werden, da es unvollständige Positionen gibt" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Anzahl" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Position - Referenz" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Position - Notizen" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Zieldatum für diesen Einzelposten (leer lassen, um das Zieldatum des Auftrags zu verwenden)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Positionsbeschreibung (optional)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "Zusätzlicher Kontext für diese Zeile" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Stückpreis" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "Lieferantenteil muss mit Lieferant übereinstimmen" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Zuliefererteil" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Empfangen" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Preis" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Preis pro Einheit" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "Nur verkaufbare Teile können einem Auftrag zugewiesen werden" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Verkaufspreis" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Stückverkaufspreis" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Versendet" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Versendete Menge" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Versanddatum" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Lieferdatum" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Versanddatum" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Kontrolliert von" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Benutzer, der diese Sendung kontrolliert hat" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Sendung" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Sendungsnummer" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Sendungsverfolgungsnummer" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Informationen zur Sendungsverfolgung" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Rechnungsnummer" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Referenznummer für zugehörige Rechnung" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "Sendung wurde bereits versandt" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "Sendung hat keine zugewiesene Lagerartikel" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "Lagerartikel wurde nicht zugewiesen" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kann Lagerartikel keiner Zeile mit einem anderen Teil hinzufügen" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "Auftrag gehört nicht zu Sendung" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "Sendung gehört nicht zu Auftrag" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Position" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Sendungsnummer-Referenz" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Position" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Lagerartikel für Zuordnung auswählen" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "Rücksendungsreferenz" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Firma von der die Artikel zurückgeschickt werden" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "Status der Rücksendung" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Artikel zur Rücksendung auswählen" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Empfangsdatum" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Ergebnis" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Ergebnis für dieses Zeilenelement" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Kosten für die Rückgabe oder Reparatur dieses Objektes" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Parameter kopieren" @@ -5784,11 +5788,11 @@ msgstr "Elemente zusammenfügen" msgid "Merge items with the same part, destination and target date into one line item" msgstr "Zusammenführen von Elementen mit dem gleichen Teil, Ziel- und Zieldatum zu einem Zeilenelement" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "Lieferanten-Teilenummer" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Interne Teilenummer" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Losnummer für eingehende Lagerartikel" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Ablaufdatum" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "Markiert" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "Nach markierten Kategorien filtern" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Ebenen" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "Filter nach Kategorietiefe" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "Oberste Ebene" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "Mehrstufig" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "Unterkategorien in gefilterte Ergebnisse einbeziehen" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "Übergeordnetes" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "Nach übergeordneter Kategorie filtern" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "Unterkategorien in der angegebenen Kategorie ausschließen" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "Ergebnisse" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "Verwendet" @@ -6213,7 +6225,7 @@ msgstr "Standard-Stichworte für Teile dieser Kategorie" msgid "Icon" msgstr "Symbol" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Symbol (optional)" @@ -6349,7 +6361,7 @@ msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" msgid "Part category" msgstr "Teile-Kategorie" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "IPN (Interne Produktnummer)" @@ -6358,7 +6370,7 @@ msgstr "IPN (Interne Produktnummer)" msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Version" @@ -6382,7 +6394,7 @@ msgstr "Standard Ablaufzeit" msgid "Expiry time (in days) for stock items of this part" msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Minimaler Bestand" @@ -6390,7 +6402,7 @@ msgstr "Minimaler Bestand" msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Bestand" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "Untergeordnetes Teil" msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "Übergeordnete Kategorie" msgid "Parent part category" msgstr "Übergeordnete Teilkategorie" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Unter-Kategorien" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "Ergebnisse" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "Anzahl der Ergebnisse, die in dieser Vorlage aufgezeichnet wurden" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Kaufwährung dieses Lagerartikels" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Originalteil" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Originalteil zum Duplizieren auswählen" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Bild kopieren" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Bild vom Originalteil kopieren" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Stückliste kopieren" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Stückliste vom Originalteil kopieren" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Parameterdaten vom Originalteil kopieren" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Anmerkungen kopieren" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "Notizen aus Originalteil kopieren" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Start-Bestandsmenge" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Initiale Lagermenge für dieses Teil. Wenn die Menge null ist, wird kein Lagerbestand hinzugefügt." -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "Initialer Lagerort" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "Lagerstandort für dieses Teil angeben" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Lieferant auswählen (oder leer lassen, um zu überspringen)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Hersteller auswählen (oder leer lassen, um zu überspringen)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Hersteller-Teilenummer" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "Ausgewählte Firma ist kein gültiger Lieferant" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "Ausgewählte Firma ist kein gültiger Hersteller" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "Herstellerteil mit dieser MPN existiert bereits" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "Lieferantenteil mit dieser SKU existiert bereits" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Kategoriename" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "Im Bau" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Lagerartikel" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Gesamtbestand" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "Nicht zugewiesenes Lager" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "Alternatives Lager" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Teil duplizieren" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "Initiale Daten von anderem Teil kopieren" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Initialer Lagerbestand" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Erstelle Teil mit Ausgangsbestand" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Lieferanteninformationen" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Lieferanteninformationen zu diesem Teil hinzufügen" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Kategorieparameter kopieren" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "Parametervorlagen aus der ausgewählten Teilkategorie kopieren" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Vorhandenes Bild" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "Dateiname eines vorhandenen Teilbildes" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "Bilddatei existiert nicht" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Gesamte Stückliste validieren" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Herstellbar" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Niedrigster Preis" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Berechneten Wert für Mindestpreis überschreiben" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Mindestpreis Währung" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Höchster Preis" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "Berechneten Wert für maximalen Preis überschreiben" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Maximalpreis Währung" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Aktualisieren" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "Preis für dieses Teil aktualisieren" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Konnte nicht von den angegebenen Währungen in {default_currency} umrechnen" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "Mindestpreis darf nicht größer als der Maximalpreis sein" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "Der Maximalpreis darf nicht kleiner als der Mindestpreis sein" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "Teil auswählen, von dem Stückliste kopiert wird" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Bestehende Daten entfernen" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Vererbtes einschließen" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Ungültige Zeilen überspringen" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Ersatzteile kopieren" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren" @@ -7326,91 +7338,91 @@ msgstr "Keine Aktion angegeben" msgid "No matching action found" msgstr "Keine passende Aktion gefunden" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "Keine Treffer für Barcode" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Treffer für Barcode gefunden" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "Barcode entspricht einem bereits vorhandenen Artikel" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "Keine passenden Teiledaten gefunden" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "Keine passenden Zulieferteile gefunden" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "Mehrere passende Zulieferteile gefunden" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "Zulieferteil zugeordnet" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "Artikel wurde bereits erhalten" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "Mehrere passende Elemente gefunden" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "Kein passendes Element gefunden" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "Barcode stimmt nicht mit einem vorhandenen Lagerartikel überein" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "Lagerartikel stimmt nicht mit dem Element überein" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "Unzureichender Bestand verfügbar" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "Lagerartikel der Bestellung zugeordnet" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "Nicht genügend Informationen" @@ -7992,7 +8004,7 @@ msgstr "Rand" msgid "Print a border around each label" msgstr "Einen Rahmen um jedes Label drucken" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "Querformat" @@ -8481,136 +8493,136 @@ msgstr "US-Legal" msgid "Letter" msgstr "US-Letter" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Vorlagen Name" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "Beschreibung der Vorlage" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Dateinamen-Muster" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Filter" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "Seitengröße für PDF-Berichte" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "Bericht in Querformat anzeigen" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Breite [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Label-Breite in mm" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Höhe [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Label-Höhe in mm" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Schnipsel" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Berichts-Snippet" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Snippet-Beschreibung" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Ressource" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Berichts-Ressource" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Ressource-Beschreibung" @@ -8766,200 +8778,200 @@ msgstr "Kein Ergebnis" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "Bilddatei nicht gefunden" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "part_image tag benötigt eine Bauteilinstanz" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "company_image tag erfordert eine Firmeninstanz" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "Filtern nach Standorttiefe" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "Unterorte in gefilterte Ergebnisse einbeziehen" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "Übergeordneter Ort" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "Filtern nach übergeordnetem Ort" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Statuscode" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Externer Standort" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "Teile-Baum" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "Gültigkeitsdauer vor" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "Gültigkeitsdauer nach" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "überfällig" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "Menge ist erforderlich" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "Gültiges Teil muss angegeben werden" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "Der angegebene Lieferantenartikel existiert nicht" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Das Zulieferteil hat eine Packungsgröße definiert, aber das Kennzeichen use_pack_size ist nicht gesetzt" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Seriennummern können für nicht verfolgbare Teile nicht angegeben werden" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "Besitzer auswählen" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Lagerartikel können nicht direkt an einen strukturellen Lagerort verlegt werden, können aber an einen untergeordneten Lagerort verlegt werden." -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Extern" @@ -9101,7 +9113,7 @@ msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen" msgid "Where is this stock item located?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "Verpackung, in der dieser Lagerartikel gelagert ist" @@ -9117,7 +9129,7 @@ msgstr "Ist dieses Teil in einem anderen verbaut?" msgid "Serial number for this item" msgstr "Seriennummer für dieses Teil" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Losnummer für diesen Lagerartikel" @@ -9234,7 +9246,7 @@ msgstr "Lagerartikel wird aktuell produziert" msgid "Serialized stock cannot be merged" msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Artikel duplizeren" @@ -9398,7 +9410,7 @@ msgstr "Seriennummern für neue Teile eingeben" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "abgelaufen" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Anzahl darf nicht die verfügbare Menge überschreiten ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Ziel-Bestand" @@ -9501,127 +9513,127 @@ msgstr "Lagerartikel auswählen, um den Status zu ändern" msgid "No stock items selected" msgstr "Keine Lagerartikel ausgewählt" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Unter-Lagerorte" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "Übergeordneter Lagerort" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "Teil muss verkaufbar sein" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "Artikel ist einem Kundenauftrag zugeordnet" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "Artikel ist einem Fertigungsauftrag zugeordnet" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Kunde zum Zuweisen von Lagerartikel" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "Ausgewählte Firma ist kein Kunde" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Notizen zur Lagerzuordnung" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "Eine Liste der Lagerbestände muss angegeben werden" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Notizen zur Lagerartikelzusammenführung" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Unterschiedliche Lieferanten erlauben" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Lieferanten erlauben" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Unterschiedliche Status erlauben" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Status-Codes erlauben" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "Mindestens zwei Lagerartikel müssen angegeben werden" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "Keine Änderung" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Primärschlüssel Lagerelement" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Bestandsbewegungsnotizen" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "Nächste Seriennummer" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "Vorherige Seriennummer" @@ -9919,7 +9931,7 @@ msgstr "Berechtigungen" msgid "Important dates" msgstr "wichtige Daten" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "Token wurde widerrufen" @@ -9927,163 +9939,163 @@ msgstr "Token wurde widerrufen" msgid "Token has expired" msgstr "Token ist abgelaufen" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "API Token" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "API-Tokens" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Tokenname" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Benutzerdefinierter Tokenname" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Token Ablaufdatum" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Zuletzt gesehen" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "Das letzte Mal, wo das Token verwendet wurde" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Widerrufen" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Berechtigung geändert" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Ansicht" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Berechtigung Einträge anzuzeigen" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Hinzufügen" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Berechtigung Einträge zu erstellen" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Ändern" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Berechtigungen Einträge zu ändern" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Löschen" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Berechtigung Einträge zu löschen" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "Interne" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "Gast" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "Sprache" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "Bevorzugte Sprache für diesen Benutzer" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "Name anzeigen" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "Organisation" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po index 79f446f068..15494a6421 100644 --- a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "Το API endpoint δε βρέθηκε" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Τα Προϊόντα πρέπει να δοθούν ως λίστα" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Η λίστα Προϊόντων που δόθηκε δεν είναι έγκυρη" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "Το φίλτρο all πρέπει να χρησιμοποιείται μόνο με τιμή true" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "Κανένα Aντικείμενο δεν ταιριάζει στα κριτήρια που δόθηκαν" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "Δεν δόθηκαν δεδομένα" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "Αυτό το πεδίο πρέπει να είναι μοναδικό." -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Δεν έχετε δικαιώματα να το δείτε αυτό" @@ -65,11 +65,11 @@ msgstr "Επιβεβαίωση διεύθυνσης email" msgid "You must type the same email each time." msgstr "Πρέπει να πληκτρολογήσετε το ίδιο email κάθε φορά." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Η παρεχόμενη κύρια διεύθυνση ηλεκτρονικού ταχυδρομείου δεν είναι έγκυρη." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Ο παρεχόμενος τομέας ηλεκτρονικού ταχυδρομείου δεν έχει εγκριθεί." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Δεν ήταν δυνατή η μετατροπή από {original} σε {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Μη έγκυρη ποσότητα" @@ -105,22 +105,22 @@ msgstr "Εισάγετε ημερομηνία" msgid "Invalid decimal value" msgstr "Μη έγκυρη δεκαδική τιμή" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Σημειώσεις" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Η τιμή '{name}' δεν εμφανίζεται σε μορφή μοτίβου" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Η παρεχόμενη τιμή δεν ταιριάζει με το απαιτούμενο απαραραίητη μοτίβο: " @@ -164,51 +164,51 @@ msgstr "Αφαιρέστε τα HTML tags από την τιμή που εισά msgid "Data contains prohibited markdown content" msgstr "Τα δεδομένα περιέχουν απαγορευμένο περιεχόμενο markdown" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Σφάλμα σύνδεσης" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Ο διακομιστής απάντησε με μη έγκυρο κωδικό κατάστασης" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Προέκυψε σφάλμα" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Ο διακομιστής ανταποκρίθηκε με \"Invalid Content-Length value\"" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Η εικόνα είναι πολύ μεγάλη σε μέγεθος" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Η λήψη εικόνας ξεπέρασε το μέγιστο μέγεθος" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Ο διακομιστής επέστρεψε σφάλμα %1$d %2$s" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "Το URL δεν είναι έγκυρο αρχείο εικόνας" @@ -220,117 +220,121 @@ msgstr "Σύνδεση στην εφαρμογή" msgid "Email" msgstr "Email" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Πρέπει να ενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων πριν κάνετε οτιδήποτε άλλο." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Σφάλμα κατά την εκτέλεση επικύρωσης προσθέτου" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Τα μεταδεδομένα πρέπει να είναι ένα αντικείμενο dict python" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Μεταδεδομένα Πρόσθετου" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "JSON πεδίο μεταδεδομένων, για χρήση από εξωτερικά πρόσθετα" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Λανθασμένο μοτίβο" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Δώσατε λάθος μορφή κλειδιού" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Λείπει το απαραίτητο κλειδί" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Το πεδίο δεν μπορεί να είναι άδειο" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Η αναφορά πρέπει να ταιριάζει με το απαιτούμενο μοτίβο" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Ο αριθμός αναφοράς είναι πολύ μεγάλος" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Μη έγκυρη επιλογή" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Όνομα" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Περιγραφή" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Περιγραφή (προαιρετική)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Μονοπάτι" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Διπλότυπα ονόματα δεν μπορούν να υπάρχουν στον ίδιο γονέα" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Σημειώσεις Markdown (προαιρετικό)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Στοιχεία Barcode" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Δεδομένα barcode τρίτων" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Hash barcode" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Μοναδικό hash δεδομένων barcode" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Βρέθηκε υπάρχων barcode" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Σφάλμα διακομιστή" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Ένα σφάλμα έχει καταγραφεί από το διακομιστή." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Πρέπει να είναι αριθμός" msgid "Currency" msgstr "Νόμισμα" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Επιλέξτε νόμισμα από τις διαθέσιμες επιλογές" @@ -521,11 +525,11 @@ msgstr "Κινέζικα (απλοποιημένα)" msgid "Chinese (Traditional)" msgstr "Κινέζικα (Παραδοσιακά)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "Διαθέσιμη ενημέρωση" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "Μια ενημέρωση για το InvenTree είναι διαθέσιμη" @@ -537,7 +541,7 @@ msgstr "Μη έγκυρη φυσική μονάδα" msgid "Not a valid currency code" msgstr "Μη έγκυρος κωδικός συναλλάγματος" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Κατάσταση παραγγελίας" @@ -546,23 +550,23 @@ msgstr "Κατάσταση παραγγελίας" msgid "Parent Build" msgstr "Γονική Κατασκευή" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "Συμπερίληψη παραλλαγών" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "Συμπερίληψη παραλλαγών" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "Συμπερίληψη παραλλαγών" msgid "Part" msgstr "Εξάρτημα" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Κατηγορία" @@ -593,7 +597,7 @@ msgstr "Κατηγορία" msgid "Ancestor Build" msgstr "Πρόγονος κατασκευής" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Ανατεθειμένες σε εμένα" @@ -601,11 +605,11 @@ msgstr "Ανατεθειμένες σε εμένα" msgid "Assigned To" msgstr "Ανατεθεί σε" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Δημιουργήθηκε πριν από" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Δημιουργήθηκε μετά από" @@ -641,99 +645,99 @@ msgstr "Ολοκληρώθηκε πριν από" msgid "Completed after" msgstr "Ολοκληρώθηκε μετά από" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "Ελάχιστη ημερομηνία" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "Μέγιστη ημερομηνία" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "Εξαίρεση δέντρου" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγραφεί" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Αναλώσιμο" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Προαιρετικό" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Συναρμολόγηση" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Υπό παρακολούθηση" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Υπό δοκιμή" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Εκκρεμής παραγγελία" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Κατανεμημένο" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Καταναλωμένο" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Διαθέσιμο" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Σε παραγγελία" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Σειρά Κατασκευής" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Τοποθεσία" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "Έξοδος" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Φιλτράρισμα με βάση το ID του αποθέματος εξόδου. Χρησιμοποιήστε 'null' για να βρείτε μη εγκατεστημένα στοιχεία κατασκευής" @@ -773,9 +777,9 @@ msgstr "Η ημερομηνία στόχος πρέπει να είναι μετ msgid "Build Order Reference" msgstr "Αναφορά Παραγγελίας Κατασκευής" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Κωδικός Παραγγελίας Πωλήσεων" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Τοποθεσία Προέλευσης" @@ -821,7 +825,7 @@ msgstr "Εξωτερική κατασκευή" msgid "This build order is fulfilled externally" msgstr "Αυτή η εντολή κατασκευής εκτελείται εξωτερικά" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Τοποθεσία Προορισμού" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Κωδικός κατάστασης κατασκευής" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Κωδικός Παρτίδας" @@ -883,8 +887,8 @@ msgstr "Ημερομηνία ολοκλήρωσης στόχου" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Ημερομηνία ολοκλήρωσης της κατασκευής. Η κατασκευή θα καθυστερήσει μετά από αυτή την ημερομηνία." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Ημερομηνία ολοκλήρωσης" @@ -900,7 +904,7 @@ msgstr "Εκδόθηκε από" msgid "User who issued this build order" msgstr "Χρήστης που εξέδωσε αυτήν την παραγγελία κατασκευής" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Προτεραιότητα αυτής της εντολής κατασκευής" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Κωδικός Έργου" @@ -962,9 +966,9 @@ msgstr "Η έξοδος κατασκευής δεν ταιριάζει με τη #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" @@ -999,7 +1003,7 @@ msgstr "Αντικείμενο κατασκευής" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Η ποσότητα πρέπει να είναι 1 για σειριακ msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Η καταχωρημένη ποσότητα ({q}) δεν πρέπει να υπερβαίνει τη διαθέσιμη ποσότητα αποθέματος ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Στοιχείο αποθέματος είναι υπερ-κατανεμημένο" @@ -1057,8 +1061,8 @@ msgstr "Στοιχείο αποθέματος είναι υπερ-κατανεμ #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Στοιχείο Αποθέματος" @@ -1082,7 +1086,7 @@ msgstr "Αποθήκη προορισμού" msgid "Build Level" msgstr "Επίπεδο κατασκευής" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Όνομα Προϊόντος" @@ -1139,7 +1143,7 @@ msgstr "Αυτόματη Κατανομή Σειριακών Αριθμών" msgid "Automatically allocate required items with matching serial numbers" msgstr "Αυτόματη κατανομή των απαιτούμενων στοιχείων με τους αντίστοιχους σειριακούς αριθμούς" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Οι παρακάτω σειριακοί αριθμοί υπάρχουν ήδη ή δεν είναι έγκυροι" @@ -1272,7 +1276,7 @@ msgstr "Αντικείμενο Γραμμής Κατασκευής" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part πρέπει να δείχνει στο ίδιο εξάρτημα με τη εντολή κατασκευής" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "Το στοιχείο πρέπει να υπάρχει στο απόθεμα" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "Κατασκευή" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Aντικειμένου προμηθευτή" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Να επιτρέπονται παραλλαγές" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "Στοιχείο BOM" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "Σε παραγωγή" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "Προγραμματισμένο για κατασκευή" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Εξωτερικό απόθεμα" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Διαθέσιμο απόθεμα" @@ -1527,31 +1531,31 @@ msgstr "Εκπρόθεσμη εντολή κατασκευής" msgid "Build order {bo} is now overdue" msgstr "Η εντολή κατασκευής {bo} είναι πλέον εκπρόθεσμη" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "Είναι σύνδεσμος" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "Είναι αρχείο" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "Ο χρήστης δεν έχει δικαίωμα να διαγράψει αυτά τα συνημμένα" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "Ο χρήστης δεν έχει δικαίωμα να διαγράψει αυτό το συνημμένο" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "Η λίστα επιλογών είναι κλειδωμένη" @@ -1571,8 +1575,8 @@ msgstr "Δεν δόθηκαν έγκυροι κωδικοί συναλλάγμα msgid "No plugin" msgstr "Χωρίς πρόσθετο" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "Η συμβολοσειρά κλειδιού πρέπει να είνα #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Χρήστης" @@ -1654,8 +1658,8 @@ msgstr "Χρήστης" msgid "Price break quantity" msgstr "Ποσότητα κλιμακωτής τιμής" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Τιμή" @@ -1677,8 +1681,8 @@ msgstr "Όνομα για αυτό το webhook" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Ενεργό" @@ -1686,7 +1690,7 @@ msgstr "Ενεργό" msgid "Is this webhook active" msgstr "Είναι αυτό το webhook ενεργό" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Token" @@ -1756,7 +1760,7 @@ msgstr "Τίτλος" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "Έγκυρες επιλογές για αυτή την παράμετρ msgid "Selection list for this parameter" msgstr "Λίστα επιλογών για αυτή την παράμετρο" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Ενεργό" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Πρότυπο" @@ -2262,7 +2266,7 @@ msgstr "Ημερομηνία και ώρα της σάρωσης barcode" msgid "URL endpoint which processed the barcode" msgstr "URL endpoint που επεξεργάστηκε το barcode" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Πλαίσιο" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "Νήματα email" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Κλειδί" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} ακυρώθηκε" msgid "A order that is assigned to you was canceled" msgstr "Μια παραγγελία που σας είχε ανατεθεί ακυρώθηκε" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Είδη που παραλήφθηκαν" @@ -2524,7 +2528,7 @@ msgstr "Όνομα αρχείου" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "Τύπος μοντέλου" @@ -2914,8 +2918,8 @@ msgstr "Τα Προϊόντα είναι πρότυπα από προεπιλο msgid "Parts can be assembled from other components by default" msgstr "Τα Προϊόντα μπορούν να συναρμολογούνται από άλλα συστατικά από προεπιλογή" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Συστατικό" @@ -2931,7 +2935,7 @@ msgstr "Αγοράσιμο" msgid "Parts are purchaseable by default" msgstr "Τα Προϊόντα είναι αγοράσιμα από προεπιλογή" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Πωλήσιμο" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "Καταγραφή σφαλμάτων που προκύπτουν κατά τη δημιουργία αναφορών" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Μέγεθος σελίδας" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "Δεν δόθηκε τύπος μοντέλου συνημμένου" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "Μη έγκυρος τύπος μοντέλου συνημμένου" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "Οι ελάχιστες θέσεις δεν μπορούν να είναι περισσότερες από τις μέγιστες" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "Οι μέγιστες θέσεις δεν μπορούν να είναι λιγότερες από τις ελάχιστες" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Δεν επιτρέπεται κενός τομέας." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Μη έγκυρο όνομα τομέα: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "Η τιμή πρέπει να είναι με κεφαλαία" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "Η τιμή πρέπει να είναι έγκυρο όνομα μεταβλητής" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "Ο προμηθευτής είναι ενεργός" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Κατασκευαστής" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Εταιρεία" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Email επικοινωνίας" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Επαφή" @@ -4297,7 +4301,7 @@ msgstr "ΑΦΜ" msgid "Company Tax ID" msgstr "ΑΦΜ εταιρείας" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Διεύθυνση" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "Σύνδεσμος σε πληροφορίες διεύθυνσης (εξωτερικό)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Προϊόν κατασκευαστή" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Επιλογή κατασκευαστή" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "MPN" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "Το συνδεδεμένο προϊόν κατασκευαστή πρέπει να αναφέρεται στο ίδιο βασικό προϊόν" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Προμηθευτής" @@ -4448,7 +4452,7 @@ msgstr "Προμηθευτής" msgid "Select supplier" msgstr "Επιλογή προμηθευτή" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Κωδικός αποθέματος προμηθευτή" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Ελάχιστη χρέωση (π.χ. χρέωση αποθήκευσης)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Συσκευασία" @@ -4533,7 +4537,7 @@ msgstr "Προεπιλεγμένο νόμισμα που χρησιμοποιε msgid "Company Name" msgstr "Όνομα εταιρείας" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "Σε απόθεμα" @@ -4722,7 +4726,7 @@ msgstr "Αρχικά δεδομένα γραμμής" msgid "Errors" msgstr "Σφάλματα" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Έγκυρο" @@ -4838,7 +4842,7 @@ msgstr "Αριθμός αντιτύπων προς εκτύπωση για κά msgid "Connected" msgstr "Συνδεδεμένος" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Άγνωστο" @@ -4942,7 +4946,7 @@ msgstr "Κλειδί ιδιότητας" msgid "Value of the property" msgstr "Τιμή ιδιότητας" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Ομάδα" @@ -4966,118 +4970,118 @@ msgstr "Μέγιστη πρόοδος" msgid "Maximum value for progress type, required if type=progress" msgstr "Μέγιστη τιμή για τύπο προόδου, απαιτείται αν type=progress" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Αναφορά παραγγελίας" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "Σε εκκρεμότητα" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "Έχει κωδικό έργου" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Δημιουργήθηκε από" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "Δημιουργήθηκε πριν" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "Δημιουργήθηκε μετά" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "Έχει ημερομηνία έναρξης" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "Ημερομηνία έναρξης πριν" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "Ημερομηνία έναρξης μετά" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "Έχει ημερομηνία στόχο" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "Ημερομηνία στόχος πριν" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "Ημερομηνία στόχος μετά" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "Έχει τιμολόγηση" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "Ολοκληρώθηκε πριν" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "Ολοκληρώθηκε μετά" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "Εξωτερική εντολή παραγωγής" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Παραγγελία" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "Η παραγγελία ολοκληρώθηκε" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Εσωτερικό προϊόν" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "Η παραγγελία είναι σε εκκρεμότητα" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Ολοκληρώθηκε" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "Έχει αποστολή" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Εντολή αγοράς" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Εντολή αγοράς" msgid "Sales Order" msgstr "Εντολές Πώλησης" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "Εντολή επιστροφής" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "Η διεύθυνση δεν αντιστοιχεί στην επιλε msgid "Order description (optional)" msgstr "Περιγραφή παραγγελίας (προαιρετικά)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Επιλογή κωδικού έργου για αυτή την παραγγελία" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Σύνδεσμος σε εξωτερική σελίδα" @@ -5151,7 +5155,7 @@ msgstr "Ημερομηνία έναρξης" msgid "Scheduled start date for this order" msgstr "Προγραμματισμένη ημερομηνία έναρξης για αυτή την παραγγελία" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Επιθυμητή Προθεσμία" @@ -5184,487 +5188,487 @@ msgstr "Σημείο επαφής για αυτή την παραγγελία" msgid "Company address for this order" msgstr "Διεύθυνση εταιρείας για αυτή την παραγγελία" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Αναφορά παραγγελίας" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Κατάσταση" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Κατάσταση εντολής αγοράς" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Εταιρεία από την οποία παραγγέλνονται τα είδη" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Αναφορά προμηθευτή" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Κωδικός αναφοράς παραγγελίας προμηθευτή" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "παραλήφθηκε από" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "Ημερομηνία ολοκλήρωσης της παραγγελίας" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Προορισμός" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "Προορισμός για τα παραληφθέντα είδη" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "Ο προμηθευτής προϊόντος πρέπει να ταιριάζει με τον προμηθευτή της εντολής αγοράς" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "Η γραμμή δεν αντιστοιχεί στην εντολή αγοράς" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "Στη γραμμή λείπει συνδεδεμένο προϊόν" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "Η ποσότητα πρέπει να είναι θετικός αριθμός" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Πελάτης" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Εταιρεία στην οποία πωλούνται τα είδη" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "Κατάσταση εντολής πώλησης" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Αναφορά πελάτη " -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Κωδικός αναφοράς παραγγελίας πελάτη" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Ημερομηνία αποστολής" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "απεστάλη από" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "Η παραγγελία είναι ήδη ολοκληρωμένη" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "Η παραγγελία είναι ήδη ακυρωμένη" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Μόνο μια ανοικτή παραγγελία μπορεί να σημειωθεί ως ολοκληρωμένη" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Η παραγγελία δεν μπορεί να ολοκληρωθεί καθώς υπάρχουν μη ολοκληρωμένες αποστολές" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "Η παραγγελία δεν μπορεί να ολοκληρωθεί καθώς υπάρχουν μη ολοκληρωμένες δεσμεύσεις αποθέματος" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "Η παραγγελία δεν μπορεί να ολοκληρωθεί καθώς υπάρχουν μη ολοκληρωμένες γραμμές" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "Η παραγγελία είναι κλειδωμένη και δεν μπορεί να τροποποιηθεί" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Ποσότητα είδους" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Αναφορά γραμμής" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Σημειώσεις γραμμής" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Ημερομηνία στόχος για αυτή τη γραμμή (αφήστε κενό για χρήση της ημερομηνίας στόχου από την παραγγελία)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Περιγραφή γραμμής (προαιρετικά)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "Πρόσθετο πλαίσιο για αυτή τη γραμμή" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Τιμή μονάδας" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "Γραμμή εντολής αγοράς" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "Το προϊόν προμηθευτή πρέπει να ταιριάζει με τον προμηθευτή" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "Η εντολή παραγωγής πρέπει να έχει σημειωθεί ως εξωτερική" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "Οι εντολές παραγωγής μπορούν να συνδεθούν μόνο με προϊόντα συναρμολόγησης" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "Το προϊόν της εντολής παραγωγής πρέπει να ταιριάζει με το προϊόν της γραμμής" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Προϊόν προμηθευτή" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Παραλήφθηκε" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Αριθμός ειδών που παραλήφθηκαν" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Τιμή αγοράς" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Τιμή μονάδας αγοράς" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "Εξωτερική εντολή παραγωγής που θα καλυφθεί από αυτή τη γραμμή" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "Επιπλέον γραμμή εντολής αγοράς" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "Γραμμή εντολής πώλησης" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "Μόνο πωλήσιμα προϊόντα μπορούν να αντιστοιχιστούν σε εντολή πώλησης" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Τιμή πώλησης" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Τιμή μονάδας πώλησης" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Αποστάλθηκε" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Ποσότητα που αποστάλθηκε" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "Αποστολή εντολής πώλησης" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "Η διεύθυνση αποστολής πρέπει να αντιστοιχεί στον πελάτη" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "Διεύθυνση αποστολής για αυτή την αποστολή" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Ημερομηνία αποστολής" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Ημερομηνία παράδοσης" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Ημερομηνία παράδοσης της αποστολής" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Έλεγχος από" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Χρήστης που έλεγξε αυτή την αποστολή" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Αποστολή" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Αριθμός αποστολής" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Αριθμός παρακολούθησης" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Πληροφορίες παρακολούθησης αποστολής" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Αριθμός τιμολογίου" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Αριθμός αναφοράς του σχετικού τιμολογίου" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "Η αποστολή έχει ήδη σταλεί" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "Η αποστολή δεν έχει δεσμευμένα είδη αποθέματος" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "Η αποστολή πρέπει να ελεγχθεί πριν μπορέσει να ολοκληρωθεί" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "Επιπλέον γραμμή εντολής πώλησης" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "Δέσμευση αποθέματος εντολής πώλησης" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "Δεν έχει αντιστοιχιστεί είδος αποθέματος" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "Δεν είναι δυνατή η δέσμευση είδους αποθέματος σε γραμμή με διαφορετικό προϊόν" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "Δεν είναι δυνατή η δέσμευση αποθέματος σε γραμμή χωρίς προϊόν" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Η ποσότητα δέσμευσης δεν μπορεί να υπερβαίνει την ποσότητα αποθέματος" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "Η ποσότητα πρέπει να είναι 1 για σειριοποιημένο είδος αποθέματος" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "Η εντολή πώλησης δεν αντιστοιχεί στην αποστολή" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "Η αποστολή δεν αντιστοιχεί στην εντολή πώλησης" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Γραμμή" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Αναφορά αποστολής εντολής πώλησης" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Είδος" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Επιλογή είδους αποθέματος προς δέσμευση" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Εισαγωγή ποσότητας δέσμευσης αποθέματος" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "Αναφορά εντολής επιστροφής" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Εταιρεία από την οποία επιστρέφονται τα είδη" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "Κατάσταση εντολής επιστροφής" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "Γραμμή εντολής επιστροφής" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "Πρέπει να καθοριστεί είδος αποθέματος" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "Η ποσότητα επιστροφής υπερβαίνει την ποσότητα αποθέματος" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "Η ποσότητα επιστροφής πρέπει να είναι μεγαλύτερη από το μηδέν" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "Μη έγκυρη ποσότητα για σειριοποιημένο είδος αποθέματος" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Επιλογή είδους προς επιστροφή από τον πελάτη" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Ημερομηνία παραλαβής" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Έκβαση" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Έκβαση για αυτή τη γραμμή" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Κόστος που σχετίζεται με την επιστροφή ή επισκευή για αυτή τη γραμμή" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "Επιπλέον γραμμή εντολής επιστροφής" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "Αντιγραφή επιπλέον γραμμών" msgid "Copy extra line items from the original order" msgstr "Αντιγραφή επιπλέον γραμμών από την αρχική παραγγελία" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Αντιγραφή παραμέτρων" @@ -5784,11 +5788,11 @@ msgstr "Συγχώνευση ειδών" msgid "Merge items with the same part, destination and target date into one line item" msgstr "Συγχώνευση ειδών με το ίδιο προϊόν, προορισμό και ημερομηνία στόχο σε μία γραμμή" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "SKU" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Εσωτερικός κωδικός προϊόντος" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Εισαγάγετε κωδικό παρτίδας για τα εισερχόμενα είδη αποθέματος" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Ημερομηνία λήξης" @@ -6056,123 +6060,131 @@ msgstr "Εκπρόθεσμη εντολή επιστροφής" msgid "Return order {ro} is now overdue" msgstr "Η εντολή επιστροφής {ro} είναι πλέον εκπρόθεσμη" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "Με αστέρι" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "Φιλτράρισμα κατά κατηγορίες με αστέρι" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Βάθος" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "Φιλτράρισμα κατά βάθος κατηγορίας" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "Ανώτατο επίπεδο" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "Φιλτράρισμα κατά κατηγορίες ανώτατου επιπέδου" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "Κατά κληρονομικότητα" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "Συμπερίληψη υποκατηγοριών στα φιλτραρισμένα αποτελέσματα" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "Γονική" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "Φιλτράρισμα κατά γονική κατηγορία" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "Εξαίρεση υποκατηγοριών κάτω από την καθορισμένη κατηγορία" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "Έχει αποτελέσματα" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "Είναι παραλλαγή" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "Είναι αναθεώρηση" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "Έχει αναθεωρήσεις" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "Έγκυρο BOM" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "Κατηγορίες κατά κληρονομικότητα" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "Αν είναι αληθές, συμπεριλαμβάνονται είδη σε θυγατρικές κατηγορίες της δοσμένης κατηγορίας" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "Φιλτράρισμα κατά αριθμητικό ID κατηγορίας ή τη λέξη 'null'" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "Το προϊόν συναρμολόγησης είναι υπό δοκιμή" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "Το προϊόν Προϊόντος είναι υπό δοκιμή" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "Χρήσεις" @@ -6213,7 +6225,7 @@ msgstr "Προεπιλεγμένες λέξεις-κλειδιά για προϊ msgid "Icon" msgstr "Εικονίδιο" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Εικονίδιο (προαιρετικό)" @@ -6349,7 +6361,7 @@ msgstr "Λέξεις-κλειδιά προϊόντος για βελτίωση msgid "Part category" msgstr "Κατηγορία προϊόντος" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "IPN" @@ -6358,7 +6370,7 @@ msgstr "IPN" msgid "Part revision or version number" msgstr "Αριθμός αναθεώρησης ή έκδοσης προϊόντος" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Αναθεώρηση" @@ -6382,7 +6394,7 @@ msgstr "Προεπιλεγμένη λήξη" msgid "Expiry time (in days) for stock items of this part" msgstr "Χρόνος λήξης (σε ημέρες) για είδη αποθέματος αυτού του προϊόντος" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Ελάχιστο απόθεμα" @@ -6390,7 +6402,7 @@ msgstr "Ελάχιστο απόθεμα" msgid "Minimum allowed stock level" msgstr "Ελάχιστο επιτρεπτό επίπεδο αποθέματος" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "Υποπροϊόν" msgid "Select part to be used in BOM" msgstr "Επιλέξτε προϊόν που θα χρησιμοποιηθεί στο BOM" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "Γονική κατηγορία" msgid "Parent part category" msgstr "Γονική κατηγορία προϊόντος" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Υποκατηγορίες" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "Αποτελέσματα" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "Αριθμός αποτελεσμάτων που έχουν καταγραφεί για αυτό το πρότυπο" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Νόμισμα αγοράς για αυτό το είδος αποθέματος" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "Το αρχείο δεν είναι εικόνα" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Αρχικό προϊόν" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Επιλέξτε αρχικό προϊόν για αντιγραφή" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Αντιγραφή εικόνας" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Αντιγραφή εικόνας από το αρχικό προϊόν" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Αντιγραφή BOM" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Αντιγραφή λίστας υλικών (BOM) από το αρχικό προϊόν" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Αντιγραφή δεδομένων παραμέτρων από το αρχικό προϊόν" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Αντιγραφή σημειώσεων" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "Αντιγραφή σημειώσεων από το αρχικό προϊόν" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "Αντιγραφή δοκιμών" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "Αντιγραφή προτύπων δοκιμών από το αρχικό προϊόν" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Αρχική ποσότητα αποθέματος" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Καθορίστε αρχική ποσότητα αποθέματος για αυτό το προϊόν. Αν η ποσότητα είναι μηδέν, δεν προστίθεται απόθεμα" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "Αρχική τοποθεσία αποθέματος" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "Καθορίστε αρχική τοποθεσία αποθέματος για αυτό το προϊόν" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Επιλέξτε προμηθευτή (ή αφήστε κενό για παράλειψη)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Επιλέξτε κατασκευαστή (ή αφήστε κενό για παράλειψη)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Κωδικός προϊόντος κατασκευαστή" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "Η επιλεγμένη εταιρεία δεν είναι έγκυρος προμηθευτής" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "Η επιλεγμένη εταιρεία δεν είναι έγκυρος κατασκευαστής" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "Υπάρχει ήδη προϊόν κατασκευαστή με αυτό το MPN" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "Υπάρχει ήδη προϊόν προμηθευτή με αυτό το SKU" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Όνομα κατηγορίας" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "Σε παραγωγή" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "Ποσότητα αυτού του προϊόντος που βρίσκεται αυτή τη στιγμή σε παραγωγή" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "Εκκρεμής ποσότητα αυτού του προϊόντος που έχει προγραμματιστεί για παραγωγή" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Είδη αποθέματος" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "Αναθεωρήσεις" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Συνολικό απόθεμα" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "Μη δεσμευμένο απόθεμα" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "Απόθεμα παραλλαγών" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Αντιγραφή προϊόντος" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "Αντιγραφή αρχικών δεδομένων από άλλο προϊόν" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Αρχικό απόθεμα" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Δημιουργία προϊόντος με αρχική ποσότητα αποθέματος" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Πληροφορίες προμηθευτή" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Προσθήκη αρχικών πληροφοριών προμηθευτή για αυτό το προϊόν" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Αντιγραφή παραμέτρων κατηγορίας" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "Αντιγραφή προτύπων παραμέτρων από την επιλεγμένη κατηγορία προϊόντος" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Υπάρχουσα εικόνα" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "Όνομα αρχείου υπάρχουσας εικόνας προϊόντος" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "Το αρχείο εικόνας δεν υπάρχει" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Επικύρωση ολόκληρης της λίστας υλικών (BOM)" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Μπορεί να παραχθεί" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "Απαιτείται για εντολές παραγωγής" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "Δεσμευμένο σε εντολές παραγωγής" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "Απαιτείται για εντολές πώλησης" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "Δεσμευμένο σε εντολές πώλησης" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Ελάχιστη τιμή" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Παράκαμψη υπολογισμένης τιμής για την ελάχιστη τιμή" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Νόμισμα ελάχιστης τιμής" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Μέγιστη τιμή" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "Παράκαμψη υπολογισμένης τιμής για τη μέγιστη τιμή" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Νόμισμα μέγιστης τιμής" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Ενημέρωση" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "Ενημέρωση τιμολόγησης για αυτό το προϊόν" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Δεν ήταν δυνατή η μετατροπή από τα δοθέντα νομίσματα σε {default_currency}" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "Η ελάχιστη τιμή δεν πρέπει να είναι μεγαλύτερη από τη μέγιστη τιμή" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "Η μέγιστη τιμή δεν πρέπει να είναι μικρότερη από την ελάχιστη τιμή" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "Επιλέξτε τη γονική συναρμολόγηση" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "Επιλέξτε το προϊόν Προϊόντος" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "Επιλέξτε προϊόν από το οποίο θα αντιγραφεί το BOM" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Αφαίρεση υπαρχόντων δεδομένων" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Αφαίρεση υπαρχόντων στοιχείων BOM πριν την αντιγραφή" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Συμπερίληψη κληρονομημένων" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Συμπερίληψη στοιχείων BOM που κληρονομούνται από προϊόντα προτύπων" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Παράλειψη μη έγκυρων γραμμών" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Ενεργοποιήστε αυτή την επιλογή για να παραλείπονται οι μη έγκυρες γραμμές" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Αντιγραφή εναλλακτικών προϊόντων" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "Αντιγραφή εναλλακτικών προϊόντων κατά την αντιγραφή στοιχείων BOM" @@ -7326,91 +7338,91 @@ msgstr "Δεν έχει καθοριστεί ενέργεια" msgid "No matching action found" msgstr "Δεν βρέθηκε αντίστοιχη ενέργεια" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "Δεν βρέθηκε αντιστοίχιση για τα δεδομένα barcode" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Βρέθηκε αντιστοίχιση για τα δεδομένα barcode" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "Το μοντέλο δεν υποστηρίζεται" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "Δεν βρέθηκε η συγκεκριμένη εγγραφή του μοντέλου" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "Το barcode αντιστοιχεί σε υπάρχον είδος" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "Δεν βρέθηκαν αντίστοιχα δεδομένα προϊόντος" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "Δεν βρέθηκαν αντίστοιχα προϊόντα προμηθευτή" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "Βρέθηκαν πολλαπλά αντίστοιχα προϊόντα προμηθευτή" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "Δεν βρέθηκε αντίστοιχο πρόσθετο για τα δεδομένα barcode" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "Αντίστοιχο προϊόν προμηθευτή" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "Το είδος έχει ήδη παραληφθεί" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "Δεν υπάρχει πρόσθετο που να ταιριάζει για το barcode προμηθευτή" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "Βρέθηκαν πολλαπλές αντίστοιχες γραμμές" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "Δεν βρέθηκε αντίστοιχη γραμμή" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "Δεν δόθηκε εντολή πώλησης" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "Το barcode δεν αντιστοιχεί σε υπάρχον είδος αποθέματος" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "Το είδος αποθέματος δεν ταιριάζει με τη γραμμή" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "Μη επαρκές διαθέσιμο απόθεμα" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "Το είδος αποθέματος δεσμεύτηκε στην εντολή πώλησης" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "Μη επαρκείς πληροφορίες" @@ -7992,7 +8004,7 @@ msgstr "Περίγραμμα" msgid "Print a border around each label" msgstr "Εκτύπωση περιγράμματος γύρω από κάθε ετικέτα" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "Οριζόντιος προσανατολισμός" @@ -8481,136 +8493,136 @@ msgstr "Legal" msgid "Letter" msgstr "Letter" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "Υπάρχει ήδη αρχείο προτύπου με αυτό το όνομα" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Όνομα προτύπου" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "Περιγραφή προτύπου" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "Αριθμός αναθεώρησης (αυτόματη αύξηση)" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "Συσχέτιση με μοντέλο κατά την εκτύπωση" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "Αποθήκευση του παραγόμενου αναφοράς ως συνημμένου στην συνδεδεμένη εγγραφή μοντέλου κατά την εκτύπωση" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Μοτίβο ονόματος αρχείου" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "Μοτίβο για τη δημιουργία ονομάτων αρχείων" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "Το πρότυπο είναι ενεργό" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "Τύπος μοντέλου-στόχου για το πρότυπο" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Φίλτρα" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "Φίλτρα ερωτημάτων προτύπου (λίστα ζευγών key=value χωρισμένων με κόμμα)" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "Αρχείο προτύπου" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "Μέγεθος σελίδας για αναφορές PDF" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "Απόδοση αναφοράς σε οριζόντιο προσανατολισμό" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "Συγχώνευση" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "Απόδοση μίας ενιαίας αναφοράς για τα επιλεγμένα είδη" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "Αναφορά που δημιουργήθηκε από το πρότυπο {self.name}" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "Σφάλμα σύνταξης προτύπου" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "Σφάλμα κατά την απόδοση της αναφοράς" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "Σφάλμα κατά τη δημιουργία της αναφοράς" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "Σφάλμα κατά τη συγχώνευση των αποτελεσμάτων αναφοράς" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Πλάτος [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Πλάτος ετικέτας, σε mm" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Ύψος [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Ύψος ετικέτας, σε mm" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "Σφάλμα κατά την εκτύπωση ετικετών" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Απόσπασμα" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Αρχείο αποσπάσματος αναφοράς" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Περιγραφή αρχείου αποσπάσματος" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Πόρος" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Αρχείο πόρου αναφοράς" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Περιγραφή αρχείου πόρου" @@ -8766,200 +8778,200 @@ msgstr "Χωρίς αποτέλεσμα" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "Το αρχείο εικόνας δεν βρέθηκε" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "Το tag part_image απαιτεί μία παρουσία Aντικειμένου" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "Το tag company_image απαιτεί ένα Aντικειμένου Company" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "Φιλτράρισμα ανά βάθος τοποθεσίας" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "Φιλτράρισμα κατά τοποθεσίες ανώτατου επιπέδου" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "Συμπερίληψη υποτοποθεσιών στα φιλτραρισμένα αποτελέσματα" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "Γονική τοποθεσία" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "Φιλτράρισμα βάσει γονικής τοποθεσίας" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "Όνομα προϊόντος (χωρίς διάκριση πεζών/κεφαλαίων)" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "Το όνομα προϊόντος περιέχει (χωρίς διάκριση πεζών/κεφαλαίων)" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "Όνομα προϊόντος (regex)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "IPN προϊόντος (χωρίς διάκριση πεζών/κεφαλαίων)" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "Το IPN προϊόντος περιέχει (χωρίς διάκριση πεζών/κεφαλαίων)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "IPN προϊόντος (regex)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "Ελάχιστο απόθεμα" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "Μέγιστο απόθεμα" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Κωδικός κατάστασης" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Εξωτερική τοποθεσία" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "Αναλωμένο από εντολή παραγωγής" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "Εγκατεστημένο σε άλλο είδος αποθέματος" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "Δέντρο προϊόντος" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "Ενημερώθηκε πριν από" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "Ενημερώθηκε μετά από" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "Απογραφή πριν από" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "Απογραφή μετά από" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "Ημερομηνία λήξης πριν από" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "Ημερομηνία λήξης μετά από" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "Παλαιωμένο" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "Δώστε ένα PK είδους αποθέματος για να εξαιρεθεί αυτό και όλοι οι απόγονοί του" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "Διαδοχικές τοποθεσίες" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "Αν είναι true, περιλαμβάνει είδη σε θυγατρικές τοποθεσίες της δεδομένης τοποθεσίας" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "Φιλτράρισμα κατά αριθμητικό ID τοποθεσίας ή τη λέξη 'null'" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "Απαιτείται ποσότητα" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "Πρέπει να δοθεί έγκυρο προϊόν" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "Το δοθέν προϊόν προμηθευτή δεν υπάρχει" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Το προϊόν προμηθευτή έχει ορισμένο μέγεθος συσκευασίας, αλλά η σημαία use_pack_size δεν έχει τεθεί" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Δεν μπορούν να δοθούν σειριακοί αριθμοί για μη ιχνηλάσιμο προϊόν" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "Συμπερίληψη εγκατεστημένων" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "Αν είναι true, περιλαμβάνει αποτελέσματα δοκιμών για είδη που είναι εγκατεστημένα κάτω από το συγκεκριμένο είδος αποθέματος" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "Φιλτράρισμα κατά αριθμητικό ID είδους αποθέματος" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "Είδος αποθέματος με ID {id} δεν υπάρχει" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "Επιλέξτε ιδιοκτήτη" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Τα είδη αποθέματος δεν μπορούν να τοποθετηθούν απευθείας σε δομικές τοποθεσίες αποθέματος, αλλά μπορούν να τοποθετηθούν σε θυγατρικές τοποθεσίες." -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Εξωτερικό" @@ -9101,7 +9113,7 @@ msgstr "Επιλέξτε αντίστοιχο προϊόν προμηθευτή msgid "Where is this stock item located?" msgstr "Πού βρίσκεται αυτό το είδος αποθέματος;" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "Συσκευασία στην οποία αποθηκεύεται αυτό το είδος αποθέματος" @@ -9117,7 +9129,7 @@ msgstr "Είναι αυτό το είδος εγκατεστημένο σε άλ msgid "Serial number for this item" msgstr "Σειριακός αριθμός για αυτό το είδος" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Κωδικός παρτίδας για αυτό το είδος αποθέματος" @@ -9234,7 +9246,7 @@ msgstr "Το είδος αποθέματος βρίσκεται αυτή τη σ msgid "Serialized stock cannot be merged" msgstr "Σειριακό απόθεμα δεν μπορεί να συγχωνευθεί" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Διπλότυπα είδη αποθέματος" @@ -9398,7 +9410,7 @@ msgstr "Εισαγάγετε σειριακούς αριθμούς για νέα msgid "Supplier Part Number" msgstr "Κωδικός προϊόντος προμηθευτή" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Ληγμένο" @@ -9428,8 +9440,8 @@ msgstr "Δεν δόθηκε είδος αποθέματος" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Η ποσότητα δεν πρέπει να υπερβαίνει το διαθέσιμο απόθεμα ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Τοποθεσία προορισμού αποθέματος" @@ -9501,127 +9513,127 @@ msgstr "Επιλέξτε είδη αποθέματος για αλλαγή κα msgid "No stock items selected" msgstr "Δεν επιλέχθηκαν είδη αποθέματος" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Υποτοποθεσίες" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "Γονική τοποθεσία αποθέματος" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "Το προϊόν πρέπει να είναι διαθέσιμο για πώληση" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "Το είδος έχει δεσμευτεί σε εντολή πώλησης" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "Το είδος έχει δεσμευτεί σε εντολή παραγωγής" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Πελάτης στον οποίο θα αποδοθούν τα είδη αποθέματος" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "Η επιλεγμένη εταιρεία δεν είναι πελάτης" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Σημειώσεις απόδοσης αποθέματος" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "Πρέπει να δοθεί λίστα ειδών αποθέματος" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Σημειώσεις συγχώνευσης αποθέματος" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Να επιτρέπονται διαφορετικοί προμηθευτές" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Να επιτρέπεται η συγχώνευση ειδών αποθέματος με διαφορετικά προϊόντα προμηθευτή" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Να επιτρέπεται διαφορετική κατάσταση" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Να επιτρέπεται η συγχώνευση ειδών αποθέματος με διαφορετικούς κωδικούς κατάστασης" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "Πρέπει να δοθούν τουλάχιστον δύο είδη αποθέματος" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "Καμία αλλαγή" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Τιμή πρωτεύοντος κλειδιού StockItem" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "Το είδος δεν βρίσκεται σε απόθεμα" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "Το είδος βρίσκεται ήδη σε απόθεμα" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "Η ποσότητα δεν πρέπει να είναι αρνητική" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Σημειώσεις συναλλαγής αποθέματος" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "Συγχώνευση με υπάρχον απόθεμα" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "Συγχώνευση επιστρεφόμενων ειδών με υπάρχοντα είδη αποθέματος, όπου είναι δυνατό" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "Επόμενος σειριακός αριθμός" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "Προηγούμενος σειριακός αριθμός" @@ -9919,7 +9931,7 @@ msgstr "Δικαιώματα" msgid "Important dates" msgstr "Σημαντικές ημερομηνίες" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "Το διακριτικό έχει ανακληθεί" @@ -9927,163 +9939,163 @@ msgstr "Το διακριτικό έχει ανακληθεί" msgid "Token has expired" msgstr "Το διακριτικό έχει λήξει" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "Διακριτικό API" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "Διακριτικά API" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Όνομα διακριτικού" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Προσαρμοσμένο όνομα διακριτικού" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Ημερομηνία λήξης διακριτικού" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Τελευταία δραστηριότητα" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "Τελευταία φορά που χρησιμοποιήθηκε το διακριτικό" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Έχει ανακληθεί" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Σύνολο δικαιωμάτων" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Προβολή" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Δικαίωμα προβολής Προϊόντων" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Προσθήκη" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Δικαίωμα προσθήκης Προϊόντων" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Τροποποίηση" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Δικαίωμα επεξεργασίας Προϊόντων" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Διαγραφή" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Δικαίωμα διαγραφής Προϊόντων" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "Bot" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "Εσωτερικός" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "Επισκέπτης" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "Γλώσσα" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "Προτιμώμενη γλώσσα χρήστη" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "Θέμα" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "Ρυθμίσεις για το web UI σε μορφή JSON - μην τις επεξεργάζεστε χειροκίνητα!" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "Μικροεφαρμογές" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "Ρυθμίσεις για τα widgets του πίνακα ελέγχου σε μορφή JSON - μην τις επεξεργάζεστε χειροκίνητα!" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "Προβαλλόμενο όνομα" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "Επιλεγμένο προβαλλόμενο όνομα χρήστη" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "Θέση" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "Κύριος επαγγελματικός τίτλος ή θέση" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "Μήνυμα κατάστασης χρήστη" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "Πληροφορίες τοποθεσίας χρήστη" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "Ο χρήστης χρησιμοποιεί ενεργά το σύστημα" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "Προτιμώμενα στοιχεία επικοινωνίας χρήστη" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "Τύπος χρήστη" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "Τι τύπος χρήστη είναι;" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "Οργανισμός" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "Κύριος οργανισμός/φορέας του χρήστη" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "Κύρια ομάδα" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "Κύρια ομάδα του χρήστη" diff --git a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po index 9087544289..21d7d2ba02 100644 --- a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 23:58+0000\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,39 +18,39 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "" @@ -66,11 +66,11 @@ msgstr "" msgid "You must type the same email each time." msgstr "" -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "" @@ -89,7 +89,7 @@ msgid "Could not convert {original} to {unit}" msgstr "" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "" @@ -106,22 +106,22 @@ msgstr "" msgid "Invalid decimal value" msgstr "" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "" @@ -165,51 +165,51 @@ msgstr "" msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "" @@ -221,117 +221,121 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -346,7 +350,7 @@ msgstr "" msgid "Currency" msgstr "" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "" @@ -522,11 +526,11 @@ msgstr "" msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -538,7 +542,7 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "" @@ -547,23 +551,23 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -573,7 +577,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -584,9 +588,9 @@ msgstr "" msgid "Part" msgstr "" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "" @@ -594,7 +598,7 @@ msgstr "" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "" @@ -602,11 +606,11 @@ msgstr "" msgid "Assigned To" msgstr "" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "" @@ -642,99 +646,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -774,9 +778,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -805,7 +809,7 @@ msgstr "" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "" @@ -822,7 +826,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "" @@ -855,7 +859,7 @@ msgid "Build status code" msgstr "" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "" @@ -884,8 +888,8 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "" @@ -901,7 +905,7 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -929,7 +933,7 @@ msgid "Priority of this build order" msgstr "" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "" @@ -963,9 +967,9 @@ msgstr "" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "" @@ -1000,7 +1004,7 @@ msgstr "" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1050,7 +1054,7 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "" @@ -1058,8 +1062,8 @@ msgstr "" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "" @@ -1083,7 +1087,7 @@ msgstr "" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "" @@ -1140,7 +1144,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1273,7 +1277,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "" @@ -1386,8 +1390,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "" @@ -1417,24 +1421,24 @@ msgid "Allow Variants" msgstr "" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "" @@ -1528,31 +1532,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1572,8 +1576,8 @@ msgstr "" msgid "No plugin" msgstr "" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1646,8 +1650,8 @@ msgstr "" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "" @@ -1655,8 +1659,8 @@ msgstr "" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "" @@ -1678,8 +1682,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "" @@ -1687,7 +1691,7 @@ msgstr "" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "" @@ -1757,7 +1761,7 @@ msgstr "" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2173,7 +2177,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "" @@ -2205,8 +2209,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "" @@ -2263,7 +2267,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "" @@ -2385,7 +2389,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "" @@ -2431,7 +2435,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2525,7 +2529,7 @@ msgstr "" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2915,8 +2919,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "" @@ -2932,7 +2936,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "" @@ -3145,7 +3149,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "" @@ -4129,49 +4133,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4200,12 +4204,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "" @@ -4246,7 +4250,7 @@ msgid "Contact email address" msgstr "" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "" @@ -4298,7 +4302,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "" @@ -4391,7 +4395,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "" @@ -4409,7 +4413,7 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4438,10 +4442,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "" @@ -4449,7 +4453,7 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4486,7 +4490,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4534,7 +4538,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "" @@ -4723,7 +4727,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "" @@ -4839,7 +4843,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "" @@ -4943,7 +4947,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "" @@ -4967,118 +4971,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5086,14 +5090,14 @@ msgstr "" msgid "Sales Order" msgstr "" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5136,11 +5140,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5152,7 +5156,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "" @@ -5185,487 +5189,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5693,7 +5697,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "" @@ -5785,11 +5789,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5826,7 +5830,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6057,123 +6061,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6214,7 +6226,7 @@ msgstr "" msgid "Icon" msgstr "" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "" @@ -6350,7 +6362,7 @@ msgstr "" msgid "Part category" msgstr "" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6359,7 +6371,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "" @@ -6383,7 +6395,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "" @@ -6391,7 +6403,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6760,7 +6772,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6912,351 +6924,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7327,91 +7339,91 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7993,7 +8005,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8482,136 +8494,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8767,200 +8779,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8996,7 +9008,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9102,7 +9114,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9118,7 +9130,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9235,7 +9247,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9399,7 +9411,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9429,8 +9441,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9502,127 +9514,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9920,7 +9932,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9928,163 +9940,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po index 652177f82f..addf67b5e2 100644 --- a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "endpoint API no encontrado" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "Se debe proporcionar una lista de elementos para la operación por lotes" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Los artículos deben ser proporcionados como una lista" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Lista de artículos no válida" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "Todos los filtros tienen que ser usados con verdadero" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "Ningún artículo coincide con el criterio proporcionado" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "Sin datos proporcionados" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "Este campo debe ser único." -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "El usuario no tiene permiso para ver este modelo" @@ -65,11 +65,11 @@ msgstr "Confirmación de dirección de email" msgid "You must type the same email each time." msgstr "Debe escribir el mismo correo electrónico cada vez." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "La dirección de correo electrónico principal proporcionada no es válida." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "El dominio de correo electrónico proporcionado no está aprobado." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "No se pudo convertir {original} a {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Cantidad proporcionada no válida" @@ -105,22 +105,22 @@ msgstr "Ingrese la fecha" msgid "Invalid decimal value" msgstr "Número decimal no válido" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Notas" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "El valor '{name}' no aparece en formato de patrón" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "El valor proporcionado no coincide con el patrón requerido: " @@ -164,51 +164,51 @@ msgstr "Eliminar etiquetas HTML de este valor" msgid "Data contains prohibited markdown content" msgstr "Los datos contienen contenido de marcado prohibido" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "URL no válida: falta el nombre de host" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "URL no válida: no se pudo resolver el nombre de host" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "La URL apunta a una dirección IP privada o reservada" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "Demasiadas redirecciones" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Error de conexión" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "El servidor respondió con código de estado no válido" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Se ha producido una excepción" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "El servidor respondió con un valor de longitud de contenido inválido" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "El tamaño de la imagen es demasiado grande" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "La descarga de imagen excedió el tamaño máximo" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "El servidor remoto devolvió una respuesta vacía" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "La URL proporcionada no es un archivo de imagen válido" @@ -220,117 +220,121 @@ msgstr "Iniciar sesión en la aplicación" msgid "Email" msgstr "Correo electrónico" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Debe habilitar la autenticación de doble factor antes de continuar." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Error al ejecutar la validación del plug-in" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Los metadatos deben ser un objeto diccionario de python" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Metadatos del complemento" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "Campo de metadatos JSON, para uso por complementos externos" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Patrón con formato incorrecto" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Clave de formato especificado desconocida" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Falta la clave de formato necesaria" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "El campo de servidor no puede estar vacío" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "La referencia debe coincidir con la expresión regular {pattern}" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "El número de referencia es demasiado grande" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Selección no válida" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Nombre" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Descripción" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Descripción (opcional)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Ruta" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Los nombres duplicados no pueden existir bajo el mismo padre" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Notas de Markdown (opcional)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Datos de código de barras" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Datos de código de barras de terceros" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Hash del Código de barras" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Hash único de datos de código de barras" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Código de barras existente encontrado" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Error de servidor" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Se ha registrado un error por el servidor." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Debe ser un número válido" msgid "Currency" msgstr "Moneda" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Seleccionar moneda de las opciones disponibles" @@ -521,11 +525,11 @@ msgstr "Chino (Simplificado)" msgid "Chinese (Traditional)" msgstr "Chino (Tradicional)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "Actualización disponible" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "Una actualización para InvenTree está disponible" @@ -537,7 +541,7 @@ msgstr "Unidad física inválida" msgid "Not a valid currency code" msgstr "No es un código de moneda válido" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Estado del pedido" @@ -546,23 +550,23 @@ msgstr "Estado del pedido" msgid "Parent Build" msgstr "Construcción o Armado Superior" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "Incluye Variantes" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "Incluye Variantes" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "Incluye Variantes" msgid "Part" msgstr "Parte" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Categoría" @@ -593,7 +597,7 @@ msgstr "Categoría" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Asignado a mí" @@ -601,11 +605,11 @@ msgstr "Asignado a mí" msgid "Assigned To" msgstr "Asignadas a" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Creado antes" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Creado despues" @@ -641,99 +645,99 @@ msgstr "Completado antes" msgid "Completed after" msgstr "Completado después" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "Fecha Mínima" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "Fecha Máxima" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "Excluir Árbol" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "La compilación debe cancelarse antes de poder ser eliminada" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Consumible" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Opcional" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Montaje" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Rastreado" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Comprobable" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Pedido pendiente" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Asignadas" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Agotado" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Disponible" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "En pedido" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Construir órden" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Ubicación" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "Salida" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "La fecha límite debe ser posterior a la fecha de inicio" msgid "Build Order Reference" msgstr "Número de orden de construcción o armado" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Referencia de orden de venta" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Ubicación de la fuente" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Ubicación de destino" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Código de estado de construcción" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Numero de lote" @@ -883,8 +887,8 @@ msgstr "Fecha límite de finalización" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Fecha límite para la finalización de la construcción. La construcción estará vencida después de esta fecha." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Fecha de finalización" @@ -900,7 +904,7 @@ msgstr "Emitido por" msgid "User who issued this build order" msgstr "El usuario que emitió esta orden" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Prioridad de esta orden de construcción" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Código del proyecto" @@ -962,9 +966,9 @@ msgstr "La salida de la construcción no coincide con el orden de construcción" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "La cantidad debe ser mayor que cero" @@ -999,7 +1003,7 @@ msgstr "Ensamblar equipo" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "La cantidad debe ser 1 para el stock serializado" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Cantidad asignada ({q}) no debe exceder la cantidad disponible de stock ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Artículo de stock sobreasignado" @@ -1057,8 +1061,8 @@ msgstr "Artículo de stock sobreasignado" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Artículo de stock" @@ -1082,7 +1086,7 @@ msgstr "Artículo de stock de destino" msgid "Build Level" msgstr "Nivel de construcción" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Nombre de parte" @@ -1139,7 +1143,7 @@ msgstr "Autoasignar Números de Serie" msgid "Automatically allocate required items with matching serial numbers" msgstr "Asignar automáticamente los artículos requeridos con números de serie coincidentes" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Los siguientes números seriales ya existen o son inválidos" @@ -1272,7 +1276,7 @@ msgstr "Crear partida" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part debe apuntar a la misma parte que la orden de construcción" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "El artículo debe estar en stock" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Parte del proveedor" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Permitir variantes" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "Item de Lista de Materiales" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "En producción" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Stock externo" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Stock Disponible" @@ -1527,31 +1531,31 @@ msgstr "Orden de construcción atrasada" msgid "Build order {bo} is now overdue" msgstr "El pedido de construcción {bo} está atrasado" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "¿Es enlace?" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "¿Es archivo?" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "El usuario no tiene permiso para eliminar estos adjuntos" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "El usuario no tiene permiso para eliminar este adjunto" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "Lista de selección bloqueada" @@ -1571,8 +1575,8 @@ msgstr "No se han proporcionado códigos de divisa válidos" msgid "No plugin" msgstr "Sin plugin" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "Cadena de clave debe ser única" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Usuario" @@ -1654,8 +1658,8 @@ msgstr "Usuario" msgid "Price break quantity" msgstr "Cantidad de salto de precio" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Precio" @@ -1677,8 +1681,8 @@ msgstr "Nombre para este webhook" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Activo" @@ -1686,7 +1690,7 @@ msgstr "Activo" msgid "Is this webhook active" msgstr "Está activo este webhook" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Token" @@ -1756,7 +1760,7 @@ msgstr "Título" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "Opciones válidas para este parámetro (separados por comas)" msgid "Selection list for this parameter" msgstr "Lista de selección para este parámetro" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Habilitado" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Plantilla" @@ -2262,7 +2266,7 @@ msgstr "Fecha y hora del escaneo de código de barras" msgid "URL endpoint which processed the barcode" msgstr "Dispositivo URL que procesó el código de barras" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Contexto" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Clave" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} cancelado" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Artículos Recibidos" @@ -2524,7 +2528,7 @@ msgstr "Nombre de Archivo" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "Las partes son plantillas por defecto" msgid "Parts can be assembled from other components by default" msgstr "Las partes pueden ser ensambladas desde otros componentes por defecto" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Componente" @@ -2931,7 +2935,7 @@ msgstr "Comprable" msgid "Parts are purchaseable by default" msgstr "Las partes son comprables por defecto" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Vendible" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "Registrar errores ocurridos al generar reportes" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Tamaño de página" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Un dominio vacío no está permitido." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Nombre de dominio inválido: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Fabricante" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Empresa" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Correo electrónico de contacto" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Contacto" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Dirección" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "Enlace a información de dirección (externa)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Parte del fabricante" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Seleccionar fabricante" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "La parte vinculada del fabricante debe hacer referencia a la misma parte base" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Proveedor" @@ -4448,7 +4452,7 @@ msgstr "Proveedor" msgid "Select supplier" msgstr "Seleccionar proveedor" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Unidad de mantenimiento de stock de proveedores" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Paquetes" @@ -4533,7 +4537,7 @@ msgstr "Moneda predeterminada utilizada para este proveedor" msgid "Company Name" msgstr "Nombre de la empresa" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "En Stock" @@ -4722,7 +4726,7 @@ msgstr "Datos de la fila original" msgid "Errors" msgstr "Errores" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Válido" @@ -4838,7 +4842,7 @@ msgstr "Número de copias a imprimir para cada etiqueta" msgid "Connected" msgstr "Conectado" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Desconocido" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Grupo" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Referencia del pedido" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "Destacado" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "Tiene Código de Proyecto" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Creado por" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "Creado antes de" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "Creado después de" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "Tiene fecha inicial" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "Fecha de inicio anterior" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "Fecha de inicio después" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "Tiene fecha límite" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "Fecha objetivo antes" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "Fecha objetivo después" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "Tiene Precio" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "Completado antes de" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "Completado después de" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Orden" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "Orden completada" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Componente interno" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "Orden pendiente" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Completados" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "Tiene envío" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Orden de compra" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Orden de compra" msgid "Sales Order" msgstr "Orden de Venta" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "Orden de devolución" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "Descripción del pedido (opcional)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Seleccione el código del proyecto para este pedido" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Enlace a Url externa" @@ -5151,7 +5155,7 @@ msgstr "Fecha de inicio" msgid "Scheduled start date for this order" msgstr "Fecha de inicio programada para este pedido" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Fecha objetivo" @@ -5184,487 +5188,487 @@ msgstr "Punto de contacto para este pedido" msgid "Company address for this order" msgstr "Dirección de la empresa para este pedido" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Referencia del pedido" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Estado" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Estado de la orden de compra" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Empresa de la cual se están encargando los artículos" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Referencia del proveedor" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Código de referencia de pedido del proveedor" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "recibido por" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "La fecha de pedido fue completada" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Destinación" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "Destino para los artículos recibidos" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "El proveedor de la parte debe coincidir con el proveedor de PO" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "La partida no coincide con la orden de compra" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "La cantidad debe ser un número positivo" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Cliente" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Empresa a la que se venden los artículos" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "Estado de la orden de venta" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Referencia del cliente " -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Código de referencia de pedido del cliente" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Fecha de envío" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "enviado por" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "La orden ya fue completada" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "La orden ya fue cancelada" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Sólo una orden abierta puede ser marcada como completa" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "El pedido no se puede completar porque hay envíos incompletos" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "El pedido no se puede completar ya que hay asignaciones incompletas" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "El pedido no se puede completar porque hay partidas incompletas" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "Este pedido está bloqueado y no puede ser modificado" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Cantidad del artículo" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Referencia de partida" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Notas de partida" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Fecha objetivo para esta partida (dejar en blanco para usar la fecha de destino de la orden)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Descripción de partida (opcional)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "Contexto adicional para esta línea" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Precio unitario" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "La parte del proveedor debe coincidir con el proveedor" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Parte del proveedor" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Recibido" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Número de artículos recibidos" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Precio de Compra" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Precio de compra unitario" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "Sólo las partes vendibles pueden ser asignadas a un pedido de venta" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Precio de Venta" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Precio de venta unitario" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Enviado" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Cantidad enviada" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Fecha del envío" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Fecha de entrega" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Fecha de entrega del envío" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Revisado por" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Usuario que revisó este envío" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Envío" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Número de envío" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Número de Seguimiento" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Información de seguimiento del envío" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Número de factura" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Número de referencia para la factura asociada" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "El envío ya ha sido enviado" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "El envío no tiene artículos de stock asignados" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "El artículo de stock no ha sido asignado" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "No se puede asignar el artículo de stock a una línea con una parte diferente" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "No se puede asignar stock a una línea sin una parte" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La cantidad de asignación no puede exceder la cantidad de stock" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Cantidad asignada debe ser mayor que cero" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "La cantidad debe ser 1 para el stock serializado" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "La orden de venta no coincide con el envío" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "El envío no coincide con el pedido de venta" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Línea" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Referencia del envío del pedido de venta" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Ítem" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Seleccionar artículo de stock para asignar" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Especificar la cantidad de asignación de stock" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "Referencia de la orden de devolución" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Empresa de la cual se están devolviendo los artículos" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "Estado de la orden de devolución" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Seleccionar el artículo a devolver del cliente" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Fecha de recepción" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Resultado" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Salida para esta partida" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Costo asociado con la devolución o reparación para esta partida" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "Copiar líneas adicionales" msgid "Copy extra line items from the original order" msgstr "Copiar elementos extra de la línea del pedido original" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Copiar Parámetros" @@ -5784,11 +5788,11 @@ msgstr "Combinar artículos" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "SKU" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Número de parte interna" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Introduzca el código de lote para los artículos de almacén entrantes" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Fecha de Expiración" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "Favoritos" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Profundidad" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "Filtrar por profundidad de categoría" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "Nivel superior" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "Filtrar por categorías de nivel superior" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "En cascada" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "Tiene resultados" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "Palabras clave por defecto para partes en esta categoría" msgid "Icon" msgstr "Icono" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Icono (opcional)" @@ -6349,7 +6361,7 @@ msgstr "Palabras clave para mejorar la visibilidad en los resultados de búsqued msgid "Part category" msgstr "Categoría de parte" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "IPN" @@ -6358,7 +6370,7 @@ msgstr "IPN" msgid "Part revision or version number" msgstr "Revisión de parte o número de versión" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Revisión" @@ -6382,7 +6394,7 @@ msgstr "Expiración por defecto" msgid "Expiry time (in days) for stock items of this part" msgstr "Tiempo de expiración (en días) para los artículos de stock de esta parte" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Stock mínimo" @@ -6390,7 +6402,7 @@ msgstr "Stock mínimo" msgid "Minimum allowed stock level" msgstr "Nivel mínimo de stock permitido" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "Sub parte" msgid "Select part to be used in BOM" msgstr "Seleccionar parte a utilizar en BOM" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "Categoría principal de parte" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Subcategorías" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Moneda de compra de ítem de stock" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Parte original" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Seleccione la parte original a duplicar" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Copiar Imagen" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Copiar imagen desde la parte original" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Copiar BOM" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Copiar la factura de materiales de la parte original" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Copiar datos del parámetro de la parte original" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Copiar Notas" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Cantidad Inicial de Stock" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Seleccione proveedor (o déjelo en blanco para saltar)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Seleccionar fabricante (o dejar en blanco para saltar)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Número de parte del fabricante" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "La empresa seleccionada no es un proveedor válido" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "La empresa seleccionada no es un fabricante válido" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Nombre de categoría" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "En construcción" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Elementos de stock" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Inventario Total" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Duplicar Parte" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Stock Inicial" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Crear Parte con cantidad inicial de stock" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Información del proveedor" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Añadir información inicial del proveedor para esta parte" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Copiar Parámetros de Categoría" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "Copiar plantillas de parámetro de la categoría de partes seleccionada" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Imagen Existente" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "El archivo de imagen no existe" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Validación de Lista de Materiales" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Puede construir" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Precio mínimo" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Anular el valor calculado para precio mínimo" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Precio mínimo de moneda" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Precio máximo" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Precio máximo de moneda" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Actualizar" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "El precio mínimo no debe ser mayor que el precio máximo" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "El precio máximo no debe ser inferior al precio mínimo" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "Seleccionar parte de la que copiar BOM" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Eliminar Datos Existentes" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Eliminar artículos BOM existentes antes de copiar" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Incluye Heredado" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Incluye artículos BOM que son heredados de partes con plantillas" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Omitir filas no válidas" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Activar esta opción para omitir filas inválidas" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Copiar partes sustitutas" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "No se especificó ninguna acción" msgid "No matching action found" msgstr "No se encontró ninguna acción coincidente" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "No se encontró ninguna coincidencia para los datos del código de barras" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Coincidencia encontrada para datos de códigos de barras" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "El código de barras coincide con artículo existente" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "No se ha encontrado ningún complemento para datos de código de barras" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "Ningún pedido de venta proporcionado" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "Legal" msgid "Letter" msgstr "Carta" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Nombre de la plantilla" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "Adjuntar al modelo al imprimir" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "Guardar la salida del informe como un archivo adjunto contra la instancia del modelo enlazado al imprimir" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Patrón de Nombre de archivo" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Filtros" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "Tamaño de página para reportes PDF" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Ancho [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Ancho de la etiqueta, especificado en mm" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Altura [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Altura de la etiqueta, especificada en mm" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Fragmento" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Archivo fragmento de informe" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Descripción de archivo de fragmento" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Activo" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Reportar archivo de activos" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Descripción del archivo de activos" @@ -8766,200 +8778,200 @@ msgstr "Sin resultados" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "Ubicación principal" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "Filtrar por ubicación principal" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "Nombre de pieza (insensible a mayúsculas y minúsculas)" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "El nombre de la pieza (insensible a mayúsculas y minúsculas)" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "Nombre de la pieza (expresión regular)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "Pieza IPN (insensible a mayúsculas y minúsculas)" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "Pieza IPN (insensible a mayúsculas y minúsculas)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "Pieza IPN (expresión regular)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "Stock mínimo" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "Stock máximo" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Código de estado" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Ubicación externa" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "Instalado en otro artículo de existencias" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "Árbol de piezas" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "Actualizado antes" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "Actualizado después" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "Inventario antes" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "Inventario después" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "Desactualizado" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "Cantidad requerida" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "Debe suministrarse una parte válida" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "Seleccionar Propietario" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Externo" @@ -9101,7 +9113,7 @@ msgstr "Seleccione una parte del proveedor correspondiente para este artículo d msgid "Where is this stock item located?" msgstr "¿Dónde se encuentra este artículo de stock?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "Empaquetar este artículo de stock se almacena en" @@ -9117,7 +9129,7 @@ msgstr "¿Está este artículo instalado en otro artículo?" msgid "Serial number for this item" msgstr "Número de serie para este artículo" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Código de lote para este artículo de stock" @@ -9234,7 +9246,7 @@ msgstr "El artículo de stock está en producción" msgid "Serialized stock cannot be merged" msgstr "Stock serializado no puede ser combinado" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Artículos de Stock Duplicados" @@ -9398,7 +9410,7 @@ msgstr "Introduzca números de serie para nuevos artículos" msgid "Supplier Part Number" msgstr "Número de pieza del proveedor" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Expirado" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "La cantidad no debe exceder la cantidad disponible de stock ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Ubicación de stock de destino" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Sub-ubicación" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "La parte debe ser vendible" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "El artículo está asignado a una orden de venta" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "El artículo está asignado a una orden de creación" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Cliente para asignar artículos de stock" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "La empresa seleccionada no es un cliente" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Notas de asignación de stock" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "Debe proporcionarse una lista de artículos de stock" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Notas de fusión de stock" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Permitir proveedores no coincidentes" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Permitir fusionar artículos de stock con diferentes partes de proveedor" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Permitir estado no coincidente" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Permitir fusionar artículos de stock con diferentes códigos de estado" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "Debe proporcionar al menos dos artículos de stock" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "Sin cambios" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Valor de clave primaria de Stock" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "No hay existencias del artículo" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Notas de transacción de stock" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "Permisos" msgid "Important dates" msgstr "Fechas importantes" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "Token revocado" @@ -9927,163 +9939,163 @@ msgstr "Token revocado" msgid "Token has expired" msgstr "Token expirado" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "Token del API" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "Tokens del API" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Nombre del token" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Nombre personalizado del token" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Fecha de expiración del token" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Última conexión" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "Última vez que se usó el token" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Revocado" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Permiso establecido" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Vista" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Permiso para ver artículos" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Añadir" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Permiso para añadir artículos" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Cambiar" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Permisos para editar artículos" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Eliminar" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Permiso para eliminar artículos" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po index 27abfd0d65..4da5c62b94 100644 --- a/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Language: es_MX\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "endpoint API no encontrado" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Los artículos deben ser provistos como una lista" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Lista de artículos inválida" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "Todos los filtros sólo deben ser usados como verdaderos" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "Ningún artículo coincide con el criterio proporcionado" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "El usuario no tiene permiso para ver este modelo" @@ -65,11 +65,11 @@ msgstr "Confirmación de dirección de email" msgid "You must type the same email each time." msgstr "Debe escribir el mismo correo electrónico cada vez." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "La dirección de correo electrónico principal proporcionada no es válida." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "El dominio de correo electrónico proporcionado no está aprobado." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "No se pudo convertir {original} a {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Cantidad proporcionada no válida" @@ -105,22 +105,22 @@ msgstr "Ingrese la fecha" msgid "Invalid decimal value" msgstr "Número decimal inválido" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Notas" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "El valor '{name}' no aparece en formato de patrón" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "El valor proporcionado no coincide con el patrón requerido: " @@ -164,51 +164,51 @@ msgstr "Eliminar etiquetas HTML de este valor" msgid "Data contains prohibited markdown content" msgstr "Los datos contienen contenido de markdown prohibido" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Error de conexión" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "El servidor respondió con código de estado no válido" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Se ha producido una excepción" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "El servidor respondió con un valor de longitud de contenido inválido" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "El tamaño de la imagen es demasiado grande" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "La descarga de imagen excedió el tamaño máximo" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "El servidor remoto devolvió una respuesta vacía" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "La URL proporcionada no es un archivo de imagen válido" @@ -220,117 +220,121 @@ msgstr "Iniciar sesión en la aplicación" msgid "Email" msgstr "Correo electrónico" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Debe habilitar la autenticación de doble factor antes de hacer cualquier otra cosa." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Error al ejecutar la validación del plug-in" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Los metadatos deben ser un objeto diccionario de python" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Metadatos del complemento" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "Campo de metadatos JSON, para uso por complementos externos" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Patrón con formato incorrecto" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Clave de formato especificado desconocida" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Falta la clave de formato necesaria" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "El campo de servidor no puede estar vacío" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "La referencia debe coincidir con la expresión regular {pattern}" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "El número de referencia es demasiado grande" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Selección no válida" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Nombre" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Descripción" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Descripción (opcional)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Ruta" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Los nombres duplicados no pueden existir bajo el mismo padre" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Notas de Markdown (opcional)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Datos de código de barras" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Datos de código de barras de terceros" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Hash del Código de barras" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Hash único de datos de código de barras" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Código de barras existente encontrado" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Error de servidor" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Se ha registrado un error por el servidor." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Debe ser un número válido" msgid "Currency" msgstr "Moneda" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Seleccionar moneda de las opciones disponibles" @@ -521,11 +525,11 @@ msgstr "Chino (Simplificado)" msgid "Chinese (Traditional)" msgstr "Chino (Tradicional)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "Unidad física inválida" msgid "Not a valid currency code" msgstr "No es un código de moneda válido" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Estado del pedido" @@ -546,23 +550,23 @@ msgstr "Estado del pedido" msgid "Parent Build" msgstr "Construcción o Armado Superior" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "Incluye Variantes" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "Incluye Variantes" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "Incluye Variantes" msgid "Part" msgstr "Parte" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Categoría" @@ -593,7 +597,7 @@ msgstr "Categoría" msgid "Ancestor Build" msgstr "Construir antepasado" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Asignado a mí" @@ -601,11 +605,11 @@ msgstr "Asignado a mí" msgid "Assigned To" msgstr "Asignadas a" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Creado antes de" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Creado después de" @@ -641,99 +645,99 @@ msgstr "Completado antes de" msgid "Completed after" msgstr "Completado después de" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "La compilación debe cancelarse antes de poder ser eliminada" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Consumible" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Opcional" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Montaje" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Rastreado" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Comprobable" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Pedido pendiente" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Asignadas" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Disponible" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "En pedido" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Construir órden" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Ubicación" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Número de orden de construcción o armado" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Referencia de orden de venta" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Ubicación de la fuente" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Ubicación de destino" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Código de estado de construcción" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Numero de lote" @@ -883,8 +887,8 @@ msgstr "Fecha límite de finalización" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Fecha límite para la finalización de la construcción. La construcción estará vencida después de esta fecha." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Fecha de finalización" @@ -900,7 +904,7 @@ msgstr "Emitido por" msgid "User who issued this build order" msgstr "El usuario que emitió esta orden" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Prioridad de esta orden de construcción" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Código del proyecto" @@ -962,9 +966,9 @@ msgstr "La salida de la construcción no coincide con el orden de construcción" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "La cantidad debe ser mayor que cero" @@ -999,7 +1003,7 @@ msgstr "Ensamblar equipo" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "La cantidad debe ser 1 para el stock serializado" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Cantidad asignada ({q}) no debe exceder la cantidad disponible de stock ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Artículo de stock sobreasignado" @@ -1057,8 +1061,8 @@ msgstr "Artículo de stock sobreasignado" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Artículo de stock" @@ -1082,7 +1086,7 @@ msgstr "Artículo de stock de destino" msgid "Build Level" msgstr "Nivel de construcción" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Nombre de parte" @@ -1139,7 +1143,7 @@ msgstr "Autoasignar Números de Serie" msgid "Automatically allocate required items with matching serial numbers" msgstr "Asignar automáticamente los artículos requeridos con números de serie coincidentes" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Los siguientes números seriales ya existen o son inválidos" @@ -1272,7 +1276,7 @@ msgstr "Crear partida" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part debe apuntar a la misma parte que la orden de construcción" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "El artículo debe estar en stock" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Parte del proveedor" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Permitir variantes" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "Item de Lista de Materiales" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "En producción" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Stock externo" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Stock Disponible" @@ -1527,31 +1531,31 @@ msgstr "Orden de construcción atrasada" msgid "Build order {bo} is now overdue" msgstr "El pedido de construcción {bo} está atrasado" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "¿Es enlace?" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "¿Es archivo?" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "El usuario no tiene permiso para eliminar estos adjuntos" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "El usuario no tiene permiso para eliminar este adjunto" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "Lista de selección bloqueada" @@ -1571,8 +1575,8 @@ msgstr "No se han proporcionado códigos de divisa válidos" msgid "No plugin" msgstr "Sin plugin" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "Cadena de clave debe ser única" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Usuario" @@ -1654,8 +1658,8 @@ msgstr "Usuario" msgid "Price break quantity" msgstr "Cantidad de salto de precio" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Precio" @@ -1677,8 +1681,8 @@ msgstr "Nombre para este webhook" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Activo" @@ -1686,7 +1690,7 @@ msgstr "Activo" msgid "Is this webhook active" msgstr "Está activo este webhook" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Token" @@ -1756,7 +1760,7 @@ msgstr "Título" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "Opciones válidas para este parámetro (separados por comas)" msgid "Selection list for this parameter" msgstr "Lista de selección para este parámetro" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Habilitado" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Plantilla" @@ -2262,7 +2266,7 @@ msgstr "Fecha y hora del escaneo de código de barras" msgid "URL endpoint which processed the barcode" msgstr "Dispositivo URL que procesó el código de barras" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Contexto" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Clave" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} cancelado" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Artículos Recibidos" @@ -2524,7 +2528,7 @@ msgstr "Nombre de Archivo" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "Las partes son plantillas por defecto" msgid "Parts can be assembled from other components by default" msgstr "Las partes pueden ser ensambladas desde otros componentes por defecto" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Componente" @@ -2931,7 +2935,7 @@ msgstr "Comprable" msgid "Parts are purchaseable by default" msgstr "Las partes son comprables por defecto" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Vendible" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "Registrar errores ocurridos al generar reportes" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Tamaño de página" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Un dominio vacío no está permitido." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Nombre de dominio inválido: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Fabricante" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Empresa" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Correo electrónico de contacto" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Contacto" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Dirección" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "Enlace a información de dirección (externa)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Parte del fabricante" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Seleccionar fabricante" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "La parte vinculada del fabricante debe hacer referencia a la misma parte base" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Proveedor" @@ -4448,7 +4452,7 @@ msgstr "Proveedor" msgid "Select supplier" msgstr "Seleccionar proveedor" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Unidad de mantenimiento de stock de proveedores" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Paquetes" @@ -4533,7 +4537,7 @@ msgstr "Moneda predeterminada utilizada para este proveedor" msgid "Company Name" msgstr "Nombre de la empresa" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "En Stock" @@ -4722,7 +4726,7 @@ msgstr "Datos de la fila original" msgid "Errors" msgstr "Errores" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Válido" @@ -4838,7 +4842,7 @@ msgstr "Número de copias a imprimir para cada etiqueta" msgid "Connected" msgstr "Conectado" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Desconocido" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Grupo" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Referencia del pedido" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "Destacado" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "Tiene Código de Proyecto" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Creado por" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "Creado antes de" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "Creado después de" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "Fecha objetivo antes de" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "Fecha objetivo después de" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "Tiene Precio" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "Completado antes de" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "Completado después de" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Orden" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "Orden completada" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Componente interno" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "Orden pendiente" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Completados" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "Tiene envío" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Orden de compra" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Orden de compra" msgid "Sales Order" msgstr "Orden de Venta" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "Orden de devolución" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "Descripción del pedido (opcional)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Seleccione el código del proyecto para este pedido" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Enlace a Url externa" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Fecha objetivo" @@ -5184,487 +5188,487 @@ msgstr "Punto de contacto para este pedido" msgid "Company address for this order" msgstr "Dirección de la empresa para este pedido" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Referencia del pedido" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Estado" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Estado de la orden de compra" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Empresa de la cual se están encargando los artículos" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Referencia del proveedor" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Código de referencia de pedido del proveedor" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "recibido por" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "La fecha de pedido fue completada" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Destinación" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "Destino para los artículos recibidos" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "El proveedor de la parte debe coincidir con el proveedor de PO" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "La partida no coincide con la orden de compra" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "La cantidad debe ser un número positivo" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Cliente" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Empresa a la que se venden los artículos" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "Estado de la orden de venta" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Referencia del cliente " -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Código de referencia de pedido del cliente" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Fecha de envío" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "enviado por" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "La orden ya fue completada" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "La orden ya fue cancelada" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Sólo una orden abierta puede ser marcada como completa" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "El pedido no se puede completar porque hay envíos incompletos" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "El pedido no se puede completar ya que hay asignaciones incompletas" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "El pedido no se puede completar porque hay partidas incompletas" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Cantidad del artículo" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Referencia de partida" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Notas de partida" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Fecha objetivo para esta partida (dejar en blanco para usar la fecha de destino de la orden)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Descripción de partida (opcional)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "Contexto adicional para esta línea" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Precio unitario" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "La parte del proveedor debe coincidir con el proveedor" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Parte del proveedor" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Recibido" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Número de artículos recibidos" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Precio de Compra" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Precio de compra unitario" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "Sólo las partes vendibles pueden ser asignadas a un pedido de venta" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Precio de Venta" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Precio de venta unitario" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Enviado" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Cantidad enviada" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Fecha del envío" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Fecha de entrega" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Fecha de entrega del envío" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Revisado por" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Usuario que revisó este envío" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Envío" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Número de envío" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Número de Seguimiento" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Información de seguimiento del envío" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Número de factura" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Número de referencia para la factura asociada" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "El envío ya ha sido enviado" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "El envío no tiene artículos de stock asignados" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "El artículo de stock no ha sido asignado" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "No se puede asignar el artículo de stock a una línea con una parte diferente" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "No se puede asignar stock a una línea sin una parte" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La cantidad de asignación no puede exceder la cantidad de stock" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Cantidad asignada debe ser mayor que cero" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "La cantidad debe ser 1 para el stock serializado" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "La orden de venta no coincide con el envío" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "El envío no coincide con el pedido de venta" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Línea" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Referencia del envío del pedido de venta" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Ítem" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Seleccionar artículo de stock para asignar" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Especificar la cantidad de asignación de stock" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "Referencia de la orden de devolución" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Empresa de la cual se están devolviendo los artículos" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "Estado de la orden de devolución" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "El artículo de almacén debe ser especificado" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "La cantidad de retorno excede la cantidad de existencias" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "La cantidad de retorno debe ser mayor que cero" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "Cantidad inválida para el artículo de stock serializado" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Seleccionar el artículo a devolver del cliente" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Fecha de recepción" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Resultado" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Salida para esta partida" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Costo asociado con la devolución o reparación para esta partida" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "Copiar líneas adicionales" msgid "Copy extra line items from the original order" msgstr "Copiar partidas extra del pedido original" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Copiar Parámetros" @@ -5784,11 +5788,11 @@ msgstr "Combinar artículos" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "SKU" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Número de parte interna" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Introduzca el código de lote para los artículos de almacén entrantes" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Fecha de Expiración" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "Favoritos" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Profundidad" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "Filtrar por profundidad de categoría" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "Nivel superior" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "Filtrar por categorías de nivel superior" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "En cascada" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "Tiene resultados" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "Palabras clave por defecto para partes en esta categoría" msgid "Icon" msgstr "Icono" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Icono (opcional)" @@ -6349,7 +6361,7 @@ msgstr "Palabras clave para mejorar la visibilidad en los resultados de búsqued msgid "Part category" msgstr "Categoría de parte" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "IPN" @@ -6358,7 +6370,7 @@ msgstr "IPN" msgid "Part revision or version number" msgstr "Revisión de parte o número de versión" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Revisión" @@ -6382,7 +6394,7 @@ msgstr "Expiración por defecto" msgid "Expiry time (in days) for stock items of this part" msgstr "Tiempo de expiración (en días) para los artículos de stock de esta parte" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Stock mínimo" @@ -6390,7 +6402,7 @@ msgstr "Stock mínimo" msgid "Minimum allowed stock level" msgstr "Nivel mínimo de stock permitido" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "Sub parte" msgid "Select part to be used in BOM" msgstr "Seleccionar parte a utilizar en BOM" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "Categoría principal de parte" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Subcategorías" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Moneda de compra de ítem de stock" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Parte original" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Seleccione la parte original a duplicar" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Copiar Imagen" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Copiar imagen desde la parte original" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Copiar BOM" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Copiar la factura de materiales de la parte original" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Copiar datos del parámetro de la parte original" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Copiar Notas" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Cantidad Inicial de Stock" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Seleccione proveedor (o déjelo en blanco para saltar)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Seleccionar fabricante (o dejar en blanco para saltar)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Número de parte del fabricante" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "La empresa seleccionada no es un proveedor válido" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "La empresa seleccionada no es un fabricante válido" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Nombre de categoría" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "En construcción" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Elementos de stock" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Inventario Total" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Duplicar Parte" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Stock Inicial" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Crear Parte con cantidad inicial de stock" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Información del proveedor" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Añadir información inicial del proveedor para esta parte" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Copiar Parámetros de Categoría" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "Copiar plantillas de parámetro de la categoría de partes seleccionada" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Imagen Existente" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "El archivo de imagen no existe" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Validación de Lista de Materiales" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Puede construir" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Precio mínimo" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Anular el valor calculado para precio mínimo" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Precio mínimo de moneda" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Precio máximo" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Precio máximo de moneda" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Actualizar" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "El precio mínimo no debe ser mayor que el precio máximo" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "El precio máximo no debe ser inferior al precio mínimo" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "Seleccionar parte de la que copiar BOM" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Eliminar Datos Existentes" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Eliminar artículos BOM existentes antes de copiar" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Incluye Heredado" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Incluye artículos BOM que son heredados de partes con plantillas" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Omitir filas no válidas" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Activar esta opción para omitir filas inválidas" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Copiar partes sustitutas" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "No se especificó ninguna acción" msgid "No matching action found" msgstr "No se encontró ninguna acción coincidente" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "No se encontró ninguna coincidencia para los datos del código de barras" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Coincidencia encontrada para datos de códigos de barras" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "El código de barras coincide con artículo existente" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "No se ha encontrado ningún complemento para datos de código de barras" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "Ningún complemento coincide con el código de barras del proveedor" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "Ningún pedido de venta proporcionado" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "Legal" msgid "Letter" msgstr "Carta" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Nombre de la plantilla" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "Adjuntar al modelo al imprimir" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "Guardar la salida del informe como un archivo adjunto contra la instancia del modelo enlazado al imprimir" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Patrón de Nombre de archivo" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Filtros" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "Tamaño de página para reportes PDF" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Ancho [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Ancho de la etiqueta, especificado en mm" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Altura [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Altura de la etiqueta, especificada en mm" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Fragmento" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Archivo fragmento de informe" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Descripción de archivo de fragmento" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Activo" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Reportar archivo de activos" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Descripción del archivo de activos" @@ -8766,200 +8778,200 @@ msgstr "Sin resultados" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "Ubicación principal" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "Filtrar por ubicación principal" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "Nombre de pieza (insensible a mayúsculas y minúsculas)" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "El nombre de la pieza contiene (insensible a mayúsculas y minúsculas)" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "Nombre de la pieza (expresión regular)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "IPN de Pieza (insensible a mayúsculas y minúsculas)" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "IPN de pieza contiene (insensible a mayúsculas y minúsculas)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "IPN de Pieza (expresión regular)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "Existencias mínimas" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "Existencias máximas" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Código de estado" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Ubicación externa" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "Consumido por orden de construcción" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "Instalado en otro artículo de existencias" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "Árbol de piezas" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "Actualizado antes de" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "Actualizado después de" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "Inventario antes de" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "Inventario después de" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "Desactualizado" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "Cantidad requerida" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "Debe suministrarse una parte válida" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "Seleccionar Propietario" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Externo" @@ -9101,7 +9113,7 @@ msgstr "Seleccione una parte del proveedor correspondiente para este artículo d msgid "Where is this stock item located?" msgstr "¿Dónde se encuentra este artículo de stock?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "Empaquetar este artículo de stock se almacena en" @@ -9117,7 +9129,7 @@ msgstr "¿Está este artículo instalado en otro artículo?" msgid "Serial number for this item" msgstr "Número de serie para este artículo" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Código de lote para este artículo de stock" @@ -9234,7 +9246,7 @@ msgstr "El artículo de stock está en producción" msgid "Serialized stock cannot be merged" msgstr "Stock serializado no puede ser combinado" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Artículos de Stock Duplicados" @@ -9398,7 +9410,7 @@ msgstr "Introduzca números de serie para nuevos artículos" msgid "Supplier Part Number" msgstr "Número de pieza del proveedor" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Expirado" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "La cantidad no debe exceder la cantidad disponible de stock ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Ubicación de stock de destino" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Sub-ubicación" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "La parte debe ser vendible" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "El artículo está asignado a una orden de venta" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "El artículo está asignado a una orden de creación" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Cliente para asignar artículos de stock" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "La empresa seleccionada no es un cliente" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Notas de asignación de stock" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "Debe proporcionarse una lista de artículos de stock" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Notas de fusión de stock" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Permitir proveedores no coincidentes" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Permitir fusionar artículos de stock con diferentes partes de proveedor" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Permitir estado no coincidente" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Permitir fusionar artículos de stock con diferentes códigos de estado" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "Debe proporcionar al menos dos artículos de stock" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "Sin cambios" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Valor de clave primaria de Stock" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "No hay existencias del artículo" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Notas de transacción de stock" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "Permisos" msgid "Important dates" msgstr "Fechas importantes" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "Token revocado" @@ -9927,163 +9939,163 @@ msgstr "Token revocado" msgid "Token has expired" msgstr "Token expirado" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "Token del API" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "Tokens del API" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Nombre del token" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Nombre personalizado del token" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Fecha de expiración del token" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Última conexión" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "Última vez que se usó el token" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Revocado" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Permiso establecido" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Vista" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Permiso para ver artículos" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Añadir" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Permiso para añadir artículos" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Cambiar" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Permisos para editar artículos" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Eliminar" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Permiso para eliminar artículos" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po index e3b9fa7eaa..6dc901ad1b 100644 --- a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Estonian\n" "Language: et_EE\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Teil ei ole selle lehe vaatamiseks luba" @@ -65,11 +65,11 @@ msgstr "E-posti aadressi kinnitus" msgid "You must type the same email each time." msgstr "" -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "" @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "" @@ -105,22 +105,22 @@ msgstr "Pane kuupäev" msgid "Invalid decimal value" msgstr "" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Märkmed" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "" @@ -164,51 +164,51 @@ msgstr "" msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Ühenduse viga" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Esines tõrge" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "" @@ -220,117 +220,121 @@ msgstr "" msgid "Email" msgstr "E-post" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Vigane valik" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Nimi" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Kirjeldus" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Kirjeldus (valikuline)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Tee" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Serveri viga" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "" msgid "Currency" msgstr "Valuuta" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "" @@ -521,11 +525,11 @@ msgstr "Hiina (lihtsustatud)" msgid "Chinese (Traditional)" msgstr "Hiina (traditsiooniline)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "" @@ -546,23 +550,23 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "Osa" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "" @@ -593,7 +597,7 @@ msgstr "" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "" @@ -601,11 +605,11 @@ msgstr "" msgid "Assigned To" msgstr "Määratud" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Valikuline" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Jälgitud" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Saadaval" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Asukoht" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "" @@ -883,8 +887,8 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "" @@ -900,7 +904,7 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "" @@ -962,9 +966,9 @@ msgstr "" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "" @@ -999,7 +1003,7 @@ msgstr "" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "" @@ -1057,8 +1061,8 @@ msgstr "" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "" @@ -1082,7 +1086,7 @@ msgstr "" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Osa nimi" @@ -1139,7 +1143,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Saadaval laos" @@ -1527,31 +1531,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "On link" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "On fail" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "Pluginat pole" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "" @@ -1654,8 +1658,8 @@ msgstr "" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "" @@ -1677,8 +1681,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "" @@ -1686,7 +1690,7 @@ msgstr "" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "" @@ -1756,7 +1760,7 @@ msgstr "Pealkiri" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Mall" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Kontekst" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Võti" @@ -2430,7 +2434,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2524,7 +2528,7 @@ msgstr "Failinimi" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "Mudeli liik" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Komponent" @@ -2931,7 +2935,7 @@ msgstr "Ostetav" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Lehe suurus" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Tootja" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Ettevõte" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Kontakt e-postiaadress" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Aadress" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Tarnija" @@ -4448,7 +4452,7 @@ msgstr "Tarnija" msgid "Select supplier" msgstr "Vali tarnija" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4533,7 +4537,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Grupp" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "" msgid "Sales Order" msgstr "" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Staatus" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Müügihind" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Saadetud" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Saadetis" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Rida" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "Kopeeri lisareaüksused algsest tellimusest" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Kopeeri parameetrid" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "Tootekood" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Sügavus" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "Ikoon" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Ikoon (valikuline)" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "Osa kategooria" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "" @@ -6382,7 +6394,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Minimaalne laoseis" @@ -6390,7 +6402,7 @@ msgstr "Minimaalne laoseis" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Originaalosa" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Kopeeri pilt" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Kategooria nimi" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "Ehitamine" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Tarnija info" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Minimaalne hind" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Maksimaalne hind" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Uuenda" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "Piirjoon" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "Lisa mudelile printimisel" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "Salvesta aruande väljund manusega seotud mudeli eksemplari juurde printimisel" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Filtrid" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "Mallifaili" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8766,200 +8778,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "Tarnija osa number" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "Õigused" msgid "Important dates" msgstr "Olulised kuupäevad" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "API tunnus" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "API tunnused" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Lunnuse nimi" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Kohandatud tunnuse nimi" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Tunnuse aegumise kuupäev" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Viimati nähtud" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Tühistatud" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Vaade" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Muuda" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Kustuta" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po index 88ddde11a0..de988bd3c3 100644 --- a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Persian\n" "Language: fa_IR\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "Address e API peida nashod" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "موارد باید به صورت لیست ارائه شود" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "لیست موارد نامعتبر ارائه شده است" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "تمامی فیلترها باید منحصراً با مقدار true مورد استفاده قرار گیرند" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "هیچ موردی با معیارهای ارائه شده مطابقت ندارد" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "کاربر سطح دسترسی نمایش این مدل را ندارد" @@ -65,11 +65,11 @@ msgstr "تایید آدرس ایمیل" msgid "You must type the same email each time." msgstr "هر بار باید همان ایمیل را تایپ کنید." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "آدرس ایمیل اصلی ارائه شده معتبر نیست." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "دامنه ایمیل ارائه شده تایید نشده است." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "نمی‌توان {original} را به {unit} تبدیل کرد" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "مقدار ارائه شده نامعتبر است" @@ -105,22 +105,22 @@ msgstr "تاریخ را وارد کنید" msgid "Invalid decimal value" msgstr "مقدار اعشاری نامعتبر است" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "یادداشت" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "مقدار '{name}' در قالب الگو ظاهر قرار نمی گیرد" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "مقدار ارائه شده با الگوی مورد نیاز مطابقت ندارد: " @@ -164,51 +164,51 @@ msgstr "برچسب های HTML را از این مقدار حذف کنید" msgid "Data contains prohibited markdown content" msgstr "داده ها حاوی محتوای علامت گذاری ممنوع است" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "خطا در اتصال" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "سرور با کد وضعیت نامعتبر پاسخ داد" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "یک استثنا رخ داده است" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "سرور با مقدار طول محتوا نامعتبر پاسخ داد" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "اندازه عکس بسیار بزرگ است" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "حجم دانلود تصویر از حداکثر اندازه بیشتر شده است" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "سرور ریموت پاسخ خالی را برگرداند" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "URL ارائه شده یک فایل تصویری معتبر نیست" @@ -220,117 +220,121 @@ msgstr "وارد برنامه شوید" msgid "Email" msgstr "ایمیل" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "قبل از انجام هر کار دیگری باید احراز هویت دو مرحله ای را فعال کنید." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "خطا در اجرای تأیید اعتبار افزونه" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "فراداده باید یک شیء دیکت پایتون باشد" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "فراداده افزونه" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "فیلد فراداده JSON، برای استفاده توسط افزونه های خارجی" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "الگوی فرمت نامناسب" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "کلید قالب ناشناخته مشخص شده است" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "کلید قالب مورد نیاز وجود ندارد" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "فیلد مرجع نمی تواند خالی باشد" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "مرجع باید با الگوی مورد نیاز مطابقت داشته باشد" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "شماره مرجع خیلی بزرگ است" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "انتخاب نامعتبر" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "نام" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "توضیحات" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "توضیحات (اختیاری)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "مسیر" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "نام‌های تکراری نمی‌توانند تحت یک والد وجود داشته باشند" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "یادداشت های علامت گذاری (اختیاری)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "داده های بارکد" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "داده های بارکد شخص ثالث" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "هش بارکد" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "هش منحصر به فرد داده های بارکد" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "بارکد موجود پیدا شد" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "خطای سرور" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "یک خطا توسط سرور ثبت شده است." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "باید یک عدد معتبر باشد" msgid "Currency" msgstr "ارز" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "ارز را از گزینه های موجود انتخاب کنید" @@ -521,11 +525,11 @@ msgstr "چینی (ساده شده)" msgid "Chinese (Traditional)" msgstr "چینی (سنتی)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "واحد فیزیکی نامعتبر" msgid "Not a valid currency code" msgstr "کد ارز معتبر" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "وضعیت سفارش" @@ -546,23 +550,23 @@ msgstr "وضعیت سفارش" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "قطعه" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "دسته" @@ -593,7 +597,7 @@ msgstr "دسته" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "واگذار شده به من" @@ -601,11 +605,11 @@ msgstr "واگذار شده به من" msgid "Assigned To" msgstr "واگذار شده به" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "ایجاد شده قبل از" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "ایجاد شده بعد از" @@ -641,99 +645,99 @@ msgstr "تکمیل شده قبل از" msgid "Completed after" msgstr "تکمیل شده بعد از" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "مصرفی" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "اختیاری" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "مونتاژ" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "سفارش معوق" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "اختصاص داده شده" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "در دسترس" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "سفارش ساخت" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "مکان" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "مرجع سفارش فروش" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "منبع محل" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "مقصد" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "" @@ -883,8 +887,8 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "تاریخ تکمیل" @@ -900,7 +904,7 @@ msgstr "صادر شده توسط" msgid "User who issued this build order" msgstr "کاربری که این سفارش ساخت را صادر کرده است" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "" @@ -962,9 +966,9 @@ msgstr "" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "" @@ -999,7 +1003,7 @@ msgstr "" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "" @@ -1057,8 +1061,8 @@ msgstr "" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "" @@ -1082,7 +1086,7 @@ msgstr "" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "" @@ -1139,7 +1143,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "" @@ -1527,31 +1531,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "" @@ -1654,8 +1658,8 @@ msgstr "" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "" @@ -1677,8 +1681,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "" @@ -1686,7 +1690,7 @@ msgstr "" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "" @@ -1756,7 +1760,7 @@ msgstr "" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "" @@ -2430,7 +2434,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2524,7 +2528,7 @@ msgstr "" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "" @@ -2931,7 +2935,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "" @@ -4448,7 +4452,7 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4533,7 +4537,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "" msgid "Sales Order" msgstr "" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "" @@ -6382,7 +6394,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "" @@ -6390,7 +6402,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "هیچ عملیات کاربر-محوری، مشخص نشده است" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8766,200 +8778,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po index 59e89c0768..0d94561899 100644 --- a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Language: fi_FI\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API-rajapintaa ei löydy" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Käyttäjän oikeudet eivät riitä kohteen tarkastelemiseen" @@ -65,11 +65,11 @@ msgstr "Sähköpostiosoitteen vahvistus" msgid "You must type the same email each time." msgstr "Sinun täytyy kirjoittaa sama sähköposti joka kerta." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Annettu ensisijainen sähköpostiosoite ei kelpaa." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Annetun sähköpostiosoitteen verkkotunnusta ei hyväksytä." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Annettu määrä on virheellinen" @@ -105,22 +105,22 @@ msgstr "Anna päivämäärä" msgid "Invalid decimal value" msgstr "" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Merkinnät" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "" @@ -164,51 +164,51 @@ msgstr "" msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Yhteysvirhe" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Palvelin vastasi virheellisellä tilakoodilla" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Kuva on liian iso" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Kuvan lataus ylitti enimmäiskoon" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Etäpalvelin palautti tyhjän vastauksen" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "Annettu URL ei ole kelvollinen kuvatiedosto" @@ -220,117 +220,121 @@ msgstr "" msgid "Email" msgstr "Sähköposti" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metatietojen tulee olla python dict objekti" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Liitännäisen metadata" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadatakenttä, ulkoisten liitännäisten käyttöön" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Virheellisesti muotoiltu malli" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Viitekenttä ei voi olla tyhjä" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Viitenumero on liian suuri" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Virheellinen valinta" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Nimi" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Kuvaus" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Kuvaus (valinnainen)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Polku" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Viivakoodin Tiedot" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Palvelinvirhe" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Täytyy olla kelvollinen luku" msgid "Currency" msgstr "Valuutta" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Valitse valuutta käytettävissä olevista vaihtoehdoista" @@ -521,11 +525,11 @@ msgstr "" msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "" @@ -546,23 +550,23 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "Osa" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Kategoria" @@ -593,7 +597,7 @@ msgstr "Kategoria" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "" @@ -601,11 +605,11 @@ msgstr "" msgid "Assigned To" msgstr "" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Saatavilla" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Sijainti" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "" @@ -883,8 +887,8 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "" @@ -900,7 +904,7 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "" @@ -962,9 +966,9 @@ msgstr "" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "" @@ -999,7 +1003,7 @@ msgstr "" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "" @@ -1057,8 +1061,8 @@ msgstr "" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Varastotuote" @@ -1082,7 +1086,7 @@ msgstr "" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "" @@ -1139,7 +1143,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "" @@ -1527,31 +1531,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Käyttäjä" @@ -1654,8 +1658,8 @@ msgstr "Käyttäjä" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Hinta" @@ -1677,8 +1681,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Aktiivinen" @@ -1686,7 +1690,7 @@ msgstr "Aktiivinen" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "" @@ -1756,7 +1760,7 @@ msgstr "Otsikko" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Käytössä" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Avain" @@ -2430,7 +2434,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2524,7 +2528,7 @@ msgstr "Tiedostonimi" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Komponentti" @@ -2931,7 +2935,7 @@ msgstr "Ostettavissa" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Sivun koko" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Verkkotunnus ei saa olla tyhjä." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Virheellinen verkkotunnus: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Valmistaja" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Yritys" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Kontakti" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Osoite" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Valitse valmistaja" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Toimittaja" @@ -4448,7 +4452,7 @@ msgstr "Toimittaja" msgid "Select supplier" msgstr "Valitse toimittaja" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Toimittajan varastonimike" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4533,7 +4537,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Ryhmä" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Valmis" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "" msgid "Sales Order" msgstr "" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Tilauksen viite" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Tila" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Asiakas" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Asiakkaan viite " -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Vastaanotettu" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Lähetetty" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Seurantakoodi" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Laskunumero" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "Kuvake" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Kuvake (valinnainen)" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "" @@ -6382,7 +6394,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "" @@ -6390,7 +6402,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Valmistajan osanumero" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Suodattimet" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Leveys [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Korkeus [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8766,200 +8778,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "Oikeudet" msgid "Important dates" msgstr "" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Näytä" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Oikeus tarkastella kohteita" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Oikeus lisätä kohteita" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Muuta" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Oikeus muokata kohteita" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Poista" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Oikeus poistaa kohteita" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po index 8814549478..5c3af1ebb8 100644 --- a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "Point de terminaison de l'API introuvable" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Les éléments doivent être fournis sous forme de liste" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Liste d'éléments non valide fournie" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "Tous les filtres ne doivent être utilisés qu'avec \"true\"" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "Aucun élément ne correspond aux critères fournis" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "Aucune donnée disponible" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "Ce champ doit être unique" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "L'utilisateur n'a pas la permission de voir ce modèle" @@ -65,11 +65,11 @@ msgstr "Confirmation de l'adresse email" msgid "You must type the same email each time." msgstr "Vous devez taper le même e-mail à chaque fois." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "L'adresse e-mail principale fournie n'est pas valide." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Le domaine e-mail fourni n'est pas approuvé." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Impossible de convertir {original} en {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Quantité fournie invalide" @@ -105,22 +105,22 @@ msgstr "Entrer la date" msgid "Invalid decimal value" msgstr "Valeur décimale invalide" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Notes" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "La valeur '{name}' n'apparaît pas dans le format du modèle" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "La valeur fournie ne correspond pas au modèle requis : " @@ -164,51 +164,51 @@ msgstr "Retirer les balises HTML de cette valeur" msgid "Data contains prohibited markdown content" msgstr "Les données contiennent du contenu markdown interdit" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Erreur de connexion" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Le serveur a répondu avec un code de statut invalide" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Une erreur est survenue" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Le serveur a répondu avec une valeur de longueur de contenu invalide" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Image trop volumineuse" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "La taille de l'image dépasse la taille maximale autorisée" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Le serveur distant a renvoyé une réponse vide" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "L'URL fournie n'est pas un fichier image valide" @@ -220,117 +220,121 @@ msgstr "Se connecter à l'application" msgid "Email" msgstr "E-mail" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Vous devez activer l'authentification à deux facteurs avant toute autre chose." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Erreur lors de l'exécution de la validation du plugin" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Les metadata doivent être un objet python de type \"dict\"" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Métadonnées de l'Extension" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "Champs metadata JSON, pour plugins tiers" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Modèle mal formaté" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Clé de format inconnu spécifiée" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Clé de format requise manquante" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Le champ de référence ne peut pas être vide" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "La référence doit correspondre au modèle requis" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Le numéro de référence est trop grand" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Choix invalide" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Nom" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Description" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Description (facultative)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Chemin d'accès" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Les noms dupliqués ne peuvent pas exister sous le même parent" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Notes Markdown (option)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Données du code-barres" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Données de code-barres tierces" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Hash du code-barre" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Hachage unique des données du code-barres" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Code-barres existant trouvé" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Erreur serveur" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Une erreur a été loguée par le serveur." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Doit être un nombre valide" msgid "Currency" msgstr "Devise" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Sélectionnez la devise à partir des options disponibles" @@ -521,11 +525,11 @@ msgstr "Chinois (Simplifié)" msgid "Chinese (Traditional)" msgstr "Chinois (Traditionnel)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "Mise à jour disponible" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "Une mise à jour pour InvenTree est disponible" @@ -537,7 +541,7 @@ msgstr "Unité invalide" msgid "Not a valid currency code" msgstr "Code de devise invalide" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Statut de la commande" @@ -546,23 +550,23 @@ msgstr "Statut de la commande" msgid "Parent Build" msgstr "Fabrication parente" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "Inclure les variantes" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "Inclure les variantes" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "Inclure les variantes" msgid "Part" msgstr "Pièce" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Catégorie" @@ -593,7 +597,7 @@ msgstr "Catégorie" msgid "Ancestor Build" msgstr "Version Précédente" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Attribué à moi" @@ -601,11 +605,11 @@ msgstr "Attribué à moi" msgid "Assigned To" msgstr "Attribué à" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Créé avant" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Créé après" @@ -641,99 +645,99 @@ msgstr "Terminé avant" msgid "Completed after" msgstr "Terminé après" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "Date min" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "Date maximale" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "Exclure l'arbre" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "La construction doit être annulée avant de pouvoir être supprimée" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Consommable" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Facultatif" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Assemblage" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Suivi" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Testable" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Commande en cours" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Allouée" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Consommé" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Disponible" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "En Commande" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Ordre de Fabrication" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Emplacement" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "Sortie" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Filtrer par l'identifiant (ID) des articles du stock de sortie. Utilisez 'null' pour trouver les éléments de fabrication non installés." @@ -773,9 +777,9 @@ msgstr "La date cible doit être postérieure à la date de début" msgid "Build Order Reference" msgstr "Référence de l' Ordre de Fabrication" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Bon de commande de référence" msgid "Sales Order to which this build is allocated" msgstr "Commande de vente à laquelle cette fabrication est allouée" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Emplacement d'origine" @@ -821,7 +825,7 @@ msgstr "Fabrication externe" msgid "This build order is fulfilled externally" msgstr "Cet ordre de fabrication est exécuté en externe" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Emplacement cible" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Code de statut de construction" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Code de lot" @@ -883,8 +887,8 @@ msgstr "Date d'achèvement cible" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Date cible pour l'achèvement de la construction. La construction sera en retard après cette date." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Date d'achèvement" @@ -900,7 +904,7 @@ msgstr "Émis par" msgid "User who issued this build order" msgstr "Utilisateur ayant émis cette commande de construction" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Priorité de cet ordre de fabrication" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Code du projet" @@ -962,9 +966,9 @@ msgstr "L'ordre de production de correspond pas à l'ordre de commande" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "La quantité doit être supérieure à zéro" @@ -999,7 +1003,7 @@ msgstr "Création de l'objet" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "La quantité doit être de 1 pour stock sérialisé" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "L'article de stock est suralloué" @@ -1057,8 +1061,8 @@ msgstr "L'article de stock est suralloué" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Article en stock" @@ -1082,7 +1086,7 @@ msgstr "Stock de destination de l'article" msgid "Build Level" msgstr "Niveau de construction" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Nom de l'article" @@ -1139,7 +1143,7 @@ msgstr "Allouer automatiquement les numéros de série" msgid "Automatically allocate required items with matching serial numbers" msgstr "Affecter automatiquement les éléments requis avec les numéros de série correspondants" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Les numéros de série suivants existent déjà, ou sont invalides" @@ -1272,7 +1276,7 @@ msgstr "Élément de la ligne de construction" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part doit pointer sur la même pièce que l'ordre de construction" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "L'article doit être en stock" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "Construire" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Pièce fournisseur" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Autoriser les variantes" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "Article du BOM" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "En Production" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "Planifié pour fabrication" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Stock externe" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Stock disponible" @@ -1527,31 +1531,31 @@ msgstr "Ordre de commande en retard" msgid "Build order {bo} is now overdue" msgstr "L'ordre de commande {bo} est maintenant en retard" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "C'est un lien" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "C'est un fichier" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "L'utilisateur n'a pas les permissions de supprimer cette pièce jointe" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "La liste de sélection est verrouillée" @@ -1571,8 +1575,8 @@ msgstr "Aucun code de devise valide fourni" msgid "No plugin" msgstr "Pas de plugin" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "La chaîne de caractères constituant la clé doit être unique" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Utilisateur" @@ -1654,8 +1658,8 @@ msgstr "Utilisateur" msgid "Price break quantity" msgstr "Quantité de rupture de prix" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Prix" @@ -1677,8 +1681,8 @@ msgstr "Nom de ce webhook" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Actif" @@ -1686,7 +1690,7 @@ msgstr "Actif" msgid "Is this webhook active" msgstr "Ce webhook (lien de rappel HTTP) est-il actif" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Jeton" @@ -1756,7 +1760,7 @@ msgstr "Titre" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "Choix valables pour ce paramètre (séparés par des virgules)" msgid "Selection list for this parameter" msgstr "Liste de sélection pour ce paramètre" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Activé" @@ -2204,8 +2208,8 @@ msgstr "Identifiant du Modèle (ID)" msgid "ID of the target model for this parameter" msgstr "ID du modèle cible pour ce paramètre" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Modèle" @@ -2262,7 +2266,7 @@ msgstr "Date et heure du scan de code-barres" msgid "URL endpoint which processed the barcode" msgstr "Point d'accès à l'URL qui a traité le code-barres" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Contexte" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "Fils d'Emails" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Clé" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} annulé" msgid "A order that is assigned to you was canceled" msgstr "Une commande qui vous est assignée a été annulée" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Articles reçus" @@ -2524,7 +2528,7 @@ msgstr "Nom du fichier" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "Type de modèle" @@ -2914,8 +2918,8 @@ msgstr "Les pièces sont des templates par défaut" msgid "Parts can be assembled from other components by default" msgstr "Les pièces peuvent être assemblées à partir d'autres composants par défaut" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Composant" @@ -2931,7 +2935,7 @@ msgstr "Achetable" msgid "Parts are purchaseable by default" msgstr "Les pièces sont achetables par défaut" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Vendable" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "Enregistrer les erreurs qui se produisent lors de la génération de rapports" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Taille de la page" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "Tous les modèles" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "Aucun type de modèle d'attachement n'est fourni" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "Type de modèle de pièce jointe non valide" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "Les places minimales ne peuvent être supérieures aux places maximales" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "Le nombre maximum de places ne peut être inférieur au nombre minimum de places" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Un domaine vide n'est pas autorisé." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Nom de domaine invalide : {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "La valeur doit être en majuscules" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "La valeur doit être un identifiant de variable valide" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "Le fournisseur est actif" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Fabricant" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Société" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Adresse e-mail de contact" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Contact" @@ -4297,7 +4301,7 @@ msgstr "N° de TVA" msgid "Company Tax ID" msgstr "Numéro d'identification fiscale de l'entreprise" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Adresse" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "Lien vers les informations de l'adresse (externe)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Pièces du fabricant" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Sélectionner un fabricant" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "Référence fabricant" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "La pièce du fabricant liée doit faire référence à la même pièce de base" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Fournisseur" @@ -4448,7 +4452,7 @@ msgstr "Fournisseur" msgid "Select supplier" msgstr "Sélectionner un fournisseur" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Unité de gestion des stocks des fournisseurs" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Frais minimums (par exemple frais de stock)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Conditionnement" @@ -4533,7 +4537,7 @@ msgstr "Devise par défaut utilisée pour ce fournisseur" msgid "Company Name" msgstr "Nom de l'entreprise" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "En Stock" @@ -4722,7 +4726,7 @@ msgstr "Données de la ligne d'origine" msgid "Errors" msgstr "Erreurs" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Valide" @@ -4838,7 +4842,7 @@ msgstr "Nombre de copies à imprimer pour chaque étiquette" msgid "Connected" msgstr "Connecté" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Inconnu" @@ -4942,7 +4946,7 @@ msgstr "Clé de la propriété" msgid "Value of the property" msgstr "Valeur de la propriété" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Groupe" @@ -4966,118 +4970,118 @@ msgstr "Progression maximale" msgid "Maximum value for progress type, required if type=progress" msgstr "Valeur maximale pour le type de progression, requis si type=progress" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Référence de commande" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "Remarquable" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "A le code du projet" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Créé par" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "Créé avant" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "Créé après" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "A la date de début" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "Date de début Avant" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "Date de début Après" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "A une date cible" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "Date cible Avant" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "Date cible Après" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "Possède un Tarif" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "Terminé avant" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "Terminé après" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "Ordre de fabrication externe" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Commande" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "Commande Complétée" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Pièces Internes" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "Commande En Attente" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Terminé" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "Fait l'objet d'une expédition" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Commande d’achat" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Commande d’achat" msgid "Sales Order" msgstr "Commandes" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "Retour de commande" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "L'adresse ne correspond pas à la société sélectionnée" msgid "Order description (optional)" msgstr "Description de la commande (facultatif)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Sélectionner le code du projet pour cette commande" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Lien vers une page externe" @@ -5151,7 +5155,7 @@ msgstr "Date de début" msgid "Scheduled start date for this order" msgstr "Date de début prévue pour cette commande" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Date Cible" @@ -5184,487 +5188,487 @@ msgstr "Point de contact pour cette commande" msgid "Company address for this order" msgstr "Adresse de l'entreprise pour cette commande" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Référence de la commande" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "État" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Statut de la commande d'achat" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Société de laquelle les articles sont commandés" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Référence du fournisseur" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Code de référence de la commande fournisseur" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "reçu par" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "Date à laquelle la commande a été complété" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Destination" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "Destination des articles reçus" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "Le fournisseur de la pièce doit correspondre au fournisseur de la commande" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "Le poste ne correspond pas au bon de commande" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "Il manque une pièce liée à l'article de la ligne" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "La quantité doit être un nombre positif" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Client" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Société à laquelle les articles sont vendus" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "Statut de la commande client" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Référence client " -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Code de référence de la commande du client" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Nom de l’expédition" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "expédié par" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "La commande est déjà terminée" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "La commande est déjà annulée" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Seule une commande ouverte peut être marquée comme complète" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "La commande ne peut pas être terminée car il y a des envois incomplets" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "L'ordre ne peut pas être achevé car les allocations sont incomplètes" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "L'ordre ne peut pas être complété car il y a des postes incomplets" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "La commande est verrouillée et ne peut être modifiée" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Nombre d'élement" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Référence du poste" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Notes sur les postes" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Date cible pour ce poste (laisser vide pour utiliser la date cible de la commande)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Description du poste (facultatif)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "Contexte supplémentaire pour cette ligne" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Prix unitaire" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "Poste du bon de commande" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "La pièce du fournisseur doit correspondre à celle du fournisseur" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "L'ordre de fabrication doit être marqué externe" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "Les ordres de fabrication ne peuvent être liées qu'à des pièces d'assemblage" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "Les pièces d'ordre de fabrication doivent correspondre la pièce d'objet" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Pièce fournisseur" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Reçu" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Nombre d'éléments reçus" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Prix d'achat" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Prix d'achat unitaire" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "Ordre de fabrication externe à remplir par cet élément de ligne" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "Ligne supplémentaire du bon de commande" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "Poste de commande client" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "Seules les pièces vendues peuvent être attribuées à une commande" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Prix de vente" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Prix de vente unitaire" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Expédié" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Quantité expédiée" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "Envoi de la commande client" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "L'adresse d'expédition doit correspondre au client" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "Adresse de livraison pour cet envoi" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Date d'expédition" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Date de Livraison" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Date de livraison de l'envoi" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Vérifié par" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Utilisateur qui a vérifié cet envoi" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Envoi" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Numéro d'expédition" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "N° de suivi" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Information de suivi des colis" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "N° de facture" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Numéro de référence de la facture associée" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "Le colis a déjà été envoyé" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "L'expédition n'a pas d'articles en stock alloués" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "L'expédition doit être vérifiée avant de pouvoir être terminée" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "Ligne supplémentaire de commande client" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "Affectation des commandes clients" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "L'article de stock n'a pas été assigné" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "Impossible d'allouer l'article en stock à une ligne avec une autre pièce" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "Impossible d'allouer le stock à une ligne sans pièce" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La quantité d'allocation ne peut pas excéder la quantité en stock" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "La quantité allouée doit être supérieure à zéro" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "La quantité doit être égale à 1 pour un article de stock sérialisé" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "La commande client ne correspond pas à l'expédition" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "L'envoi ne correspond pas à la commande client" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Ligne" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Référence de l'expédition de la commande client" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Article" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Sélectionner l'article de stock à affecter" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Saisir la quantité d'allocation de stock" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "Retour Référence de la commande" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Entreprise à l'origine du retour des articles" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "Statut du retour de commande" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "Poste de l'ordre de retour" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "L'article en stock doit être spécifié" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "La quantité retournée dépasse la quantité en stock" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "La quantité retournée doit être supérieure à zéro" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "Quantité non valide pour un article de stock sérialisé" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Sélectionner l'article à retourner par le client" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Date de réception" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "La date de réception de cet article en retour" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Résultats" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Résultat pour ce poste" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Coût associé au retour ou à la réparation de ce poste" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "Ordre de retour Ligne supplémentaire" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "Copier les lignes supplémentaires" msgid "Copy extra line items from the original order" msgstr "Copier les postes supplémentaires de l'ordre original" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Copier les paramètres" @@ -5784,11 +5788,11 @@ msgstr "Fusionner des éléments" msgid "Merge items with the same part, destination and target date into one line item" msgstr "Fusionner en un seul poste les éléments ayant la même partie, la même destination et la même date cible" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "Unité de gestion des stocks" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Numéro de pièce interne" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Saisir le code de lot pour les articles de stock entrant" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Date d'expiration" @@ -6056,123 +6060,131 @@ msgstr "Ordre de retour en retard" msgid "Return order {ro} is now overdue" msgstr "L'ordre de retour {ro} est maintenant en retard" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "Étoilé" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "Filtrer par catégories étoilées" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Profondeur" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "Filtrer par profondeur de catégorie" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "Premier niveau" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "Filtrer par catégories de premier niveau" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "Cascade" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "Inclure les sous-catégories dans les résultats filtrés" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "Parent" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "Filtrer par catégorie de parents" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "Exclure les sous-catégories de la catégorie spécifiée" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "A des résultats" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "Est variante" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "Est la révision" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "A des révisions" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "Nomenclature valide" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "Catégories en cascade" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "Si vrai, inclure des éléments dans les sous-catégories de la catégorie donnée" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "Filtrer par ID de catégorie numérique ou par 'null'" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "La pièce d'assemblage est active" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "La pièce d'assemblage est traçable" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "La pièce d'assemblage est testable" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "Le composant est testable" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "Utilise" @@ -6213,7 +6225,7 @@ msgstr "Mots-clés par défaut pour les pièces de cette catégorie" msgid "Icon" msgstr "Icône" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Icône (facultatif)" @@ -6349,7 +6361,7 @@ msgstr "Les mots-clés partiels pour améliorer la visibilité dans les résulta msgid "Part category" msgstr "Catégorie de la pièce" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "IPN" @@ -6358,7 +6370,7 @@ msgstr "IPN" msgid "Part revision or version number" msgstr "Numéro de révision ou de version de la pièce" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Révision" @@ -6382,7 +6394,7 @@ msgstr "Expiration par défaut" msgid "Expiry time (in days) for stock items of this part" msgstr "Délai d'expiration (en jours) pour les articles en stock de cette pièce" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Stock Minimum" @@ -6390,7 +6402,7 @@ msgstr "Stock Minimum" msgid "Minimum allowed stock level" msgstr "Niveau de stock minimum autorisé" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "Sous-partie" msgid "Select part to be used in BOM" msgstr "Sélectionner la pièce à utiliser dans la nomenclature" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "Catégorie de parents" msgid "Parent part category" msgstr "Catégorie de pièce mère" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Sous-catégories" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "Résultats" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "Nombre de résultats enregistrés par rapport à ce modèle" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Devise d'achat de l'item" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "Le fichier n'est pas une image" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Partie originale" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Sélectionner la partie originale à dupliquer" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Copier l'image" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Copier l'image à partir de la partie originale" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Copier la nomenclature" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Copie de la nomenclature de la pièce originale" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Copie des données de paramètres de la pièce d'origine" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Notes sur la copie" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "Copier les notes de la partie originale" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "Test Copie" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Quantité de stock initial" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Indiquer la quantité de stock initiale pour cette pièce. Si la quantité est égale à zéro, aucun stock n'est ajouté." -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "Emplacement initial du stock" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "Spécifier l'emplacement du stock initial pour cette pièce" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Sélectionner le fournisseur (ou laisser en blanc pour passer)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Sélectionner le fabricant (ou laisser en blanc pour ignorer)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Numéro de pièce du fabricant" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "L'entreprise sélectionnée n'est pas un fournisseur valide" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "L'entreprise sélectionnée n'est pas un fabricant valide" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "La pièce du fabricant correspondant à ce MPN existe déjà" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "La pièce du fournisseur correspondant à cette UGS existe déjà" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Nom catégorie" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "Construction" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "Quantité de cette pièce actuellement en production" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "Quantité exceptionnelle de cette pièce sont planifié à la fabrication" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Éléments en stock" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "Révisions" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Stock total" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "Stock non attribué" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "Variante Stock" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Dupliquer une pièce" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "Copier les données initiales d'une autre partie" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Stock initial" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Créer une pièce avec une quantité de stock initiale" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Informations sur le fournisseur" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Ajouter les informations initiales du fournisseur pour cette pièce" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Copier les paramètres de la catégorie" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "Copier les modèles de paramètres de la catégorie de pièces sélectionnée" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Image existante" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "Nom de fichier d'une image de pièce existante" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "Le fichier image n'existe pas" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Valider l'ensemble de la nomenclature" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Peut construire" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "Nécessaire pour fabrication" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "Alloué à la fabrication" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "Nécessaire pour les commandes" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "Alloué aux commandes" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Prix Minimum" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Remplacer la valeur calculée pour le prix minimum" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Prix minimum monnaie" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Prix Maximum" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "Remplacer la valeur calculée pour le prix maximum" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Devise du prix maximum" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Mise à jour" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "Mise à jour des prix pour cette pièce" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Impossible de convertir les devises fournies en {default_currency}" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "Le prix minimum ne doit pas être supérieur au prix maximum" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "Le prix maximum ne doit pas être inférieur au prix minimum" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "Sélectionner l'assemblage parent" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "Sélectionner le composant" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "Sélectionner la pièce à partir de laquelle copier la nomenclature" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Supprimer les données existantes" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Supprimer les postes de nomenclature existants avant de les copier" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Inclure l'héritage" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Inclure les éléments de nomenclature hérités des pièces modélisées" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Sauter les lignes non valides" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Activez cette option pour ignorer les lignes non valides" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Copier les pièces de remplacement" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "Copie de pièces de rechange en cas de duplication de postes de nomenclature" @@ -7326,91 +7338,91 @@ msgstr "Aucune action spécifiée" msgid "No matching action found" msgstr "Aucune action correspondante trouvée" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "Aucune correspondance trouvée pour les données du code-barres" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Correspondance trouvée pour les données du code-barres" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "Le modèle n'est pas pris en charge" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "L'instance de modèle n'a pas été trouvée" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "Le code-barres correspond à l'article existant" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "Aucune donnée correspondante n'a été trouvée" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "Aucune pièce de fournisseur correspondante n'a été trouvée" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "Plusieurs pièces de fournisseurs correspondantes trouvées" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "Aucun plugin correspondant n'a été trouvé pour les données de code-barres" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "Pièce du fournisseur assortie" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "L'article a déjà été reçu" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "Pas de correspondance de plugin pour le code-barres du fournisseur" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "Plusieurs postes correspondants trouvés" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "Aucun poste correspondant n'a été trouvé" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "Aucun ordre de vente n'a été fourni" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "Le code-barres ne correspond pas à un article de stock existant" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "Le poste de stock ne correspond pas au poste individuel" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "Stock disponible insuffisant" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "Article de stock attribué à la commande client" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "Pas assez d'informations" @@ -7992,7 +8004,7 @@ msgstr "Frontière" msgid "Print a border around each label" msgstr "Imprimer une bordure autour de chaque étiquette" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "Paysage" @@ -8481,136 +8493,136 @@ msgstr "Juridique" msgid "Letter" msgstr "Lettre" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "Le fichier modèle portant ce nom existe déjà" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Nom du modèle" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "Description du modèle" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "Numéro de révision (auto-incrémentation)" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "Joindre au modèle sur l'impression" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "Enregistrer le rapport en tant que pièce jointe à l'instance de modèle liée lors de l'impression" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Modèle de nom de fichier" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "Modèle de génération de noms de fichiers" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "Le modèle est activé" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "Type de modèle cible pour le modèle" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Filtres" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "Filtres de requête de modèle (liste de paires clé/valeur séparées par des virgules)" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "Fichier modèle" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "Taille des pages pour les rapports PDF" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "Rendre le rapport en orientation paysage" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "Fusionner" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "Rapport généré à partir du modèle {self.name}" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "Erreur dans la génération du rapport" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Largeur [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Largeur de l'étiquette, spécifiée en mm" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Hauteur [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Hauteur de l'étiquette, spécifiée en mm" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "Erreur d'impression des étiquettes" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Extrait " -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Fichier d'extrait de rapport" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Description du fichier d'extrait" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Elément" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Rapport sur le fichier d'actifs" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Description du fichier d'actifs" @@ -8766,200 +8778,200 @@ msgstr "Pas de résultat" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "Fichier image non trouvé" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "la balise part_image nécessite une instance de Part" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "la balise company_image nécessite une instance d'entreprise" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "Filtrer par profondeur de localisation" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "Filtrer par lieux de premier niveau" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "Inclure les sous-emplacements dans les résultats filtrés" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "Emplacement parent" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "Filtrer par emplacement parent" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "Nom de la pièce (insensible à la casse)" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "Le nom de la pièce contient (insensible à la casse)" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "Nom de la pièce (regex)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "Partie IPN (insensible à la casse)" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "La partie IPN contient (insensible à la casse)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "Partie IPN (regex)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "Stock minimum" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "Stock maximum" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Code de statut" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Emplacement externe" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "Consommé par l'ordre de construction" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "Installé dans un autre article en stock" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "Arbre en pièces détachées" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "Mise à jour avant" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "Mise à jour après" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "Inventaire avant" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "Inventaire après" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "Date d'expiration avant" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "Date d’expiration après" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "Périmé" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "La quantité est requise" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "La partie valide doit être fournie" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "Le fournisseur donné n'existe pas" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "La pièce du fournisseur a une taille d'emballage définie, mais le drapeau use_pack_size n'est pas activé" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Les numéros de série ne peuvent pas être fournis pour une pièce non traçable" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "Sélectionner un propriétaire" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Les articles en stock ne peuvent pas être directement placés dans un emplacement de stock structurel, mais peuvent être placés dans des emplacements subordonnés." -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Externe" @@ -9101,7 +9113,7 @@ msgstr "Sélectionnez une pièce fournisseur correspondante pour cet article en msgid "Where is this stock item located?" msgstr "Où se trouve cet article en stock ?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "L'emballage de cet article en stock est stocké dans" @@ -9117,7 +9129,7 @@ msgstr "L'article a été installé dans un autre article ?" msgid "Serial number for this item" msgstr "Numéro de série pour cet article" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Code de lot pour cet article de stock" @@ -9234,7 +9246,7 @@ msgstr "L'article de stock est actuellement en production" msgid "Serialized stock cannot be merged" msgstr "Le stock sérialisé ne peut pas être fusionné" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Articles de stock en double" @@ -9398,7 +9410,7 @@ msgstr "Entrez les numéros de série pour les nouveaux articles" msgid "Supplier Part Number" msgstr "Référence du fournisseur" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Expiré" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "La quantité ne doit pas dépasser la quantité disponible en stock ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Emplacement du stock de destination" @@ -9501,127 +9513,127 @@ msgstr "Sélectionner les articles en stock pour modifier leur statut" msgid "No stock items selected" msgstr "Aucun article en stock n'a été sélectionné" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Sous-localisations" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "Emplacement du stock mère" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "La pièce doit être vendable" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "L'article est affecté à une commande client" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "L'article est attribué à un ordre de fabrication" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Affectation d'articles en stock par le client" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "L'entreprise sélectionnée n'est pas un client" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Notes d'affectation des stocks" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "Une liste des articles en stock doit être fournie" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Notes sur les fusions d'actions" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Autoriser les fournisseurs non concordants" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Permettre la fusion d'articles en stock avec des pièces de fournisseurs différents" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Autoriser la non-concordance des statuts" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Permettre la fusion d'articles en stock ayant des codes de statut différents" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "Au moins deux articles en stock doivent être fournis" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "Pas de changement" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Valeur de la clé primaire StockItem" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "L'article n'est plus en stock" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Notes sur les transactions boursières" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "Numéro de série suivant" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "Numéro de série précédent" @@ -9919,7 +9931,7 @@ msgstr "Droits" msgid "Important dates" msgstr "Dates importantes" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "Le jeton a été révoqué" @@ -9927,163 +9939,163 @@ msgstr "Le jeton a été révoqué" msgid "Token has expired" msgstr "Le jeton a expiré" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "Jeton API" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "Jetons API" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Nom du jeton" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Nom du jeton personnalisé" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Date d'expiration du jeton" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Dernière visite" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "Dernière utilisation du jeton" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Révoquée" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Droit défini" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Vue" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Droit de voir des éléments" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Ajouter" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Droit d'ajouter des éléments" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Modifier" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Droit de modifier des élément" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Supprimer" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Droit de supprimer des éléments" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "Bot" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "Interne" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "Invité" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "Langue" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "Langue préférée de l'utilisateur" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "Thème" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "Paramètres pour l'interface web sous forme de JSON - ne pas modifier manuellement !" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "Raccourcis" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "Paramètres des widgets du tableau de bord sous forme de JSON - ne pas modifier manuellement !" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "Nom d'affichage" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "Nom d'affichage choisi pour l'utilisateur" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "Localisation" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "Intitulé de l'emploi principal ou du poste" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "Message sur le statut de l'utilisateur" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "Informations sur la localisation de l'utilisateur" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "L'utilisateur utilise activement le système" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "Coordonnées préférées de l'utilisateur" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "Type d'utilisateur" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "De quel type d'utilisateur s'agit-il ?" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "Organisation" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "Organisation/affiliation principale de l'utilisateur" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "Groupe primaire" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "Groupe principal de l'utilisateur" diff --git a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po index 0147e1c8a0..29b573ac5d 100644 --- a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "למשתמש אין הרשאה לצפות במוזל הזה" @@ -65,11 +65,11 @@ msgstr "אישור כתובת אימייל" msgid "You must type the same email each time." msgstr "חובה לרשום את אותו אימייל בכל פעם." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "" @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "" @@ -105,22 +105,22 @@ msgstr "הזן תאריך סיום" msgid "Invalid decimal value" msgstr "" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "" @@ -164,51 +164,51 @@ msgstr "" msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "" @@ -220,117 +220,121 @@ msgstr "" msgid "Email" msgstr "אימייל" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "שגיאה בהפעלת אימות הפלאגין" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metadata must be a python dict object" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "מטא נתונים של תוסף" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "שדה מטא נתונים של JSON, לשימוש על ידי תוספים חיצוניים" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "דפוס מעוצב בצורה לא נכונה" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "צוין מפתח פורמט לא ידוע" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "חסר מפתח פורמט נדרש" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "שדה הפניה לא יכול להיות ריק" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "הפניה חייבת להתאים לדפוס הנדרש" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "מספר האסמכתה גדול מדי" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "בחירה שגויה" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "שם" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "תיאור" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "תיאור (לא חובה)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "נתיב" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "שמות כפולים אינם יכולים להתקיים תחת אותו אב" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "הערות סימון (אופציונלי)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "נתוני ברקוד" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "נתוני ברקוד של צד שלישי" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "ברקוד Hash" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Hash ייחודי של נתוני ברקוד" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "נמצא ברקוד קיים" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "שגיאת שרת" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "נרשמה שגיאה על ידי השרת." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "המספר חייב להיות תקין" msgid "Currency" msgstr "מטבע" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "בחר מטבע מהאפשרויות הזמינות" @@ -521,11 +525,11 @@ msgstr "סינית (פשוטה)" msgid "Chinese (Traditional)" msgstr "סינית (מסורתית)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "" msgid "Not a valid currency code" msgstr "קוד מטבע לא מאושר" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "" @@ -546,23 +550,23 @@ msgstr "" msgid "Parent Build" msgstr "מקור הבנייה" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "רכיב" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "" @@ -593,7 +597,7 @@ msgstr "" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "" @@ -601,11 +605,11 @@ msgstr "" msgid "Assigned To" msgstr "" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "" @@ -883,8 +887,8 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "" @@ -900,7 +904,7 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "" @@ -962,9 +966,9 @@ msgstr "" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "" @@ -999,7 +1003,7 @@ msgstr "" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "" @@ -1057,8 +1061,8 @@ msgstr "" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "" @@ -1082,7 +1086,7 @@ msgstr "" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "" @@ -1139,7 +1143,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "" @@ -1527,31 +1531,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "משתמש" @@ -1654,8 +1658,8 @@ msgstr "משתמש" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "" @@ -1677,8 +1681,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "" @@ -1686,7 +1690,7 @@ msgstr "" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "" @@ -1756,7 +1760,7 @@ msgstr "" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "" @@ -2430,7 +2434,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2524,7 +2528,7 @@ msgstr "שם קובץ" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "" @@ -2931,7 +2935,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "" @@ -4448,7 +4452,7 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4533,7 +4537,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "" msgid "Sales Order" msgstr "" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "נשלח" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "" @@ -6382,7 +6394,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "" @@ -6390,7 +6402,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "לא פורטה הפעולה" msgid "No matching action found" msgstr "פעולה מבוקשת לא נמצאה" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8766,200 +8778,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po index 483dd78e87..88617dec56 100644 --- a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Hindi\n" "Language: hi_IN\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "" @@ -65,11 +65,11 @@ msgstr "" msgid "You must type the same email each time." msgstr "" -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "" @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "" @@ -105,22 +105,22 @@ msgstr "तारीख दर्ज करें" msgid "Invalid decimal value" msgstr "" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "" @@ -164,51 +164,51 @@ msgstr "" msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "कनेक्शन त्रुटि" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "" @@ -220,117 +220,121 @@ msgstr "" msgid "Email" msgstr "ई-मेल" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "" msgid "Currency" msgstr "" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "" @@ -521,11 +525,11 @@ msgstr "" msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "" @@ -546,23 +550,23 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "" @@ -593,7 +597,7 @@ msgstr "" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "" @@ -601,11 +605,11 @@ msgstr "" msgid "Assigned To" msgstr "" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "" @@ -883,8 +887,8 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "" @@ -900,7 +904,7 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "" @@ -962,9 +966,9 @@ msgstr "" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "" @@ -999,7 +1003,7 @@ msgstr "" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "" @@ -1057,8 +1061,8 @@ msgstr "" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "" @@ -1082,7 +1086,7 @@ msgstr "" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "" @@ -1139,7 +1143,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "" @@ -1527,31 +1531,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "" @@ -1654,8 +1658,8 @@ msgstr "" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "" @@ -1677,8 +1681,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "" @@ -1686,7 +1690,7 @@ msgstr "" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "" @@ -1756,7 +1760,7 @@ msgstr "" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "" @@ -2430,7 +2434,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2524,7 +2528,7 @@ msgstr "" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "" @@ -2931,7 +2935,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "" @@ -4448,7 +4452,7 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4533,7 +4537,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "" msgid "Sales Order" msgstr "" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "" @@ -6382,7 +6394,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "" @@ -6390,7 +6402,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8766,200 +8778,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po index 2ebff56325..1d97eed35c 100644 --- a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API funkciót nem találom" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "A tételeket listában kell átadni" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Érvénytelen a tétel lista" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "Minden szűrő csak true értékkel használható" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "Nincs a szűrésnek megfelelő tétel" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "Nincs adat megadva" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "Ennek a mezőnek egyedinek kell lennie." -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Nincs jogosultságod az adatok megtekintéséhez" @@ -65,11 +65,11 @@ msgstr "Email cím megerősítés" msgid "You must type the same email each time." msgstr "Mindig ugyanazt az email címet kell beírni." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "A megadott elsődleges email cím nem valós." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "A megadott email domain nincs jóváhagyva." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "{original} átváltása {unit}-ra sikertelen" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Nem megfelelő mennyiség" @@ -105,22 +105,22 @@ msgstr "Dátum megadása" msgid "Invalid decimal value" msgstr "Érvénytelen decimális érték" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Megjegyzések" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "A(z) '{name}' érték nem a szükséges minta szerinti" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "A megadott érték nem felel meg a szükséges mintának: " @@ -164,51 +164,51 @@ msgstr "HTML tag-ek eltávolítása ebből az értékből" msgid "Data contains prohibited markdown content" msgstr "Az adatban tiltott markdown tartalom található" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Csatlakozási hiba" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "A kiszolgáló érvénytelen státuszkóddal válaszolt" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Kivétel történt" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "A kiszolgáló érvénytelen Content-Length értéket adott" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "A kép mérete túl nagy" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "A kép letöltés meghaladja a maximális méretet" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "A kiszolgáló üres választ adott" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "A megadott URL nem egy érvényes kép fájl" @@ -220,117 +220,121 @@ msgstr "Bejelentkezés az appba" msgid "Email" msgstr "Email" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Mielőtt továbbmenne kötelező a kétfaktoros authentikációt engedélyeznie." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Hiba a plugin validálása közben" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "A meta adatnak egy python dict objektumnak kell lennie" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Plugin meta adatok" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "JSON meta adat mező, külső pluginok számára" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Helytelenül formázott minta" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Ismeretlen formátum kulcs lett megadva" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Hiányzó formátum kulcs" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Az azonosító mező nem lehet üres" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Az azonosítónak egyeznie kell a mintával" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Azonosító szám túl nagy" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Érvénytelen választás" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Név" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Leírás" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Leírás (opcionális)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Elérési út" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplikált nevek nem lehetnek ugyanazon szülő alatt" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Markdown megjegyzések (opcionális)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Vonalkód adat" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Harmadik féltől származó vonalkód adat" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Vonalkód hash" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Egyedi vonalkód hash" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Létező vonalkód" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Kiszolgálóhiba" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "A kiszolgáló egy hibaüzenetet rögzített." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Érvényes számnak kell lennie" msgid "Currency" msgstr "Pénznem" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Válassz pénznemet a lehetőségek közül" @@ -521,11 +525,11 @@ msgstr "Kínai (egyszerűsített)" msgid "Chinese (Traditional)" msgstr "Kínai (Hagyományos)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "Frissítés elérhető" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "InvenTree frissítés elérhető" @@ -537,7 +541,7 @@ msgstr "Érvénytelen fizikai mértékegység" msgid "Not a valid currency code" msgstr "Érvénytelen pénznem kód" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Rendelés állapota" @@ -546,23 +550,23 @@ msgstr "Rendelés állapota" msgid "Parent Build" msgstr "Szülő gyártás" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "Változatokkal együtt" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "Változatokkal együtt" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "Változatokkal együtt" msgid "Part" msgstr "Alkatrész" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Kategória" @@ -593,7 +597,7 @@ msgstr "Kategória" msgid "Ancestor Build" msgstr "Szülő Gyártás" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Hozzám rendelt" @@ -601,11 +605,11 @@ msgstr "Hozzám rendelt" msgid "Assigned To" msgstr "Hozzárendelve" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Ez előtt létrehozva" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Létrehozva ez után" @@ -641,99 +645,99 @@ msgstr "Elkészült ez előtt" msgid "Completed after" msgstr "Elkészült ez után" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "Ettől a dátumtól" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "Eddig a dátumig" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "Fa kihagyása" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "A gyártást be kell fejezni a törlés előtt" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Fogyóeszköz" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Opcionális" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Gyártmány" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Követett" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Ellenőrizhető" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Befejezetlen rendelés" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Lefoglalva" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Felhasználva" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Elérhető" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Rendelve" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "Gyártás nem található" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Gyártási utasítás" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Hely" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "Kimenet" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Szűrés a kimeneti készlet tétel azonosítójára. Használj 'null'-t ha a be nem épített gyártási tételeket keresed." @@ -773,9 +777,9 @@ msgstr "Céldátumnak a kezdeti dátum után kell lennie" msgid "Build Order Reference" msgstr "Gyártási utasítás azonosító" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Vevői rendelés azonosító" msgid "Sales Order to which this build is allocated" msgstr "Vevői rendelés, amelyhez ez a gyártás tartozik" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Forrás hely" @@ -821,7 +825,7 @@ msgstr "Külső gyártás" msgid "This build order is fulfilled externally" msgstr "Ez a gyártási rendelés külsőleg teljesül" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Cél hely" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Gyártás státusz kód" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Batch kód" @@ -883,8 +887,8 @@ msgstr "Befejezés cél dátuma" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Cél dátum a gyártás befejezéséhez. Ez után késettnek számít majd." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Befejezés dátuma" @@ -900,7 +904,7 @@ msgstr "Indította" msgid "User who issued this build order" msgstr "Felhasználó aki ezt a gyártási utasítást kiállította" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Gyártási utasítás priorítása" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Projektszám" @@ -962,9 +966,9 @@ msgstr "Gyártási kimenet nem egyezik a gyártási utasítással" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "Mennyiségnek nullánál többnek kell lennie" @@ -999,7 +1003,7 @@ msgstr "Gyártás objektum" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "A lefoglalt mennyiség ({q}) nem lépheti túl a szabad készletet ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Készlet túlfoglalva" @@ -1057,8 +1061,8 @@ msgstr "Készlet túlfoglalva" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Készlet tétel" @@ -1082,7 +1086,7 @@ msgstr "Cél készlet tétel" msgid "Build Level" msgstr "Gyártási Szint" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Alkatrész neve" @@ -1139,7 +1143,7 @@ msgstr "Sorozatszámok automatikus hozzárendelése" msgid "Automatically allocate required items with matching serial numbers" msgstr "Szükséges tételek automatikus hozzárendelése a megfelelő sorozatszámokkal" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "A következő sorozatszámok már léteznek vagy nem megfelelőek" @@ -1273,7 +1277,7 @@ msgstr "Gyártás sor tétel" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part ugyanarra az alkatrészre kell mutasson mint a gyártási utasítás" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "A tételnek kell legyen készlete" @@ -1386,8 +1390,8 @@ msgstr "Beépítés helye" msgid "Build" msgstr "Gyártás" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Beszállítói alkatrész" @@ -1417,24 +1421,24 @@ msgid "Allow Variants" msgstr "Változatok" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "Alkatrészjegyzék tétel" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "Gyártásban" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "Gyártás Ütemezve" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Külső raktárkészlet" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Elérhető készlet" @@ -1528,31 +1532,31 @@ msgstr "Késésben lévő gyártás" msgid "Build order {bo} is now overdue" msgstr "A {bo} gyártás most már késésben van" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "Ez egy hivatkozás" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "Ez egy állomány" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "A felhasználó nem jogosult ezen mellékletek törlésére" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "A felhasználó nem jogosult ezen melléklet törlésére" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "Választéklista lezárva" @@ -1572,8 +1576,8 @@ msgstr "Hiányzó érvényes valuta kód" msgid "No plugin" msgstr "Nincsen plugin" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1646,8 +1650,8 @@ msgstr "Kulcs string egyedi kell legyen" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Felhasználó" @@ -1655,8 +1659,8 @@ msgstr "Felhasználó" msgid "Price break quantity" msgstr "Ársáv mennyiség" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Ár" @@ -1678,8 +1682,8 @@ msgstr "Webhook neve" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Aktív" @@ -1687,7 +1691,7 @@ msgstr "Aktív" msgid "Is this webhook active" msgstr "Aktív-e ez a webhook" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Token" @@ -1757,7 +1761,7 @@ msgstr "Cím" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2173,7 +2177,7 @@ msgstr "Választható lehetőségek (vesszővel elválasztva)" msgid "Selection list for this parameter" msgstr "A paraméter választéklistája" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Engedélyezve" @@ -2205,8 +2209,8 @@ msgstr "Modell ID" msgid "ID of the target model for this parameter" msgstr "A célmodell azonosítója ehhez a paraméterhez" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Sablon" @@ -2263,7 +2267,7 @@ msgstr "Vonalkód beolvasás dátuma és ideje" msgid "URL endpoint which processed the barcode" msgstr "Vonalkód feldolgozó URL végpont" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Kontextus" @@ -2385,7 +2389,7 @@ msgid "Email Threads" msgstr "Email szálak" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Kulcs" @@ -2431,7 +2435,7 @@ msgstr "{verbose_name} megszakítva" msgid "A order that is assigned to you was canceled" msgstr "Egy hozzád rendelt megrendelés megszakítva" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Készlet érkezett" @@ -2525,7 +2529,7 @@ msgstr "Fájlnév" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "Modell típusa" @@ -2915,8 +2919,8 @@ msgstr "Alkatrészek alapból sablon alkatrészek legyenek" msgid "Parts can be assembled from other components by default" msgstr "Alkatrészeket alapból lehessen gyártani másik alkatrészekből" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Összetevő" @@ -2932,7 +2936,7 @@ msgstr "Beszerezhető" msgid "Parts are purchaseable by default" msgstr "Alkatrészek alapból beszerezhetők legyenek" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Értékesíthető" @@ -3145,7 +3149,7 @@ msgid "Log errors which occur when generating reports" msgstr "Jelentések generálása közben jelentkező hibák naplózása" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Lapméret" @@ -4129,49 +4133,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "Minden modell" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "A melléklethez nem tartozik model típus" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "Érvénytelen melléklet model típus" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "A legkisebb helyiérték nem lehet nagyobb mint a legnagyobb helyiérték" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "A legnagyobb helyiérték nem lehet kisebb mint a legkisebb helyiérték" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Üres domain nem engedélyezett." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Érvénytelen domain név: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "Csupa nagybetűs kell" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "Az érték egy változó neve legyen" @@ -4200,12 +4204,12 @@ msgid "Supplier is Active" msgstr "A Beszállító Aktív" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Gyártó" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Cég" @@ -4246,7 +4250,7 @@ msgid "Contact email address" msgstr "Kapcsolattartó email címe" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Névjegy" @@ -4298,7 +4302,7 @@ msgstr "Adószám" msgid "Company Tax ID" msgstr "Céges adószám" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Cím" @@ -4391,7 +4395,7 @@ msgid "Link to address information (external)" msgstr "Link a címinformációkhoz (külső)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Gyártói alkatrész" @@ -4409,7 +4413,7 @@ msgid "Select manufacturer" msgstr "Gyártó kiválasztása" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "MPN (Gyártói cikkszám)" @@ -4438,10 +4442,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészre kell hivatkoznia" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Beszállító" @@ -4449,7 +4453,7 @@ msgstr "Beszállító" msgid "Select supplier" msgstr "Beszállító kiválasztása" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Beszállítói cikkszám" @@ -4486,7 +4490,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimális díj (pl. tárolási díj)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Csomagolás" @@ -4534,7 +4538,7 @@ msgstr "Beszállító által használt alapértelmezett pénznem" msgid "Company Name" msgstr "Cégnév" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "Készleten" @@ -4723,7 +4727,7 @@ msgstr "Eredeti sor adat" msgid "Errors" msgstr "Hibák" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Érvényes" @@ -4839,7 +4843,7 @@ msgstr "Címkénkénti nyomtatandó mennyiség" msgid "Connected" msgstr "Csatlakoztatba" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Ismeretlen" @@ -4943,7 +4947,7 @@ msgstr "A tulajdonság kulcsa" msgid "Value of the property" msgstr "A tulajdonság értéke" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Csoport" @@ -4967,118 +4971,118 @@ msgstr "Maximális Előrehaladás" msgid "Maximum value for progress type, required if type=progress" msgstr "Maximális érték az előrehaladás típushoz, kötelező ha típus=előrehaladás" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Rendelés azonosítója" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "Kintlévő" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "Van projektszáma" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Készítette" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "Ez előtt létrehozva" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "Létrehozva ez után" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "Van kezdeti dátum" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "Kezdeti dátum ez előtt" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "Kezdeti dátum ez után" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "Van céldátum" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "Céldátum ez előtt" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "Céldátum ez után" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "Van árazás" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "Ez előtt befejezve" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "Befejezve ez után" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "Külső Gyártási Rendelés" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Rendelés" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "A rendelés teljesítve" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Belső alkatrész" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "A rendelés függőben" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Kész" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "Van kiszállítás" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Beszerzési rendelés" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5086,14 +5090,14 @@ msgstr "Beszerzési rendelés" msgid "Sales Order" msgstr "Vevői rendelés" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "Visszavétel" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5136,11 +5140,11 @@ msgstr "A cím nem egyezik a kiválasztott vállalattal" msgid "Order description (optional)" msgstr "Rendelés leírása (opcionális)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Válassz projektszámot ehhez a rendeléshez" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Link külső weboldalra" @@ -5152,7 +5156,7 @@ msgstr "Kezdés dátuma" msgid "Scheduled start date for this order" msgstr "A tervezett kezdeti dátum ehhez a gyártáshoz" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Cél dátum" @@ -5185,487 +5189,487 @@ msgstr "Kapcsolattartó ehhez a rendeléshez" msgid "Company address for this order" msgstr "Cég címei ehhez a rendeléshez" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Rendelés azonosító" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Állapot" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Beszerzési rendelés állapota" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Cég akitől a tételek beszerzésre kerülnek" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Beszállítói azonosító" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Beszállítói rendelés azonosító kód" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "érkeztette" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "Rendelés teljesítési dátuma" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Cél" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "Beérkezett tételek tárolója" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "Az alkatrész beszállítója meg kell egyezzen a beszerzési rendelés beszállítójával" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "Sortétel nem egyezik a beszerzési megrendeléssel" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "Sortételen hiányzik a kapcsolódó alkatrész" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "Mennyiség pozitív kell legyen" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Vevő" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Cég akinek a tételek értékesítésre kerülnek" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "Értékesítési rendelés állapot" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Vevői azonosító " -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Megrendelés azonosító kódja a vevőnél" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Kiszállítás dátuma" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "szállította" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "Rendelés már teljesítve" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "Rendelés már visszavonva" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Csak nyitott rendelés jelölhető késznek" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "A rendelés nem jelölhető késznek mivel függő szállítmányok vannak" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "A rendelést nem lehet befejezni mert hiányos foglalások vannak" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "A rendelés nem jelölhető késznek mivel nem teljesített sortételek vannak" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "A rendelés le van zárva és nem lehet módosítani" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Tétel mennyiség" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Sortétel azonosító" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Sortétel megjegyzései" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Cél dátuma ennek a sortételnek (hagyd üresen a rendelés céldátum használatához)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Sortétel leírása (opcionális)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "További kontextus ehhez a sorhoz" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Egységár" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "Vevői Rendelés Sortétel" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "Beszállítói alkatrésznek egyeznie kell a beszállítóval" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "Gyártási rendelést külsőnek kell jelölni" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "Gyártási rendeléseket csak összeszerelhető alkatrészekhez lehet kapcsolni" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "Gyártási rendelés alkatrészének meg kell egyeznie a sortétel alkatrésszel" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Beszállítói alkatrész" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Beérkezett" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Érkezett tételek száma" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Beszerzési ár" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Beszerzési egységár" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "Külső gyártási rendelés amit ez a sortétel teljesít" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "Vevői Rendelés Extra Sor" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "Vevői Rendelés Sortétel" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "Csak értékesíthető alkatrészeket lehet vevői rendeléshez adni" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Eladási ár" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Eladási egységár" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Kiszállítva" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Szállított mennyiség" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "Vevői Rendelés Szállítása" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "A szállítási címnek egyeznie kell az ügyféllel" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "Szállítási cím ehhez a szállítmányhoz" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Szállítás dátuma" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Szállítási dátum" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Kézbesítés dátuma" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Ellenőrizte" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Felhasználó aki ellenőrizte ezt a szállítmányt" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Szállítmány" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Szállítmány száma" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Nyomkövetési szám" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Szállítmány nyomkövetési információ" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Számlaszám" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Hozzátartozó számla referencia száma" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "Szállítmány már elküldve" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "Szállítmány nem tartalmaz foglalt készlet tételeket" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "A szállítmányt ellenőrizni kell, mielőtt befejezhetné" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "Vevői Rendelés Extra Sor" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "Vevői rendeléshez foglalások" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "Készlet tétel nincs hozzárendelve" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "Nem foglalható készlet egy másik fajta alkatrész sortételéhez" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "Nem foglalható készlet egy olyan sorhoz amiben nincs alkatrész" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "A lefoglalandó mennyiség nem haladhatja meg a készlet mennyiségét" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "Vevői rendelés nem egyezik a szállítmánnyal" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "Szállítmány nem egyezik a vevői rendeléssel" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Sor" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Vevői rendelés szállítmány azonosító" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Tétel" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Válaszd ki a foglalásra szánt készlet tételt" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Készlet foglalási mennyiség megadása" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "Visszavétel azonosító" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Cég akitől a tételek visszavételre kerülnek" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "Visszavétel állapota" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "Visszavétel sortétel" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "Készlettételt meg kell adni" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "Visszavétel mennyisége meghaladja a készletet" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "Visszavétel mennyisége nullánál nagyobb kell, hogy legyen" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "Érvénytelen mennyiség szerializált készlettételnél" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Válaszd ki a vevőtől visszavenni kívánt tételt" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Visszavétel dátuma" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Kimenetel" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Sortétel végső kimenetele" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Sortétel visszaküldésének vagy javításának költsége" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "Visszavétel extra tétel" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5693,7 +5697,7 @@ msgstr "Extra sorok másolása" msgid "Copy extra line items from the original order" msgstr "Az eredeti rendelés extra tételeinek másolása" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Paraméterek másolása" @@ -5785,11 +5789,11 @@ msgstr "Elemek összevonása" msgid "Merge items with the same part, destination and target date into one line item" msgstr "Azonos forrás és cél dátumú Alkatrész tételeinek összevonása egy tételre" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "SKU (leltári azonosító)" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Belső cikkszám" @@ -5826,7 +5830,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Írd be a batch kódját a beérkezett tételeknek" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Lejárati dátum" @@ -6057,123 +6061,131 @@ msgstr "Lejárt visszvételi utasítás" msgid "Return order {ro} is now overdue" msgstr "A {ro} Visszavételi utasítás már lejárt" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "Csillagozott" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "Csillagozottra szűrés" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Mélység" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "Kategória mélységre szűrés" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "Felső szint" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "Csúcs készlethelyre szűrés" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "Lépcsőzetes" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "Szűrt eredmények tartalmazzák az alkategóriákat" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "Szülő" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "Szülő kategóriára szűrés" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "Az adott kategória alkategóriáinak kihagyása" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "Van találat" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "Változat-e" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "Változat" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "Vannak Változatok" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "Alkatrészjegyzék ellenőrizve" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "Kaszkád Kategóriák" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "Ha igaz, tartalmazza az adott kategória alkategóriáiban lévő tételeket" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "Szűrés numerikus kategória azonosító vagy a 'null' literál szerint" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "Összeállított Alkatrész ellenőrizhető" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "Összetevő alkatrész ellenőrizhető" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "Használ" @@ -6214,7 +6226,7 @@ msgstr "Ebben a kategóriában évő alkatrészek kulcsszavai alapban" msgid "Icon" msgstr "Ikon" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Ikon (opcionális)" @@ -6350,7 +6362,7 @@ msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredmén msgid "Part category" msgstr "Alkatrész kategória" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "IPN (Belső Cikkszám)" @@ -6359,7 +6371,7 @@ msgstr "IPN (Belső Cikkszám)" msgid "Part revision or version number" msgstr "Alkatrész változat vagy verziószám (pl. szín, hossz, revízió, stb.)" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Változat" @@ -6383,7 +6395,7 @@ msgstr "Alapértelmezett lejárat" msgid "Expiry time (in days) for stock items of this part" msgstr "Lejárati idő (napban) ennek az alkatrésznek a készleteire" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Minimális készlet" @@ -6391,7 +6403,7 @@ msgstr "Minimális készlet" msgid "Minimum allowed stock level" msgstr "Minimálisan megengedett készlet mennyiség" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6760,7 +6772,7 @@ msgstr "Al alkatrész" msgid "Select part to be used in BOM" msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6912,351 +6924,351 @@ msgstr "Szülő Kategória" msgid "Parent part category" msgstr "Felsőbb szintű alkatrész kategória" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Alkategóriák" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "Eredmények" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "Eszerint a sablon szerint rögzített eredmények száma" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Beszerzési pénzneme ennek a készlet tételnek" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "A fájl nem kép" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Eredeti alkatrész" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Válassz eredeti alkatrészt a másoláshoz" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Kép másolása" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Kép másolása az eredeti alkatrészről" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Alkatrészjegyzék másolása" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Alkatrészjegyzék másolása az eredeti alkatrészről" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Paraméterek másolása az eredeti alkatrészről" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Megjegyzések másolása" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "Megjegyzések másolása az eredeti alkatrészről" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "Teszt másolása" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "Teszt sablonok másolása az eredeti alkatrészről" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Kezdeti készlet mennyiség" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Add meg a kezdeti készlet mennyiséget. Ha nulla akkor nem lesz készlet létrehozva." -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "Kezdeti készlet hely" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "Add meg a kezdeti készlet helyét" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Válassz beszállítót (hagyd üresen ha nem kell létrehozni)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Válassz gyártót (hagyd üresen ha nem kell létrehozni)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Gyártói cikkszám" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "A kiválasztott cég nem érvényes beszállító" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "A kiválasztott cég nem érvényes gyártó" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "Van már ilyen gyártói alkatrész" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "Van már ilyen beszállítói alkatrész" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Kategória neve" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "Gyártásban" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "Az alkatrészből jelenleg ennyi van gyártás alatt" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "Már beütemezett de még nem kész gyártási mennyiség" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Készlet tételek" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "Verziók" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Teljes készlet" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "Nem lefoglalt készlet" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "Variánsok Raktárkészlet" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Alkatrész másolása" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "Kezdeti adatok másolása egy másik alkatrészről" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Kezdeti készlet" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Kezdeti készlet mennyiség létrehozása" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Beszállító információ" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Kezdeti beszállító adatok hozzáadása" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Kategória paraméterek másolása" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "Paraméter sablonok másolása a kiválasztott alkatrész kategóriából" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Meglévő kép" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "A meglévő alkatrész képfájl neve" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "A képfájl nem létezik" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Teljes alkatrészjegyzék jóváhagyása" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Gyártható" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "Gyártásokhoz szükséges" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "Gyártási rendelésekhez foglalva" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "Értékesítési rendeléshez szükséges" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "Értékesítési rendeléshez lefoglalva" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Minimum ár" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Számított minimum ár felülbírálása" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Minimum ár pénzneme" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Maximum ár" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "Számított maximum ár felülbírálása" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Maximum ár pénzneme" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Frissítés" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "Alkatrész árak frissítése" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Megadott pénznem átváltása {default_currency}-re sikertelen" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "A Minimum ár nem lehet nagyobb mint a Maximum ár" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "A Maximum ár nem lehet kisebb mint a Minimum ár" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "Szülő összeállítás kiválasztása" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "Összetevő alkatrész kijelölése" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Létező adat törlése" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Meglévő alkatrészjegyzék tételek törlése a másolás előtt" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Örököltekkel együtt" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Sablon alkatrészektől örökölt alkatrészjegyzék tételek használata" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Hibás sorok kihagyása" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Engedély a hibás sorok kihagyására" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Helyettesítő alkatrészek másolása" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "Helyettesítő alkatrészek másolása az alkatrészjegyzék tételek másolásakor" @@ -7327,91 +7339,91 @@ msgstr "Nincs megadva művelet" msgid "No matching action found" msgstr "Nincs egyező művelet" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "Nincs egyező vonalkód" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Egyezés vonalkódra" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "Model nem támogatott" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "Model példány hiányzik" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "Ez a vonalkód már egy másik tételé" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "Nem található megfelelő alkatrész adat" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "Nem található megfelelő beszállítói alkatrész" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "Több beszállítói alkatrész található" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "Nincsen vonalkód adathoz illeszkedő plugin" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "Beszállítói alkatrész található" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "Ez a termék már bevételezve" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "A szállítói vonalkódhoz nincsen plugin találat" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "Több egyező sortétel is található" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "Nincs egyező sortétel" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "Nincs értékesítési rendelés biztosítva" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "Vonalkód nem egyezik egy létező készlet tétellel sem" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "Készlet tétel nem egyezik a sortétellel" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "Nincs elegendő" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "Készlet tétel lefoglalva egy vevői rendeléshez" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "Nincs elég információ" @@ -7993,7 +8005,7 @@ msgstr "Szegély" msgid "Print a border around each label" msgstr "Az egyes címkék körüli margó" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "Fekvő" @@ -8482,136 +8494,136 @@ msgstr "Jogi információk" msgid "Letter" msgstr "„Letter” méret" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "Ilyen nevű Sablon fájl már létezik" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Sablon neve" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "Sablon leírása" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "Verziószám (automatikusan nő)" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "A nyomtatáson a modelhez kapcsolás" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "Jelentés kimenetének mentése mellékletként a kapcsolt model példányhoz nyomtatáskor" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Fájlnév minta" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "Minta a fájlnevek előállításához" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "Sablon engedélyezve" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "A sablon által célzott model típus" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Szűrők" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "Sablon lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "Sablon file" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "Lapméret a PDF riportokhoz" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "Jelentés fekvő nézetben" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "Összevonás" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "Jelentés renderelése a kiválasztott tételekhez" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "Jelentés a {self.name} sablon alapján" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "Szintaxis hiba a sablonban" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "Hiba a jelentés renderelésekor" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "Hiba a jelentés generálása során" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "Hiba a jelentés kimenetének összefésülése során" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Szélesség [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Címke szélessége, mm-ben" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Magasság [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Címke magassága, mm-ben" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "Címkenyomtatási hiba" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Részlet" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Riport részlet fájl" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Részlet fájl leírása" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Eszköz" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Riport asset fájl" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Asset fájl leírása" @@ -8767,200 +8779,200 @@ msgstr "Nincs eredmény" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "A képfile nem található" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "part_image elem csak alkatrész példánynál használható" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "company_image elem csak cég példánynál használható" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "Hely mélységre szűrés" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "Csúcs készlethelyre szűrés" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "Szűrt eredmények tartalmazzák az alhelyeket" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "Szülő hely" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "Szülő helyre szűrés" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "Alkatrész neve (kisbetű/nagybetű nem számít)" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "Az alkatrész neve tartalmazza (kisbetű/nagybetű nem számít)" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "Alkatrész neve (regex)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "Alkatrész IPN (kisbetű/nagybetű nem számít)" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "Alkatrész IPN tartalmazza (kisbetű/nagybetű nem számít)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "Alkatrész IPN (regexp)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "Minimális készlet" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "Maximális készlet" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Státuszkód" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Külső hely" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "Felhasználva Gyártási Rendelésben" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "Más készlettételbe beépítve" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "Alkatrész fa" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "Módosítva ezelőtt" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "Frissítve ez után" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "Leltárazva ezelőtt" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "Leltárazva ezután" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "Lejárat előtt" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "Lejárat után" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "Állott" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "Adj meg egy készlettétel azonosítót - PK-t - hogy a tétel és leszármazottai kihagyásához" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "Készlethelyek alábontása" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "Az al-készlethelyeket is beleértve" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "Készlethely azonosító alapján szűrés vagy a 'null'-ra" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "Mennyiség megadása kötelező" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "Egy érvényes alkatrészt meg kell adni" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "A megadott beszállítói alkatrész nem létezik" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "A beszállítói alkatrészhez van megadva csomagolási mennyiség, de a use_pack_size flag nincs beállítva" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Sorozatszámot nem lehet megadni nem követésre kötelezett alkatrész esetén" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "Beépítettek Belefoglalása" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "Ha igaz, tartalmazza a megadott készlettétel alá beépített tételek teszteredményeit" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "Szűrés numerikus készlettétel azonosító szerint" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "A(z) {id} azonosítójú készlettétel nem létezik" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8996,7 +9008,7 @@ msgstr "Tulajdonos kiválasztása" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "A szerkezeti raktári helyekre nem lehet direktben raktározni, csak az al-helyekre." -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Külső" @@ -9102,7 +9114,7 @@ msgstr "Válassz egy egyező beszállítói alkatrészt ehhez a készlet tételh msgid "Where is this stock item located?" msgstr "Hol található ez az alkatrész?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "A csomagolása ennek a készlet tételnek itt van tárolva" @@ -9118,7 +9130,7 @@ msgstr "Ez a tétel be van építve egy másik tételbe?" msgid "Serial number for this item" msgstr "Sorozatszám ehhez a tételhez" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Batch kód ehhez a készlet tételhez" @@ -9235,7 +9247,7 @@ msgstr "Készlet tétel gyártás alatt" msgid "Serialized stock cannot be merged" msgstr "Követésre kötelezett készlet nem vonható össze" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Duplikált készlet tételek vannak" @@ -9399,7 +9411,7 @@ msgstr "Írd be a sorozatszámokat az új tételekhez" msgid "Supplier Part Number" msgstr "Beszállítói Cikkszám" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Lejárt" @@ -9429,8 +9441,8 @@ msgstr "Nincsen készlettétel megadva" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "A mennyiség nem lépheti túl a rendelkezésre álló készletet ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Cél készlet hely" @@ -9502,127 +9514,127 @@ msgstr "Válaszd ki a státuszváltásra szánt készlet tételeket" msgid "No stock items selected" msgstr "Nincs készlet tétel kiválasztva" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Alhelyek" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "Felsőbb szintű készlet hely" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "Az alkatrésznek értékesíthetőnek kell lennie" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "A tétel egy vevő rendeléshez foglalt" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "A tétel egy gyártási utasításhoz foglalt" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Vevő akihez rendeljük a készlet tételeket" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "A kiválasztott cég nem egy vevő" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Készlet hozzárendelés megjegyzései" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "A készlet tételek listáját meg kell adni" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Készlet összevonás megjegyzései" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Nem egyező beszállítók megengedése" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Különböző beszállítói alkatrészekből származó készletek összevonásának engedélyezése" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Nem egyező állapotok megjelenítése" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Különböző állapotú készletek összevonásának engedélyezése" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "Legalább két készlet tételt meg kell adni" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "Nincs változás" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Készlet tétel elsődleges kulcs értéke" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "Készlettétel nincs készleten" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "Készlettétel már készleten van" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "Mennyiség nem lehet negatív" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Készlet tranzakció megjegyzései" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "Meglévő készletbe olvasztás" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "Visszaérkezett tételek beolvasztása a készlettételekbe ha lehetséges" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "Következő sorozatszám" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "Előző Sorozatszám" @@ -9920,7 +9932,7 @@ msgstr "Jogosultságok" msgid "Important dates" msgstr "Fontos dátumok" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "A token visszavonva" @@ -9928,163 +9940,163 @@ msgstr "A token visszavonva" msgid "Token has expired" msgstr "A token lejárt" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "API Token" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "API Tokenek" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Token név" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Egyedi token név" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Token lejárati dátum" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Utolsó tevékenység" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "Token utolsó használata" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Visszavonva" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Jogosultságok" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Nézet" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Jogosultság tételek megtekintéséhez" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Hozzáad" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Jogosultság tételek hozzáadásához" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Módosítás" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Jogosultság tételek szerkesztéséhez" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Törlés" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Jogosultság tételek törléséhez" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "Robot" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "Belső" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "Vendég" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "Nyelv" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "Felhasználó által preferált nyelv" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "Téma" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "Web UI JSON beállításai - kézzel nem szabad szerkeszteni!" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "Widgetek" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "Dashboard widgetek JSON beállításai - kézzel szerkeszteni tilos!" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "Megjelenítendő név" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "Felhasználó választott megjelenítési neve" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "Pozíció" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "Fő munkakör vagy pozíció" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "Felhasználói állapot üzenet" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "Felhasználó földrajzi helye" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "A felhasználó éppen használja a rendszert" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "Javasolt elérhetőségek" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "Felhasználó típusa" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "Milyen típusú ez a felhasználó?" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "Szervezet" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "Felhasználó elsődleges szervezete/kötődése" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "Elsődleges csoport" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "Felhasználó elsődleges csoportja" diff --git a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po index cd58619479..a6f25b3013 100644 --- a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API endpoint tidak ditemukan" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Barang harus disediakan sebagai daftar" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Pengguna tidak memiliki izin untuk melihat model ini" @@ -65,11 +65,11 @@ msgstr "Konfirmasi alamat email" msgid "You must type the same email each time." msgstr "Masukkan email yang sama." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Alamat surel utama yang diberikan tidak valid." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Domain surel yang diberikan tidak perbolehkan." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Jumlah yang diberikan tidak valid" @@ -105,22 +105,22 @@ msgstr "Masukkan tanggal" msgid "Invalid decimal value" msgstr "" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Catatan" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Nilai yang diberikan tidak sesuai dengan pola yang ditentukan: " @@ -164,51 +164,51 @@ msgstr "Hapus tag-tag HTML dari nilai ini" msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Koneksi Galat" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Ukuran gambar terlalu besar" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "URL yang diberikan bukan file gambar yang valid" @@ -220,117 +220,121 @@ msgstr "" msgid "Email" msgstr "Surel" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Anda harus mengaktifkan autentikasi dua faktor sebelum melakukan hal lainnya." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Pilihan tidak valid" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Nama" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Keterangan" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Keterangan (opsional)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Direktori" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Data Barcode" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Data barcode pihak ketiga" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Hash unik data barcode" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Sudah ada barcode yang sama" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Terjadi Kesalahan Server" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Sebuah kesalahan telah dicatat oleh server." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Harus berupa angka yang valid" msgid "Currency" msgstr "Mata Uang" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "" @@ -521,11 +525,11 @@ msgstr "" msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "" msgid "Not a valid currency code" msgstr "Bukan kode mata uang yang valid" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "" @@ -546,23 +550,23 @@ msgstr "" msgid "Parent Build" msgstr "Produksi Induk" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "Bagian" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "" @@ -593,7 +597,7 @@ msgstr "" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "" @@ -601,11 +605,11 @@ msgstr "" msgid "Assigned To" msgstr "" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Pesanan harus dibatalkan sebelum dapat dihapus" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Tersedia" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Order Produksi" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Lokasi" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Referensi Order Produksi" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Referensi Order Penjualan" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Lokasi Sumber" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Lokasi Tujuan" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Kode status pembuatan" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Kode Kelompok" @@ -883,8 +887,8 @@ msgstr "Target tanggal selesai" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Target tanggal selesai produksi. Produksi akan menjadi terlambat setelah tanggal ini." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Tanggal selesai" @@ -900,7 +904,7 @@ msgstr "Diserahkan oleh" msgid "User who issued this build order" msgstr "Pengguna yang menyerahkan order ini" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "" @@ -962,9 +966,9 @@ msgstr "Hasil produksi tidak sesuai dengan order produksi" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "Jumlah harus lebih besar daripada nol" @@ -999,7 +1003,7 @@ msgstr "" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Jumlah harus 1 untuk stok dengan nomor seri" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Item stok teralokasikan terlalu banyak" @@ -1057,8 +1061,8 @@ msgstr "Item stok teralokasikan terlalu banyak" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Stok Item" @@ -1082,7 +1086,7 @@ msgstr "Tujuan stok item" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "" @@ -1139,7 +1143,7 @@ msgstr "Alokasikan nomor seri secara otomatis" msgid "Automatically allocate required items with matching serial numbers" msgstr "Alokasikan item yang diperlukan dengan nomor seri yang sesuai secara otomatis" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Nomor-nomor seri berikut sudah ada atau tidak valid" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part harus mengarah ke bagian yang sesuai dengan order produksi" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "Item harus tersedia dalam stok" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "Item tagihan material" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "" @@ -1527,31 +1531,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Pengguna" @@ -1654,8 +1658,8 @@ msgstr "Pengguna" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Harga" @@ -1677,8 +1681,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Aktif" @@ -1686,7 +1690,7 @@ msgstr "Aktif" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "" @@ -1756,7 +1760,7 @@ msgstr "Judul" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Aktif" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "" @@ -2430,7 +2434,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Barang diterima" @@ -2524,7 +2528,7 @@ msgstr "Nama File" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Komponen" @@ -2931,7 +2935,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Ukuran Halaman" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Perusahaan" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Kontak alamat surel" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Kontak" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "" @@ -4448,7 +4452,7 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4533,7 +4537,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Tidak diketahui" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Selesai" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "" msgid "Sales Order" msgstr "" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Status" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Pelanggan" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Harga Jual" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Dikirim" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Jumlah yang dialokasikan harus lebih dari nol" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "" @@ -6382,7 +6394,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "" @@ -6390,7 +6402,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Harga Minimal" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Harga Maksimal" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Perbarui" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "Tidak ada tindakan yang ditentukan" msgid "No matching action found" msgstr "Aksi tidak ditemukan" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "Tidak cukup informasi" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "Legal" msgid "Letter" msgstr "Letter" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8766,200 +8778,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "Token telah kadaluarsa" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Nama Token" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Terakhir diliat" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Ganti" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po index a1475ea899..c84f131971 100644 --- a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "Endpoint API non trovato" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Gli articoli devono essere forniti come elenco" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Lista elementi fornita non valida" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "Tutti i filtri devono essere usati solo con true" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "Nessun elemento corrisponde ai criteri forniti" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "Nessun dato fornito" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "Questo campo deve essere unico." -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "L'utente non ha i permessi per vedere questo modello" @@ -65,11 +65,11 @@ msgstr "Conferma indirizzo email" msgid "You must type the same email each time." msgstr "È necessario digitare la stessa e-mail ogni volta." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "L'indirizzo email principale fornito non è valido." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "L'indirizzo di posta elettronica fornito non è approvato." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Impossibile convertire {original} in {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Quantità inserita non valida" @@ -105,22 +105,22 @@ msgstr "Inserisci la data" msgid "Invalid decimal value" msgstr "Valore decimale non valido" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Note" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Il valore '{name}' non è nel formato del pattern" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Il valore fornito non corrisponde al modello richiesto: " @@ -164,51 +164,51 @@ msgstr "Rimuovi i tag HTML da questo valore" msgid "Data contains prohibited markdown content" msgstr "I dati contengono un contenuto in markdown proibito" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Errore di connessione" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Il server ha risposto con un codice di stato non valido" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Si è verificata un'eccezione" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Il server ha risposto con valore Content-Length non valido" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Immagine troppo grande" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Il download dell'immagine ha superato la dimensione massima" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Il server remoto ha restituito una risposta vuota" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "L'URL fornito non è un file immagine valido" @@ -220,117 +220,121 @@ msgstr "Accedi all'app" msgid "Email" msgstr "Email" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Devi abilitare l'autenticazione a due fattori prima di fare qualsiasi altra cosa." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Errore nell'eseguire la convalida del plugin" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "I metadati devono essere un oggetto python dict" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Metadati Plugin" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "Campo di metadati JSON, da utilizzare con plugin esterni" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Schema formattato impropriamente" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Formato chiave sconosciuta" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Formato chiave mancante" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Il campo di riferimento non può essere vuoto" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Il campo deve corrispondere al modello richiesto" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Numero di riferimento troppo grande" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Scelta non valida" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Nome" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Descrizione" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Descrizione (opzionale)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Percorso" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Nomi duplicati non possono esistere sotto lo stesso genitore" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Note di Markdown (opzionale)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Dati del Codice a Barre" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Dati Codice a Barre applicazioni di terze parti" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Codice a Barre" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Codice univoco del codice a barre" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Trovato codice a barre esistente" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Errore del server" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Un errore è stato loggato dal server." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Deve essere un numero valido" msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Selezionare la valuta dalle opzioni disponibili" @@ -521,11 +525,11 @@ msgstr "Cinese (Semplificato)" msgid "Chinese (Traditional)" msgstr "Cinese (Tradizionale)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "Aggiornamento disponibile" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "È disponibile un aggiornamento per InvenTree" @@ -537,7 +541,7 @@ msgstr "Unità fisica non valida" msgid "Not a valid currency code" msgstr "Non è un codice valuta valido" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Stato dell'ordine" @@ -546,23 +550,23 @@ msgstr "Stato dell'ordine" msgid "Parent Build" msgstr "Produzione Genitore" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "Includi Varianti" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "Includi Varianti" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "Includi Varianti" msgid "Part" msgstr "Articolo" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Categoria" @@ -593,7 +597,7 @@ msgstr "Categoria" msgid "Ancestor Build" msgstr "Produzione Antenata" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Assegnato a me" @@ -601,11 +605,11 @@ msgstr "Assegnato a me" msgid "Assigned To" msgstr "Assegnato a" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Creato prima" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Creato dopo" @@ -641,99 +645,99 @@ msgstr "Completato prima" msgid "Completed after" msgstr "Completato dopo" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "Data minima" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "Data massima" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "Escludi Albero" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "La produzione deve essere annullata prima di poter essere eliminata" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Consumabile" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Opzionale" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Assemblaggio" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Monitorato" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Testabile" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Ordine In Corso" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Allocato" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Utilizzato" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Disponibile" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Ordinato" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Ordine di Produzione" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Posizione" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "Output" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Filtra per ID articolo stock di output. Usa 'null' per trovare elementi di produzione disinstallati." @@ -773,9 +777,9 @@ msgstr "La data di scadenza deve essere successiva alla data d'inizio" msgid "Build Order Reference" msgstr "Riferimento Ordine Di Produzione" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Numero di riferimento ordine di vendita" msgid "Sales Order to which this build is allocated" msgstr "Ordine di vendita a cui questa produzione viene assegnata" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Posizione Di Origine" @@ -821,7 +825,7 @@ msgstr "Build Esterno" msgid "This build order is fulfilled externally" msgstr "Questo ordine di produzione è eseguito esternamente" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Posizione Della Destinazione" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Codice stato di produzione" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Codice Lotto" @@ -883,8 +887,8 @@ msgstr "Data completamento obiettivo" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Data di completamento della produzione. Dopo tale data la produzione sarà in ritardo." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Data di completamento" @@ -900,7 +904,7 @@ msgstr "Rilasciato da" msgid "User who issued this build order" msgstr "Utente che ha emesso questo ordine di costruzione" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Priorità di questo ordine di produzione" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Codice del progetto" @@ -962,9 +966,9 @@ msgstr "L'output della produzione non corrisponde all'ordine di compilazione" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "La quantità deve essere maggiore di zero" @@ -999,7 +1003,7 @@ msgstr "Crea oggetto" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "La quantità deve essere 1 per lo stock serializzato" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "L'articolo in giacenza è sovrallocato" @@ -1057,8 +1061,8 @@ msgstr "L'articolo in giacenza è sovrallocato" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Articoli in magazzino" @@ -1082,7 +1086,7 @@ msgstr "Destinazione articolo in giacenza" msgid "Build Level" msgstr "Livello Produzione" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Nome Articolo" @@ -1139,7 +1143,7 @@ msgstr "Numeri di Serie Assegnazione automatica" msgid "Automatically allocate required items with matching serial numbers" msgstr "Assegna automaticamente gli articoli richiesti con i numeri di serie corrispondenti" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "I seguenti numeri di serie sono già esistenti o non sono validi" @@ -1272,7 +1276,7 @@ msgstr "Articolo linea di produzione" msgid "bom_item.part must point to the same part as the build order" msgstr "gli elementi degli articoli della distinta base devono puntare alla stessa parte dell'ordine di produzione" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "L'articolo deve essere disponibile" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "Costruzione" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Articolo Fornitore" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Consenti Le Varianti" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "Distinta base (Bom)" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "In Produzione" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "Pianificato per la produzione" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Scorte esterne" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Disponibilità in magazzino" @@ -1527,31 +1531,31 @@ msgstr "Ordine di produzione in ritardo" msgid "Build order {bo} is now overdue" msgstr "L'ordine di produzione {bo} è in ritardo" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "È Un Connegamento" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "E' un file" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "L'utente non ha il permesso di eliminare questi allegati" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "L'utente non ha il permesso di eliminare questo allegato" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "Lista di selezione bloccata" @@ -1571,8 +1575,8 @@ msgstr "Nessun codice valuta valido fornito" msgid "No plugin" msgstr "Nessun plugin" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "La stringa chiave deve essere univoca" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Utente" @@ -1654,8 +1658,8 @@ msgstr "Utente" msgid "Price break quantity" msgstr "Quantità prezzo limite" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Prezzo" @@ -1677,8 +1681,8 @@ msgstr "Nome per questa notifica" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Attivo" @@ -1686,7 +1690,7 @@ msgstr "Attivo" msgid "Is this webhook active" msgstr "È questa notifica attiva" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Token" @@ -1756,7 +1760,7 @@ msgstr "Titolo" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "Scelte valide per questo parametro (separato da virgola)" msgid "Selection list for this parameter" msgstr "Lista di selezione per questo parametro" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Abilitato" @@ -2204,8 +2208,8 @@ msgstr "ID Modello" msgid "ID of the target model for this parameter" msgstr "ID del modello di destinazione per questo parametro" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Modello" @@ -2262,7 +2266,7 @@ msgstr "Data e ora della scansione del codice a barre" msgid "URL endpoint which processed the barcode" msgstr "Endpoint URL che ha elaborato il codice a barre" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Contesto" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "Discussioni Email" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Chiave" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} cancellato" msgid "A order that is assigned to you was canceled" msgstr "Un ordine assegnato a te è stato annullato" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Elemento ricevuto" @@ -2524,7 +2528,7 @@ msgstr "Nome del file" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "Tipo di modello" @@ -2914,8 +2918,8 @@ msgstr "Gli articoli sono modelli per impostazione predefinita" msgid "Parts can be assembled from other components by default" msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Componente" @@ -2931,7 +2935,7 @@ msgstr "Acquistabile" msgid "Parts are purchaseable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Vendibile" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "Errori di log che si verificano durante la generazione dei report" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Dimensioni pagina" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "Tutti i modelli" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "Nessun tipo di modello allegato fornito" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "Tipo di modello allegato non valido" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "I posti minimi non possono essere superiori al massimo" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "Il numero massimo di posti non può essere inferiore al minimo" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Un dominio vuoto non è consentito." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Nome dominio non valido: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "Il valore deve essere maiuscolo" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "Il valore deve essere un identificatore variabile valido" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "Il fornitore è attivo" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Produttore" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Azienda" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Indirizzo email" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Contatto" @@ -4297,7 +4301,7 @@ msgstr "Partita IVA" msgid "Company Tax ID" msgstr "Codice Fiscale Azienda" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Indirizzo" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "Collegamento alle informazioni sull'indirizzo (esterno)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Codice articolo produttore" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Seleziona Produttore" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "Codice articolo produttore (MPN)" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Fornitore" @@ -4448,7 +4452,7 @@ msgstr "Fornitore" msgid "Select supplier" msgstr "Seleziona fornitore" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Unità di giacenza magazzino fornitore" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Onere minimo (ad esempio tassa di stoccaggio)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Confezionamento" @@ -4533,7 +4537,7 @@ msgstr "Valuta predefinita utilizzata per questo fornitore" msgid "Company Name" msgstr "Nome Azienda" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "In magazzino" @@ -4722,7 +4726,7 @@ msgstr "Dati riga originali" msgid "Errors" msgstr "Errori" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Valido" @@ -4838,7 +4842,7 @@ msgstr "Numero di copie da stampare per ogni etichetta" msgid "Connected" msgstr "Connesso" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Sconosciuto" @@ -4942,7 +4946,7 @@ msgstr "Chiave della proprietà" msgid "Value of the property" msgstr "Valore della proprietà" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Gruppo" @@ -4966,118 +4970,118 @@ msgstr "Progresso Massimo" msgid "Maximum value for progress type, required if type=progress" msgstr "Valore massimo per il tipo di avanzamento, richiesto se tipo = progresso" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Riferimento ordine" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "In Sospeso" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "Ha il codice del progetto" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Creato Da" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "Creato prima" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "Creato dopo" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "Ha data d'inizio" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "Data d'inizio prima" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "Data d'inizio dopo" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "Ha data di fine" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "Data obiettivo prima" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "Data obiettivo dopo" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "Prezzo Articolo" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "Completato prima" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "Completato dopo" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "Ordine di Produzione Esterno" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Ordine" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "Ordine completato" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Articolo interno" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "Ordine in sospeso" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Completato" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "Ha Spedizione" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Ordine D'Acquisto" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Ordine D'Acquisto" msgid "Sales Order" msgstr "Ordini di Vendita" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "Restituisci ordine" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "L'indirizzo non corrisponde all'azienda selezionata" msgid "Order description (optional)" msgstr "Descrizione dell'ordine (opzionale)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Seleziona il codice del progetto per questo ordine" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Collegamento a un sito web esterno" @@ -5151,7 +5155,7 @@ msgstr "Data iniziale" msgid "Scheduled start date for this order" msgstr "Data d'inizio programmata per questo ordine" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Data scadenza" @@ -5184,487 +5188,487 @@ msgstr "Punto di contatto per questo ordine" msgid "Company address for this order" msgstr "Indirizzo dell'azienda per questo ordine" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Riferimento ordine" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Stato" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Stato ordine d'acquisto" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Azienda da cui sono stati ordinati gli articoli" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Riferimento fornitore" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Codice di riferimento ordine fornitore" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "ricevuto da" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "Data ordine completato" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Destinazione" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "Destinazione per gli elementi ricevuti" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "Il fornitore dell'articolo deve corrispondere al fornitore dell'ordine di produzione" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "L'elemento di riga non corrisponde all'ordine di acquisto" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "Manca un elemento collegato" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "La quantità deve essere un numero positivo" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Cliente" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Azienda da cui sono stati ordinati gli elementi" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "Stato ordine di vendita" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Riferimento Cliente " -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Codice di riferimento Ordine del Cliente" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Data di spedizione" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "spedito da" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "L'ordine è già stato completato" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "L'ordine è già stato annullato" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Solo un ordine aperto può essere contrassegnato come completo" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "L'ordine non può essere completato in quanto ci sono spedizioni incomplete" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "L'ordine non può essere completato perché ci sono allocazioni incomplete" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "L'ordine non può essere completato perché ci sono elementi di riga incompleti" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "L'ordine è bloccato e non può essere modificato" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Quantità Elementi" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Riferimento Linea Elemento" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Note linea elemento" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Data di destinazione per questa voce di riga (lasciare vuoto per utilizzare la data di destinazione dall'ordine)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Descrizione della parte (opzionale)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "Contesto aggiuntivo per questa voce" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Prezzo unitario" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "Riga ordine d'acquisto" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "L'articolo del fornitore deve corrispondere al fornitore" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "L'ordine di produzione deve essere contrassegnato come esterno" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "Gli ordini di costruzione possono essere collegati solo alle parti di assemblaggio" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "L'articolo dell'ordine di produzione deve corrispondere all'articolo della riga" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Articolo Fornitore" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Ricevuto" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Numero di elementi ricevuti" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Prezzo di Acquisto" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Prezzo di acquisto unitario" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "Ordine di produzione esterno che deve essere eseguito da questo articolo" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "Riga Extra ordine di acquisto" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "Articolo ordine di vendita" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "Solo gli articoli vendibili possono essere assegnati a un ordine di vendita" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Prezzo di Vendita" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Prezzo unitario di vendita" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Spedito" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Quantità spedita" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "Spedizione dell'ordine di vendita" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "L'indirizzo di spedizione deve corrispondere al cliente" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "Indirizzo di consegna per questa spedizione" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Data di spedizione" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Data di consegna" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Data di consegna della spedizione" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Verificato Da" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Utente che ha controllato questa spedizione" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Spedizione" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Numero di spedizione" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Numero di monitoraggio" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Informazioni di monitoraggio della spedizione" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Numero Fattura" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Numero di riferimento per la fattura associata" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "La spedizione è già stata spedita" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "La spedizione non ha articoli di stock assegnati" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "La spedizione deve essere controllata prima che possa essere completata" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "Riga Extra ordine di vendita" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "Assegnazione Ordini Di Vendita" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "L'elemento di magazzino non è stato assegnato" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "Impossibile allocare l'elemento stock a una linea con un articolo diverso" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "Impossibile allocare stock a una riga senza un articolo" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "La quantità di assegnazione deve essere maggiore di zero" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "La quantità deve essere 1 per l'elemento serializzato" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "L'ordine di vendita non corrisponde alla spedizione" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "La spedizione non corrisponde all'ordine di vendita" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Linea" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Riferimento della spedizione ordine di vendita" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Elemento" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Seleziona elemento stock da allocare" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Inserisci la quantità assegnata alla giacenza" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "Riferimento ordine di reso" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Società a cui vengono restituiti gli articoli" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "Stato ordine di reso" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "Articolo Linea Ordine Reso" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "L'elemento stock deve essere specificato" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "Quantità di reso superiore alla quantità di scorta" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "La quantità di reso deve essere maggiore di zero" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "Quantità non valida per l'elemento stock serializzato" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Seleziona l'elemento da restituire dal cliente" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Data di ricezione" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "La data in cui questo articolo restituito è stato ricevuto" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Risultati" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Risultato per questa voce di riga" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Costo associato alla restituzione o riparazione per questa voce di linea" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "Riga Extra ordine di reso" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "Copia Linee Extra" msgid "Copy extra line items from the original order" msgstr "Copia gli elementi di riga extra dall'ordine originale" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Copia parametri" @@ -5784,11 +5788,11 @@ msgstr "Unisci elementi" msgid "Merge items with the same part, destination and target date into one line item" msgstr "Unisce gli elementi con lo stesso articolo, destinazione e data di destinazione in una riga" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "Codice articolo" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Numero Dell'articolo Interno" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Inserisci il codice univoco per gli articoli in arrivo" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Data di Scadenza" @@ -6056,123 +6060,131 @@ msgstr "Ordini di Reso in Ritardo" msgid "Return order {ro} is now overdue" msgstr "L'ordine di reso {ro} è ora in ritardo" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "Preferiti" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "Filtra per categorie preferite" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Profondità" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "Filtra per profondità categoria" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "Livello principale" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "Filtra per categorie di primo livello" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "Cascata" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "Includi sottocategorie nei risultati filtrati" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "Genitore" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "Filtra per categoria genitore" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "Escludi sottocategorie sotto la categoria specificata" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "Ha Risultati" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "È una Variante" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "E' una revisione" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "Ha revisioni" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "BOM Valido" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "Categorie a Cascata" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "Se Vero, includere gli elementi nelle categorie figlie della categoria specificata" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "Filtra per categoria ID numerica o per la stringa 'null'" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "L'articolo assemblato è provabile" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "Il componente è provabile" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "Utilizzi" @@ -6213,7 +6225,7 @@ msgstr "Parole chiave predefinite per gli articoli in questa categoria" msgid "Icon" msgstr "Icona" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Icona (facoltativa)" @@ -6349,7 +6361,7 @@ msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca" msgid "Part category" msgstr "Categoria articolo" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "IPN - Numero di riferimento interno" @@ -6358,7 +6370,7 @@ msgstr "IPN - Numero di riferimento interno" msgid "Part revision or version number" msgstr "Numero di revisione o di versione" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Revisione" @@ -6382,7 +6394,7 @@ msgstr "Scadenza Predefinita" msgid "Expiry time (in days) for stock items of this part" msgstr "Scadenza (in giorni) per gli articoli in giacenza di questo pezzo" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Scorta Minima" @@ -6390,7 +6402,7 @@ msgstr "Scorta Minima" msgid "Minimum allowed stock level" msgstr "Livello minimo di giacenza consentito" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "Articolo subordinato" msgid "Select part to be used in BOM" msgstr "Seleziona l'articolo da utilizzare nella Distinta Base" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "Categoria Superiore" msgid "Parent part category" msgstr "Categoria articolo principale" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Sottocategorie" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "Risultati" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "Numero di risultati registrati rispetto a questo modello" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Valuta di acquisto di questo articolo in stock" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "Il file non è un immagine" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Articolo Originale" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Seleziona l'articolo originale da duplicare" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Copia immagine" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Copia immagine dall'articolo originale" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Copia Distinta Base" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Copia fattura dei materiali dall'articolo originale" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Copia i dati dei parametri dall'articolo originale" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Copia note" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "Copia note dall'articolo originale" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "Copia Test" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "Copia modelli di test dall'articolo originale" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Quantità iniziale" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Specificare la quantità iniziale disponibile per questo Articolo. Se la quantità è zero, non viene aggiunta alcuna quantità." -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "Ubicazione Iniziale Magazzino" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "Specificare l'ubicazione iniziale del magazzino per questo Articolo" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Seleziona il fornitore (o lascia vuoto per saltare)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Seleziona il produttore (o lascia vuoto per saltare)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Codice articolo Produttore" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "L'azienda selezionata non è un fornitore valido" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "L'azienda selezionata non è un produttore valido" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "L'articolo del produttore che corrisponde a questo MPN esiste già" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "L'articolo del fornitore che corrisponde a questo SKU esiste già" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Nome Categoria" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "In Costruzione" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "Quantità di questo articolo attualmente in produzione" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "Eccezionale quantità di questa parte prevista da costruire" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Articoli in magazzino" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "Revisioni" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Giacenze Totali" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "Scorte Non Assegnate" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "Scorta Variante" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Duplica articolo" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "Copia i dati iniziali da un altro Articolo" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Stock iniziale" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Crea Articolo con quantità di scorta iniziale" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Informazioni Fornitore" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Aggiungi le informazioni iniziali del fornitore per questo articolo" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Copia Parametri Categoria" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "Copia i parametri dai modelli della categoria articolo selezionata" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Immagine esistente" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "Nome del file di un'immagine articolo esistente" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "Il file immagine non esiste" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Convalida l'intera Fattura dei Materiali" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Puoi produrre" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "Richiesto per gli Ordini di Produzione" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "Assegnato agli Ordini di Produzione" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "Richiesto per gli Ordini di Vendita" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "Assegnato agli Ordini di Vendita" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Prezzo Minimo" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Sovrascrivi valore calcolato per il prezzo minimo" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Valuta del prezzo minimo" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Prezzo Massimo" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "Sovrascrivi valore calcolato per il prezzo massimo" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Valuta del prezzo massimo" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Aggiorna" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "Aggiorna i prezzi per questo articolo" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Impossibile convertire dalle valute fornite in {default_currency}" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "Il prezzo minimo non può essere maggiore del prezzo massimo" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "Il prezzo massimo non può essere minore del prezzo minimo" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "Seleziona l'assemblaggio padre" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "Seleziona la componente" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "Seleziona l'articolo da cui copiare la distinta base" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Rimuovi Dati Esistenti" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Rimuovi elementi distinta base esistenti prima di copiare" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Includi Ereditato" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Includi gli elementi Distinta Base ereditati da prodotti template" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Salta Righe Non Valide" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Abilita questa opzione per saltare le righe non valide" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Copia Articoli sostitutivi" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "Copia articoli sostitutivi quando duplichi gli elementi distinta base" @@ -7326,91 +7338,91 @@ msgstr "Nessuna azione specificata" msgid "No matching action found" msgstr "Nessuna azione corrispondente trovata" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "Nessuna corrispondenza trovata per i dati del codice a barre" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Corrispondenza trovata per i dati del codice a barre" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "Il modello non è supportato" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "Istanza del modello non trovata" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "Il codice a barre corrisponde a un elemento esistente" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "Nessun articolo corrispondente trovato" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "Nessun fornitore articolo corrispondente trovato" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "Trovati più articoli fornitori corrispondenti" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "Nessuna plugin corrispondente trovato per i dati del codice a barre" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "Corrispondenza Articoli del Fornitore" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "L'articolo è già stato ricevuto" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "Nessun plugin corrisponde al codice a barre del fornitore" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "Trovati più articoli corrispondenti" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "Nessun elemento corrispondente trovato" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "Nessun ordine di vendita fornito" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "Il codice a barre non corrisponde a un articolo di magazzino valido" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "L'elemento in magazzino non corrisponde alla riga" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "Scorte insufficienti disponibili" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "Articolo di magazzino assegnato all'ordine di vendita" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "Informazioni non sufficienti" @@ -7992,7 +8004,7 @@ msgstr "Bordo" msgid "Print a border around each label" msgstr "Stampa un bordo intorno ad ogni etichetta" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "Orizzontale" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Nome modello" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "Descrizione del template" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "Allega al Modello su Stampa" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "Salva l'output del report come allegato contro l'istanza del modello collegato durante la stampa" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Formato del nome file" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Filtri" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Larghezza [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Larghezza dell'etichetta, specificata in mm" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Altezza [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Larghezza dell'etichetta, specificata in mm" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Snippet" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Report file snippet" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Descrizione file snippet" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Risorsa" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Report file risorsa" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "File risorsa descrizione" @@ -8766,200 +8778,200 @@ msgstr "Nessun risultato" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "File immagine non trovato" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "Nome della parte (maiuscole e minuscole)" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "Il nome della parte contiene (maiuscole e minuscole)" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "Nome della parte (regex)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "IPN della parte (maiuscole e minuscole)" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "IPN della parte contiene (maiuscole e minuscole)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "IPN della parte (regex)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "Giacenza minima" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "Giacenza massima" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Codici di stato" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Ubicazione Esterna" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "Obsoleto" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "La quantità è richiesta" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "Deve essere fornita un articolo valido" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "I numeri di serie non possono essere forniti per un articolo non tracciabile" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "Seleziona Owner" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Gli elementi di magazzino non possono essere direttamente situati in un magazzino strutturale, ma possono essere situati in ubicazioni secondarie." -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Esterno" @@ -9101,7 +9113,7 @@ msgstr "Seleziona un fornitore articolo corrispondente per questo elemento di ma msgid "Where is this stock item located?" msgstr "Dove si trova questo articolo di magazzino?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "Imballaggio di questo articolo di magazzino è collocato in" @@ -9117,7 +9129,7 @@ msgstr "Questo elemento è stato installato su un altro elemento?" msgid "Serial number for this item" msgstr "Numero di serie per questo elemento" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Codice lotto per questo elemento di magazzino" @@ -9234,7 +9246,7 @@ msgstr "L'elemento di magazzino è attualmente in produzione" msgid "Serialized stock cannot be merged" msgstr "Il magazzino serializzato non può essere unito" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Duplica elementi di magazzino" @@ -9398,7 +9410,7 @@ msgstr "Inserisci i numeri di serie per i nuovi elementi" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Scaduto" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "La quantità non deve superare la quantità disponibile ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Posizione magazzino di destinazione" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Sottoallocazioni" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "L'articolo deve essere vendibile" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "L'elemento è assegnato a un ordine di vendita" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "Elemento assegnato a un ordine di costruzione" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Cliente a cui assegnare elementi di magazzino" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "L'azienda selezionata non è un cliente" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Note sull'assegnazione delle scorte" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "Deve essere fornito un elenco degli elementi di magazzino" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Note di fusione di magazzino" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Consenti fornitori non corrispondenti" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Consenti di unire gli elementi di magazzino che hanno fornitori diversi" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Consenti stato non corrispondente" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Consenti di unire gli elementi di magazzino con diversi codici di stato" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "Devono essere riforniti almeno due elementi in magazzino" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "Nessun cambiamento" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Valore di chiave primaria StockItem" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Note sugli spostamenti di magazzino" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "Permessi" msgid "Important dates" msgstr "Date Importanti" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "Il token è stato revocato" @@ -9927,163 +9939,163 @@ msgstr "Il token è stato revocato" msgid "Token has expired" msgstr "Il token è scaduto" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "Token API" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "Token API" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Nome Token" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Nome token personalizzato" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Data di scadenza token" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Ultimo accesso" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Revocato" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Impostazione autorizzazioni" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Visualizza" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Autorizzazione a visualizzare gli articoli" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Aggiungi" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Autorizzazione ad aggiungere elementi" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Modificare" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Permessi per modificare gli elementi" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Elimina" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Autorizzazione ad eliminare gli elementi" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "Bot" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "Interno" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "Ospite" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "Lingua" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "Lingua preferita dell'utente" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "Tema" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "Widgets" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "Nome Visualizzato" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po index 9323519240..3770082aa7 100644 --- a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "APIエンドポイントが見つかりません" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "一括処理を行うには、部品リストを指示する必要があります" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "項目はリストとして提供されなければなりません" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "無効なアイテムリスト" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "すべてのフィルターは真の場合にのみ使用されなければならない" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "指定された条件に一致する項目がありません" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "データの提供がありません。" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "この項目は一意である必要があります。" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "ユーザーにこのモデルを表示する権限がありません" @@ -65,11 +65,11 @@ msgstr "メールアドレスの確認" msgid "You must type the same email each time." msgstr "毎回同じメールアドレスを入力する必要があります。" -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "指定されたプライマリEメールアドレスは無効です。" -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "指定されたメールドメインは承認されていません。" @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "{original}を{unit}に変換できませんでした。" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "数量コードが無効です" @@ -105,22 +105,22 @@ msgstr "日付を入力する" msgid "Invalid decimal value" msgstr "無効な10進数値" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "メモ" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "値 '{name}' はパターン形式で表示されません" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "指定された値が必要なパターンと一致しません: " @@ -164,51 +164,51 @@ msgstr "この値からHTMLタグを削除" msgid "Data contains prohibited markdown content" msgstr "データに禁止されているマークダウン・コンテンツが含まれています。" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "無効なURL:ホスト名がありません" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "無効なURL:ホスト名を解決できませんでした" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "URLがプライベートIPアドレスまたは予約済みIPアドレスを指しています" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "リダイレクトが多すぎます" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "接続エラー" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "サーバは無効なステータスコードで応答しました" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "例外が発生しました" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "サーバーが無効なContent-Length値で応答しました" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "画像サイズが大きすぎます" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "画像のダウンロードが最大サイズを超えました" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "リモートサーバーが空のレスポンスを返しました" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "指定されたURLは有効な画像ファイルではありません" @@ -220,117 +220,121 @@ msgstr "アプリにログイン" msgid "Email" msgstr "メールアドレス" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "二要素認証を有効にする必要があります。" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "プラグイン検証の実行エラー" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "メタデータは python dict オブジェクトでなければなりません。" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "プラグインメタデータ" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "外部プラグインで使用するためのJSONメタデータフィールド" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "不適切な書式パターン" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "不明なフォーマットキーが指定されました" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "必要なフォーマットキーがありません" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "参照フィールドを空にすることはできません。" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "参照は必須パターンに一致する必要があります。" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "参照番号が大きすぎる" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "無効な選択です" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "お名前" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "説明" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "説明 (オプション)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "パス" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "同じ親に重複した名前は存在しません。" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "マークダウンメモ (オプション)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "バーコード情報" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "サードパーティ製バーコードデータ" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "バーコードハッシュ" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "バーコードデータのユニークなハッシュ" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "既存のバーコードが見つかりました" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "サーバーエラー" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "サーバーによってエラーが記録されました。" -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "有効な数字でなければなりません" msgid "Currency" msgstr "通貨" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "利用可能なオプションから通貨を選択してください" @@ -521,11 +525,11 @@ msgstr "中国語 (簡体字)" msgid "Chinese (Traditional)" msgstr "中国語 (繁体字)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "アップデートが利用可能" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "InvenTreeの更新版が利用可能になりました" @@ -537,7 +541,7 @@ msgstr "無効な物理単位" msgid "Not a valid currency code" msgstr "有効な通貨コードではありません。" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "注文ステータス" @@ -546,23 +550,23 @@ msgstr "注文ステータス" msgid "Parent Build" msgstr "親ビルド" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "バリアントを含む" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "バリアントを含む" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "バリアントを含む" msgid "Part" msgstr "パーツ" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "カテゴリ" @@ -593,7 +597,7 @@ msgstr "カテゴリ" msgid "Ancestor Build" msgstr "祖先ビルド" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "担当" @@ -601,11 +605,11 @@ msgstr "担当" msgid "Assigned To" msgstr "割り当て" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "作成前" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "の後に作成されました。" @@ -641,99 +645,99 @@ msgstr "完成前" msgid "Completed after" msgstr "終了後" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "最小日付" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "最大日付" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "ツリーを除く" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "削除するには、ビルドをキャンセルする必要があります。" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "消耗品" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "オプション" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "アセンブリ" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "追跡" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "テスト可能" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "受注残高" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "割り当てられた" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "消費されました" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "利用可能" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "注文中" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "ビルドが見つかりません" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "組立注文" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "場所" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "出力" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "出力ストックアイテムIDでフィルタリングします。未インストールビルドアイテムを検索するには「null」をご使用ください。" @@ -773,9 +777,9 @@ msgstr "目標期日は開始日以降であること" msgid "Build Order Reference" msgstr "ビルド・オーダー・リファレンス" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "セールス・オーダー・リファレンス" msgid "Sales Order to which this build is allocated" msgstr "このビルドが引き当てられている受注" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "ソース・ロケーション" @@ -821,7 +825,7 @@ msgstr "外部ビルド" msgid "This build order is fulfilled externally" msgstr "このビルドオーダーは外部委託されます。" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "目的地" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "ビルドステータスコード" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "バッチコード" @@ -883,8 +887,8 @@ msgstr "完成目標日" msgid "Target date for build completion. Build will be overdue after this date." msgstr "ビルド完了目標日。この日付を過ぎると、ビルドは期限切れになります。" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "完了日" @@ -900,7 +904,7 @@ msgstr "発行者" msgid "User who issued this build order" msgstr "このビルドオーダーを発行したユーザー" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "建設順序の優先順位" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "プロジェクトコード" @@ -962,9 +966,9 @@ msgstr "ビルド出力がビルド順序と一致しません" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "数量はゼロより大きくなければなりません" @@ -999,7 +1003,7 @@ msgstr "ビルドオブジェクト" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "シリアル在庫の場合、数量は1でなければなりません msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "割当数量({q})は在庫可能数量({a})を超えてはなりません。" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "在庫が過剰配分" @@ -1057,8 +1061,8 @@ msgstr "在庫が過剰配分" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "在庫商品" @@ -1082,7 +1086,7 @@ msgstr "仕向け地在庫品" msgid "Build Level" msgstr "ビルドレベル" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "部品名" @@ -1139,7 +1143,7 @@ msgstr "シリアル番号の自動割り当て" msgid "Automatically allocate required items with matching serial numbers" msgstr "シリアル番号が一致する必要なアイテムを自動的に割り当て" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "以下のシリアル番号は既に存在するか、無効です。" @@ -1272,7 +1276,7 @@ msgstr "ビルドラインアイテム" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.partは、ビルドオーダーと同じパーツを指す必要があります。" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "在庫があること" @@ -1385,8 +1389,8 @@ msgstr "インストール先" msgid "Build" msgstr "ビルド" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "サプライヤー" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "バリアントを許可" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "BOMアイテム" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "生産中" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "ビルド予定" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "外部在庫" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "在庫状況" @@ -1527,31 +1531,31 @@ msgstr "期限切れ注文" msgid "Build order {bo} is now overdue" msgstr "ビルドオーダー{bo}は現在期限切れです" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "サムネイルあり" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "リンク" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "ファイル" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "ユーザーにはこれらの添付ファイルを削除する権限がありません。" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "この添付ファイルを編集する権限がありません" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "ユーザーにはこの添付ファイルを削除する権限がありません" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "選択リストがロックされています" @@ -1571,8 +1575,8 @@ msgstr "有効な通貨コードはありません" msgid "No plugin" msgstr "プラグインなし" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "キー文字列は一意でなければなりません。" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "ユーザー" @@ -1654,8 +1658,8 @@ msgstr "ユーザー" msgid "Price break quantity" msgstr "価格破壊数量" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "価格" @@ -1677,8 +1681,8 @@ msgstr "このウェブフックの名前" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "有効" @@ -1686,7 +1690,7 @@ msgstr "有効" msgid "Is this webhook active" msgstr "このウェブフックはアクティブですか" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "トークン" @@ -1756,7 +1760,7 @@ msgstr "タイトル" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "このパラメータの有効な選択肢(カンマ区切り)" msgid "Selection list for this parameter" msgstr "このパラメータの選択リスト" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "有効" @@ -2204,8 +2208,8 @@ msgstr "モデルID" msgid "ID of the target model for this parameter" msgstr "このパラメータの対象となるモデルのID" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "テンプレート" @@ -2262,7 +2266,7 @@ msgstr "バーコードスキャンの日時" msgid "URL endpoint which processed the barcode" msgstr "バーコードを処理したURLエンドポイント" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "コンテキスト" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "メールのスレッド" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "キー" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} キャンセル" msgid "A order that is assigned to you was canceled" msgstr "あなたに割り当てられた注文がキャンセルされました。" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "受領品目" @@ -2524,7 +2528,7 @@ msgstr "ファイル名" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "モデルタイプ" @@ -2914,8 +2918,8 @@ msgstr "パーツはデフォルトのテンプレートです" msgid "Parts can be assembled from other components by default" msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "コンポーネント" @@ -2931,7 +2935,7 @@ msgstr "購入可能" msgid "Parts are purchaseable by default" msgstr "パーツはデフォルトで購入可能です" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "販売可能" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "レポート生成時に発生するエラーのログ" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "ページサイズ" @@ -4128,49 +4132,49 @@ msgstr "最終階層の項目を表示" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "子要素がない場所やカテゴリについては、サブレベルではなくアイテムやパーツを自動的にデフォルト表示にします" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "全モデル" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "アタッチメント型式なし" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "無効なアタッチメントモデルタイプ" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "ファイルサイズが{max_size} MBのアップロード上限を超えています" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "ファイル名が不正です" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "最小プレースは最大プレースより大きくできません。" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "最大定員が最小定員を下回ることはありません。" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "空のドメインは使用できません。" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "無効なドメイン名: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "値は大文字でなければならない" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "値は有効な変数識別名でなければならない。" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "サプライヤーの活動" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "製造元" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "会社名" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "連絡先メールアドレス" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "お問い合わせ" @@ -4297,7 +4301,7 @@ msgstr "納税者番号" msgid "Company Tax ID" msgstr "法人税番号" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "住所" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "住所情報へのリンク(外部)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "メーカー・パーツ" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "メーカー選択" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "MPN" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "リンクされたメーカー部品は、同じベース部品を参照する必要があります。" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "仕入先" @@ -4448,7 +4452,7 @@ msgstr "仕入先" msgid "Select supplier" msgstr "サプライヤーを選択" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "サプライヤー在庫管理ユニット" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "ミニマムチャージ(例:仕入れ手数料)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "パッケージング" @@ -4533,7 +4537,7 @@ msgstr "このサプライヤーで使用されるデフォルト通貨" msgid "Company Name" msgstr "会社名" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "在庫あり" @@ -4722,7 +4726,7 @@ msgstr "元の行データ" msgid "Errors" msgstr "エラー" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "有効" @@ -4838,7 +4842,7 @@ msgstr "各ラベルの印刷部数" msgid "Connected" msgstr "接続済み" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "不明" @@ -4942,7 +4946,7 @@ msgstr "プロパティーキー" msgid "Value of the property" msgstr "プロパティー値" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "グループ" @@ -4966,118 +4970,118 @@ msgstr "最大進捗" msgid "Maximum value for progress type, required if type=progress" msgstr "進行状況タイプの場合の最大値。type=progress の場合に必須です。" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "注文参照" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "並外れた" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "プロジェクトコード" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "作成者" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "作成前" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "の後に作成されました。" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "開始日あり" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "開始日 前" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "開始日 後" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "目標期日あり" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "目標期日" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "以降の目標日" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "更新日(開始)" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "更新日(終了)" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "価格" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "完成前" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "終了後" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "外部ビルドオーダー" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "注文" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "注文完了" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "内部パーツ" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "注文保留" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "完了" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "出荷あり" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "配送が見つかりません" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "注文" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "注文" msgid "Sales Order" msgstr "セールスオーダー" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "リターンオーダー" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "在庫移動指示" @@ -5135,11 +5139,11 @@ msgstr "指定の会社と住所が一致しません" msgid "Order description (optional)" msgstr "ご注文内容(任意)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "この注文のプロジェクトコードを選択してください。" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "外部ページへのリンク" @@ -5151,7 +5155,7 @@ msgstr "開始日" msgid "Scheduled start date for this order" msgstr "本注文の開始予定日" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "終了日に達したら" @@ -5184,487 +5188,487 @@ msgstr "本注文に関する連絡先" msgid "Company address for this order" msgstr "本注文の会社住所" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "注文参照" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "ステータス" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "発注状況" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "注文元の会社" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "サプライヤー・リファレンス" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "サプライヤー注文参照コード" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "受信" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "注文完了日" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "目的地" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "入荷商品のお届け先" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "部品サプライヤーは、POサプライヤーと一致する必要があります。" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "品目が発注書と一致しません" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "行項目にリンクされた部品が不足しています" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "数量は正の数でなければなりません。" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "仮想部品にはシリアル番号を割り当てることはできません" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "顧客" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "販売先" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "販売注文状況" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "お客様リファレンス" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "顧客注文参照コード" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "出荷日" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "出荷元" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "注文はすでに完了しています。" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "注文はすでにキャンセルされました" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "未完了の注文にのみ完了マークを付けることができます。" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "出荷に不備があるため、注文を完了できません。" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "割り当てに不備があるため、注文を完了できません。" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "不完全な項目があるため、注文を完了できません。" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "注文はロックされ、変更できません。" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "品目数量" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "項番" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "この項目の行番号(任意)" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "行項目参照" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "項目" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "この行項目の目標期日(注文の目標期日を使用する場合は空白のままにしてください。)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "行項目の説明(オプション)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "この行の補足説明" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "単価" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "発注書項目" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "サプライヤーの部品はサプライヤーと一致しなければなりません。" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "ビルドオーダーは外部としてマークする必要があります" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "ビルドオーダーはアセンブリ部品にのみリンクできます" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "ビルドオーダーの部品は、ラインアイテムの部品と一致する必要があります。" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "組立部品には、外部ビルドオーダーが必要です" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "サプライヤー" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "受信" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "受領品目数" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "購入金額" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "購入単価" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "本品目により完成する外部ビルドオーダー" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "発注書追加行" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "販売注文明細" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "販売可能な部品のみを販売オーダーに割り当てることができます。" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "セール価格" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "販売単価" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "発送済み" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "出荷数量" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "販売注文の出荷" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "配送先住所はお客様と一致している必要があります" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "こちらの発送先住所" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "出荷日" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "配達日" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "貨物の引渡日" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "チェック済み" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "この貨物をチェックしたユーザー" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "発送" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "出荷番号" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "追跡番号" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "貨物追跡情報" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "請求書番号" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "関連する請求書の参照番号" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "発送済み" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "出荷品目に割り当てられた在庫がありません" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "出荷は完了前に必ず確認が必要となります" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "セールスオーダー追加ライン" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "販売注文の割り当て" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "在庫アイテムが割り当てられていません" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "在庫品を別部品のラインに割り当てることはできません。" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "部品のないラインに在庫を割り当てることはできません。" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "割当数量が在庫数量を超えることはできません" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "割当数量はゼロより大きくなければなりません" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "シリアル化された在庫品の場合、数量は1でなければなりません。" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "販売注文と出荷が一致しません" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "出荷が販売注文と一致しません" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "ライン" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "販売注文の出荷参照" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "アイテム" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "割り当てるストックアイテムを選択" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "在庫割当数量の入力" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "リターンオーダー参照" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "返品元の会社" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "返品状況" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "返品注文項目" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "在庫品の指定が必要です。" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "返品数量が在庫数量を超える場合" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "返品数量はゼロより大きくなければなりません。" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "シリアル化されたストックアイテムの数量が無効です。" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "お客様から返品する商品を選択" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "受領日" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "この返品商品が到着した日付" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "転帰" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "この項目の成果" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "この品目の返品または修理に関連する費用" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "リターンオーダー追加ライン" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "在庫移動指示コード" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "在庫移動指示の状態" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "移動元品" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "移動先品" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "在庫を消費する" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "在庫を移動するのではなく、割り当てられた在庫品から移動数量を差し引くことで、それを「消費」します" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "移動先が設定されるまで、指示を完了することはできません" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "指示は、完全に割り当てられるまで完了しません" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "在庫移動指示明細" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "移動されました" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "移動数" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "在庫移動指示の引き当て" @@ -5692,7 +5696,7 @@ msgstr "余分な行をコピー" msgid "Copy extra line items from the original order" msgstr "元の注文から余分な項目をコピー" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "コピーパラメータ" @@ -5784,11 +5788,11 @@ msgstr "アイテムのマージ" msgid "Merge items with the same part, destination and target date into one line item" msgstr "同じ品目、同じ仕向け地、同じ日付の品目を1つの品目に統合します。" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "SKU" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "内部部品番号" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "入荷在庫品のバッチコード入力" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "有効期限" @@ -6056,123 +6060,131 @@ msgstr "期限切れ返品注文" msgid "Return order {ro} is now overdue" msgstr "リターンオーダー{ro}は現在期限切れです" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "スター付き" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "星の数で絞り込む" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "深さ" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "カテゴリの深さでフィルタリング" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "最多メンバーレベル" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "トップレベルカテゴリーによるフィルタリング" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "カスケード表示" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "フィルタリング結果にサブカテゴリーを含めることができます。" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "親" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "親カテゴリーによる絞り込み" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "指定したカテゴリの下にあるサブカテゴリを除外します。" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "実績あり" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "バリエーション?" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "改訂版" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "改定あり" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "BOM有効" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "カスケードカテゴリ" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "もし該当する場合には、指定されたカテゴリの子カテゴリ内のアイテムを含めてください。" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "数値カテゴリIDまたはリテラル'null'でフィルタリングしてください" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "アセンブリ部品はアクティブです" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "アセンブリ部品は追跡可能です" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "組み立て部分はテスト可能" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "アセンブリ部品はロックされています" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "コンポーネント部品はアクティブです" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "コンポーネント部品は追跡可能です" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "コンポーネント部分はテスト可能" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "コンポーネント部品はアセンブリです" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "コンポーネント部品は仮想的なものです" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "引き当て可能在庫あり" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "用途" @@ -6213,7 +6225,7 @@ msgstr "このカテゴリの部品のデフォルトキーワード" msgid "Icon" msgstr "アイコン" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "アイコン (オプション)" @@ -6349,7 +6361,7 @@ msgstr "検索結果での視認性を向上させる部分キーワード" msgid "Part category" msgstr "パーツカテゴリ" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "IPN" @@ -6358,7 +6370,7 @@ msgstr "IPN" msgid "Part revision or version number" msgstr "部品のリビジョンまたはバージョン番号" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "リビジョン" @@ -6382,7 +6394,7 @@ msgstr "デフォルトの有効期限" msgid "Expiry time (in days) for stock items of this part" msgstr "この部品の在庫品の有効期限(日単位" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "最小在庫" @@ -6390,7 +6402,7 @@ msgstr "最小在庫" msgid "Minimum allowed stock level" msgstr "最低許容在庫量" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "最大在庫数" @@ -6759,7 +6771,7 @@ msgstr "サブパート" msgid "Select part to be used in BOM" msgstr "BOMで使用する部品を選択" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "金額" @@ -6911,351 +6923,351 @@ msgstr "親カテゴリ" msgid "Parent part category" msgstr "親部品カテゴリー" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "サブカテゴリ" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "結果" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "このテンプレートに対して記録された結果の数" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "この在庫商品の購入通貨" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "ファイルが画像ではありません" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "オリジナルパート" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "複製する元の部品を選択" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "コピー画像" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "元の部分から画像をコピー" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "コピーBOM" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "元の部品から部品表をコピー" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "元の部品からパラメータデータをコピー" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "コピーノート" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "元のパートからメモをコピー" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "コピーテスト" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "元の部品からテスト用テンプレートをコピーしてください" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "初期在庫量" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "この部品の初期在庫数量を指定します。数量が0の場合、在庫は追加されません。" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "初期在庫場所" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "この部品の初期在庫場所を指定してください。" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "サプライヤーを選択してください。" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "メーカーを選択してください。" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "メーカー品番" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "選択された企業は有効なサプライヤーではありません。" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "選択された会社は有効な製造業者ではありません。" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "このMPNに一致するメーカー部品はすでに存在します。" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "このSKUに一致するサプライヤー部品は既に存在します。" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "カテゴリ名" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "建物" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "現在生産中の当該部品の数量" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "この部品の予定生産数量" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "在庫商品" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "リビジョン" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "総在庫" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "未割当株式" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "バリアントストック" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "重複部分" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "別のパートから初期データをコピー" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "初期在庫" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "初期在庫数で部品を作成" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "サプライヤー情報" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "この部品の初期サプライヤー情報を追加します。" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "コピーカテゴリパラメータ" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "選択したパーツカテゴリーからパラメータテンプレートをコピー" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "既存イメージ" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "既存の部品画像のファイル名" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "画像ファイルが存在しません" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "部品表全体の検証" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "ビルド" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "ビルドオーダーに必要なもの" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "ビルドオーダーに割り当てられました" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "セールスオーダーに必要なもの" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "セールスオーダーに割り当てられました" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "パートIPN" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "部品の説明" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "部品を選択すると、その部品(およびそのバリエーション部品)の棚卸し情報を作成します" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "カテゴリを選択すると、そのカテゴリ(およびサブカテゴリ)に含まれるすべての部品が表示されます" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "ロケーションを選択すると、そのロケーション(およびサブロケーション)にあるすべての部品が表示されます" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "棚卸しデータを登録" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "選択した部品の棚卸しデータを保存" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "レポートを生成" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "選択した部品の棚卸し明細を作成" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "最小価格" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "最低価格の計算値の上書き" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "最低価格通貨" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "最大価格" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "最高価格の計算値を上書き" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "最高価格通貨" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "更新" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "この部品の価格を更新" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "提供された通貨から{default_currency}に変換できませんでした。" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "最低価格は最高価格を超えてはなりません。" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "最高価格は最低価格を下回ってはなりません。" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "この部品の必要数量(数量単位を含めることができます)" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "親アセンブリを選択" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "構成部品の選択" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "数量の形式が不正です" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "BOMをコピーする部品を選択します。" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "既存データの削除" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "コピー前に既存のBOMアイテムを削除" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "インクルード継承" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "テンプレート化された部品から継承されたBOM項目を含めます。" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "無効な行をスキップ" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "無効な行をスキップするには、このオプションを有効にします。" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "コピー代用部品" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "BOMアイテムの重複時に代替部品をコピー" @@ -7326,91 +7338,91 @@ msgstr "アクションが指定されていません" msgid "No matching action found" msgstr "一致するアクションが見つかりませんでした" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "バーコードデータが見つかりません" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "バーコードデータとの一致が確認されました。" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "モデルはサポートされていません" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "モデルインスタンスが見つかりません" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "バーコードが既存のアイテムと一致" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "一致する部品データが見つかりません" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "一致するサプライヤー部品は見つかりませんでした" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "一致するサプライヤー部品が複数見つかりました" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "バーコードデータに一致するプラグインは見つかりませんでした" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "適合部品" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "商品はすでに受領済みです。" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "サプライヤーのバーコードに一致するプラグインがない" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "複数の一致する行項目が見つかりました" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "該当する項目が見つかりません" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "販売注文はありません" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "バーコードが既存の在庫品と一致しません" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "在庫品目が行品目と一致しません" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "在庫不足" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "販売注文に割り当てられた在庫品目" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "情報が不足しています" @@ -7992,7 +8004,7 @@ msgstr "ボーダー" msgid "Print a border around each label" msgstr "各ラベルの周囲に枠線を印刷します。" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "ランドスケープ" @@ -8481,136 +8493,136 @@ msgstr "リーガル" msgid "Letter" msgstr "文字" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "この名前のテンプレートファイルは既に存在します。" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "テンプレート名" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "テンプレート説明" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "リビジョン番号(自動インクリメント)" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "プリントのモデルに装着" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "印刷時に、リンクされたモデルインスタンスに対してレポート出力を添付ファイルとして保存" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "ファイル名パターン" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "ファイル名生成パターン" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "テンプレートが有効" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "テンプレートの対象モデルタイプ" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "フィルター" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "テンプレートクエリフィルタ(key=valueペアのカンマ区切りリスト)" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "テンプレートファイル" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "PDFレポートのページサイズ" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "レポートを横向きにレンダリング" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "統合" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "選択された項目に対して単一のレポートを生成します" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "テンプレート{self.name}から生成されたレポート" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "テンプレートの構文エラー" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "レポートの表示にエラーが発生しました" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "レポート生成エラー" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "レポート出力の統合エラー" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "幅 [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "ラベル幅(mm単位)" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "高さ [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "ラベルの高さ(mm単位)" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "ラベル印刷エラー" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "スニペット" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "レポートスニペットファイル" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "スニペットファイルの説明" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "資産" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "レポート資産ファイル" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "アセットファイルの説明" @@ -8766,200 +8778,200 @@ msgstr "何も結果はありません" msgid "Transferred" msgstr "転送されました" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "メディアファイルのパスが不正です" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "静的ファイルのパスが不正です" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "アセットファイルが見つかりません" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "画像ファイルが見つかりません" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "画像ファイルが指定されていません" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "part_image タグには Part インスタンスが必要です。" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "company_image タグには Company インスタンスが必要です。" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "場所の深さによる絞り込み" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "トップレベルのロケーションによるフィルタリング" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "フィルタリング結果にサブロケーションを含めることができます。" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "親の位置" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "親の所在地でフィルタリング" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "部品名(大文字・小文字を区別しません)" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "パート名に含まれるもの(大文字・小文字を区別しません)" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "部品名(正規表現)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "パートIPN(大文字と小文字を区別しません)" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "パートIPNに含まれるもの(大文字と小文字は区別されません)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "パートIPN(正規表現)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "最小在庫" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "最大在庫" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "ステータスコード" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "外部ロケーション" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "ビルド・オーダーで消費" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "その他在庫品に装着" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "パートツリー" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "更新前" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "更新後" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "ストックテイク前" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "ストックテイク後" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "有効期限" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "有効期限" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "期限失効" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "そのアイテムおよびそのすべての子孫を除外するためのStockItemのプライマリキーをご提供ください。" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "カスケードの所在地" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "もし真であれば、指定された場所の子要素に含まれる項目を含めます" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "数値のロケーションID、またはリテラル文字列の「null」でフィルタリングしてください。" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "数量が必要です" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "有効な部品を供給する必要があります。" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "指定されたサプライヤの部品が存在しません。" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "サプライヤー部品にはパックサイズが定義されていますが、use_pack_sizeフラグが設定されていません。" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "追跡不可能な部品については、シリアル番号は提供できません。" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "組み込み済みを含める" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "もし真であれば、指定した在庫アイテムの中に組み込まれている構成部品のテスト結果を含める" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "数値による在庫品IDでの絞り込み" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "ID {id} の在庫品は存在しません" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "部品のバリエーションを含める" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "日付(終了)" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "日付(開始)" @@ -8995,7 +9007,7 @@ msgstr "所有者を選択" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "ストックアイテムは、構造的なストックロケーションに直接配置されることはありませんが、子ロケーションに配置されることはあります。" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "外部" @@ -9101,7 +9113,7 @@ msgstr "この在庫品に一致するサプライヤー部品を選択してく msgid "Where is this stock item located?" msgstr "この在庫品はどこにありますか?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "この在庫品は以下の梱包で保管されています。" @@ -9117,7 +9129,7 @@ msgstr "このアイテムは他のアイテムにインストールされてい msgid "Serial number for this item" msgstr "この商品のシリアル番号" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "このストックアイテムのバッチコード" @@ -9234,7 +9246,7 @@ msgstr "在庫品は現在生産中です。" msgid "Serialized stock cannot be merged" msgstr "連番在庫の統合はできません" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "在庫品の重複" @@ -9398,7 +9410,7 @@ msgstr "新しい商品のシリアル番号の入力" msgid "Supplier Part Number" msgstr "サプライヤー品番" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "期限切れ" @@ -9428,8 +9440,8 @@ msgstr "在庫品目がしていされていません" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "数量は在庫数 ({q}) を超えてはなりません。" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "仕向け地" @@ -9501,127 +9513,127 @@ msgstr "ステータスを変更するストックアイテムを選択" msgid "No stock items selected" msgstr "ストックアイテムが選択されていません" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "サブロケーション" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "在庫品を削除" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "このロケーションにあるすべての在庫品を削除します" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "サブロケーションを削除" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "このロケーションに含まれるすべてのサブロケーションを削除します" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "親株式所在地" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "パーツは販売可能でなければなりません" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "商品が販売オーダーに割り当てられています。" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "部品がが在庫移動指示にに引き当てられました" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "アイテムがビルドオーダーに割り当てられています。" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "在庫アイテムを割り当てるお客様" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "選択された企業は顧客ではありません" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "株式譲渡に関する注意事項" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "在庫品のリストが必要です。" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "株式併合に関する注意事項" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "不一致のサプライヤーを許可" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "異なるサプライヤの部品を持つ在庫品目をマージできるようにします。" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "不一致の状態を許可" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "異なるステータスコードを持つストックアイテムをマージすることができます。" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "少なくとも2つのストックアイテムを提供する必要があります。" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "変化なし" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "StockItem 主キー値" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "在庫がありません" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "在庫品目は既に在庫にあります" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "数量は負の数であってはなりません。" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "株式取引に関する注記" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "既存の在庫に統合します" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "可能なら、返品された商品を既存の在庫商品に統合してください" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "次のシリアル番号" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "以前のシリアル番号" @@ -9919,7 +9931,7 @@ msgstr "許可" msgid "Important dates" msgstr "重要な日付" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "トークンは失効しました" @@ -9927,163 +9939,163 @@ msgstr "トークンは失効しました" msgid "Token has expired" msgstr "トークンの有効期限が切れました" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "APIトークン" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "APIトークン" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "トークン名" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "カスタムトークン名" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "トークンの有効期限" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "最終表示" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "トークンが最後に使用された時間" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "失効" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "パーミッション設定" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "表示" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "項目を表示する権限" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "追加" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "項目を追加する権限" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "変更" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "項目を編集する権限" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "削除" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "項目を削除する権限" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "ボット" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "内部" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "ゲスト" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "言語" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "ユーザーの希望言語" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "テーマ" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "JSONとしてのウェブUI用の設定 - 手動で編集しないでください!" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "ウィジェット" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "JSONとしてのダッシュボード・ウィジェットの設定 - 手動で編集しないでください!" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "表示名" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "ユーザーの表示名選択" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "位置" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "主な役職名" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "ユーザーのステータスメッセージ" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "ユーザーの位置情報" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "ユーザーが積極的にシステムを利用" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "希望の連絡先" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "ユーザータイプ" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "どのようなユーザーですか?" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "組織" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "ユーザーの主な所属組織" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "プライマリーグループ" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "ユーザーのプライマリグループ" diff --git a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po index fcc46f727c..8a9b7e84a0 100644 --- a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API 엔드포인트를 찾을 수 없습니다" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "일괄 작업을 위해 항목 목록을 제공해야 합니다" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "항목은 목록 형태로 제공되어야 합니다" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "잘못된 항목 목록이 제공되었습니다" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "all 필터는 true와 함께만 사용할 수 있습니다" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "제공된 조건과 일치하는 항목이 없습니다" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "데이터가 제공되지 않았습니다" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "이 필드는 고유해야 합니다." -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "이 모델을 볼 수 있는 권한이 없습니다." @@ -65,11 +65,11 @@ msgstr "이메일 주소 확인" msgid "You must type the same email each time." msgstr "매번 동일한 이메일을 입력해야 합니다." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "제공된 기본 이메일 주소가 유효하지 않습니다." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "제공된 이메일 도메인이 승인되지 않았습니다." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "{original}을(를) {unit}(으)로 변환할 수 없습니다" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "잘못된 수량이 제공되었습니다" @@ -105,22 +105,22 @@ msgstr "날짜 입력" msgid "Invalid decimal value" msgstr "잘못된 소수 값" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "메모" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "값 '{name}'이(가) 패턴 형식에 없습니다" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "제공된 값이 요구되는 패턴과 일치하지 않습니다: " @@ -164,51 +164,51 @@ msgstr "이 값에서 HTML 태그를 제거하세요" msgid "Data contains prohibited markdown content" msgstr "데이터에 금지된 마크다운 내용이 포함되어 있습니다" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "잘못된 URL: 호스트명이 없습니다" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "잘못된 URL: 호스트명을 확인할 수 없습니다" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "URL이 사설 또는 예약된 IP 주소를 가리킵니다" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "리디렉션이 너무 많습니다" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "연결 오류" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "서버가 잘못된 상태 코드를 반환했습니다" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "예외가 발생했습니다" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "서버가 잘못된 Content-Length 값을 반환했습니다" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "이미지 크기가 너무 큽니다!" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "이미지 다운로드가 최대 크기를 초과했습니다" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "원격 서버가 빈 응답을 반환했습니다" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "제공된 URL은 유효한 이미지 파일이 아닙니다" @@ -220,117 +220,121 @@ msgstr "앱에 로그인" msgid "Email" msgstr "이메일" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "다른 작업을 하기 전에 먼저 2단계 인증을 활성화해야 합니다." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "플러그인 유효성 검사 실행 중 오류가 발생했습니다" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "메타데이터는 파이썬 dict 객체여야 합니다" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "플러그인 메타데이터" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "외부 플러그인에서 사용하는 JSON 메타데이터 필드" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "패턴 형식이 올바르지 않습니다" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "알 수 없는 형식 키가 지정되었습니다" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "필수 형식 키가 누락되었습니다" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "참조(Reference) 필드는 비워둘 수 없습니다" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "참조(Reference)는 요구되는 패턴과 일치해야 합니다" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "참조 번호가 너무 큽니다" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "잘못된 선택입니다" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "이름" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "설명" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "설명 (선택 사항)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "경로" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "같은 상위 항목 아래에는 중복된 이름이 있을 수 없습니다" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "마크다운 메모 (선택 사항)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "바코드 데이터" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "서드파티 바코드 데이터" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "바코드 해시" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "바코드 데이터의 고유 해시" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "기존 바코드를 찾았습니다" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "서버 오류" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "서버에 오류가 기록되었습니다." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "유효한 숫자여야 합니다" msgid "Currency" msgstr "통화" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "사용 가능한 옵션에서 통화를 선택하세요" @@ -521,11 +525,11 @@ msgstr "중국어 (간체)" msgid "Chinese (Traditional)" msgstr "중국어 (번체)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "업데이트 사용 가능" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "InvenTree 업데이트가 있습니다" @@ -537,7 +541,7 @@ msgstr "잘못된 물리 단위" msgid "Not a valid currency code" msgstr "유효한 통화 코드가 아닙니다" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "주문 상태" @@ -546,23 +550,23 @@ msgstr "주문 상태" msgid "Parent Build" msgstr "직상위 빌드" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "변형(Variant) 포함" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "변형(Variant) 포함" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "변형(Variant) 포함" msgid "Part" msgstr "부품" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "분류" @@ -593,7 +597,7 @@ msgstr "분류" msgid "Ancestor Build" msgstr "상위 계층 빌드" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "나에게 할당 됨" @@ -601,11 +605,11 @@ msgstr "나에게 할당 됨" msgid "Assigned To" msgstr "할당 대상" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "생성일 이전" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "생성일 이후" @@ -641,99 +645,99 @@ msgstr "완료일 이전" msgid "Completed after" msgstr "완료일 이후" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "최소 날짜" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "최대 날짜" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "트리 제외" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "빌드를 삭제하려면 먼저 취소해야 합니다" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "소모품" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "선택사항" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "조립품" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "추적됨" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "테스트 가능" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "미결 주문" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "할당됨" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "소모됨" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "사용 가능" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "주문 중" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "빌드를 찾을 수 없습니다" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "작업 지시서" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "위치" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "산출물" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "산출물 재고 항목 ID로 필터링합니다. 설치되지 않은 빌드 항목을 찾으려면 'null'을 사용하세요." @@ -773,9 +777,9 @@ msgstr "목표일은 시작일 이후여야 합니다" msgid "Build Order Reference" msgstr "작업 지시서 참조번호" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "판매 주문 참조" msgid "Sales Order to which this build is allocated" msgstr "이 빌드가 할당된 판매 주문" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "원본 위치" @@ -821,7 +825,7 @@ msgstr "외주 생산" msgid "This build order is fulfilled externally" msgstr "이 작업 지시서는 외주로 생산됩니다" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "대상 위치" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "빌드 상태 코드" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "배치 코드" @@ -883,8 +887,8 @@ msgstr "목표 완료일" msgid "Target date for build completion. Build will be overdue after this date." msgstr "빌드 완료 목표일. 이 날짜 이후에는 빌드가 지연으로 처리됩니다." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "완료일" @@ -900,7 +904,7 @@ msgstr "발행자" msgid "User who issued this build order" msgstr "이 작업 지시서를 발행한 사용자" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "이 빌드 주문의 우선순위" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "프로젝트 코드" @@ -962,9 +966,9 @@ msgstr "생산 완제품이 작업 지시서와 일치하지 않습니다" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "수량은 0보다 커야 합니다" @@ -999,7 +1003,7 @@ msgstr "빌드 객체" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "시리얼이 있는 재고의 수량은 1이어야 합니다" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "할당 수량({q})은 사용 가능한 재고 수량({a})을 초과할 수 없습니다" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "재고 항목이 과다 할당되었습니다" @@ -1057,8 +1061,8 @@ msgstr "재고 항목이 과다 할당되었습니다" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "재고 항목" @@ -1082,7 +1086,7 @@ msgstr "대상 재고 항목" msgid "Build Level" msgstr "빌드 레벨" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "부품명" @@ -1139,7 +1143,7 @@ msgstr "시리얼 번호 자동 할당" msgid "Automatically allocate required items with matching serial numbers" msgstr "일치하는 시리얼 번호로 필요한 항목을 자동으로 할당합니다" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "다음 시리얼 번호는 이미 존재하거나 유효하지 않습니다" @@ -1272,7 +1276,7 @@ msgstr "빌드 라인 항목" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part는 빌드 주문과 동일한 부품을 가리켜야 합니다" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "항목은 재고에 있어야 합니다" @@ -1385,8 +1389,8 @@ msgstr "설치 대상" msgid "Build" msgstr "빌드" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "공급업체 부품" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "변형(Variant) 허용" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "BOM 항목" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "생산 중" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "빌드 예정" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "외부 재고" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "사용 가능 재고" @@ -1527,31 +1531,31 @@ msgstr "기한 초과 빌드 주문" msgid "Build order {bo} is now overdue" msgstr "빌드 주문 {bo}이(가) 기한을 초과했습니다" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "링크 여부" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "파일 여부" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "사용자에게 이 첨부파일들을 삭제할 권한이 없습니다" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "사용자에게 이 첨부파일을 삭제할 권한이 없습니다" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "선택 목록이 잠겨 있습니다" @@ -1571,8 +1575,8 @@ msgstr "유효한 통화 코드가 제공되지 않았습니다" msgid "No plugin" msgstr "플러그인 없음" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "키 문자열은 고유해야 합니다" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "사용자" @@ -1654,8 +1658,8 @@ msgstr "사용자" msgid "Price break quantity" msgstr "가격 구간 수량" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "가격" @@ -1677,8 +1681,8 @@ msgstr "이 웹훅의 이름" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "활성" @@ -1686,7 +1690,7 @@ msgstr "활성" msgid "Is this webhook active" msgstr "이 웹훅이 활성 상태인가요" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "토큰" @@ -1756,7 +1760,7 @@ msgstr "제목" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "이 매개변수에 대한 유효한 선택지(쉼표로 구분)" msgid "Selection list for this parameter" msgstr "이 매개변수의 선택 목록" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "사용" @@ -2204,8 +2208,8 @@ msgstr "모델 ID" msgid "ID of the target model for this parameter" msgstr "이 매개변수의 대상 모델 ID" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "템플릿" @@ -2262,7 +2266,7 @@ msgstr "바코드 스캔 날짜 및 시간" msgid "URL endpoint which processed the barcode" msgstr "바코드를 처리한 URL 엔드포인트" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "컨텍스트" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "이메일 스레드" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "키" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} 취소됨" msgid "A order that is assigned to you was canceled" msgstr "귀하에게 할당된 주문이 취소되었습니다" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "항목 수령됨" @@ -2524,7 +2528,7 @@ msgstr "파일명" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "모델 유형" @@ -2914,8 +2918,8 @@ msgstr "부품은 기본적으로 템플릿입니다" msgid "Parts can be assembled from other components by default" msgstr "부품은 기본적으로 다른 구성요소로 조립할 수 있습니다" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "구성요소" @@ -2931,7 +2935,7 @@ msgstr "구매 가능" msgid "Parts are purchaseable by default" msgstr "부품은 기본적으로 구매 가능합니다" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "판매 가능" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "보고서 생성 중 발생하는 오류를 기록합니다" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "페이지 크기" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "모든 모델" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "첨부 모델 유형이 제공되지 않았습니다" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "잘못된 첨부 모델 유형입니다" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "최소 자리수는 최대 자리수보다 클 수 없습니다" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "최대 자리수는 최소 자리수보다 작을 수 없습니다" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "빈 도메인은 허용되지 않습니다." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "잘못된 도메인 이름: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "값은 대문자여야 합니다" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "값은 유효한 변수 식별자여야 합니다" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "공급업체가 활성화됨" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "제조사" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "회사" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "연락처 이메일 주소" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "담당자" @@ -4297,7 +4301,7 @@ msgstr "세금 ID" msgid "Company Tax ID" msgstr "회사 세금 ID" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "주소" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "주소 정보 링크(외부)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "제조사 부품" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "제조사 선택" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "MPN" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "연결된 제조사 부품은 동일한 기본 부품을 참조해야 합니다" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "공급업체" @@ -4448,7 +4452,7 @@ msgstr "공급업체" msgid "Select supplier" msgstr "공급업체 선택" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "공급업체 SKU" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "최소 요금(예: 보관 수수료)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "포장" @@ -4533,7 +4537,7 @@ msgstr "이 공급업체에서 사용하는 기본 통화" msgid "Company Name" msgstr "회사명" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "재고 있음" @@ -4722,7 +4726,7 @@ msgstr "원본 행 데이터" msgid "Errors" msgstr "오류" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "유효" @@ -4838,7 +4842,7 @@ msgstr "각 라벨에 대해 인쇄할 복사본 수" msgid "Connected" msgstr "연결됨" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "알 수 없음" @@ -4942,7 +4946,7 @@ msgstr "속성 키" msgid "Value of the property" msgstr "속성 값" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "그룹" @@ -4966,118 +4970,118 @@ msgstr "최대 진행도" msgid "Maximum value for progress type, required if type=progress" msgstr "진행도 유형의 최대값( type=progress 인 경우 필수)" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "주문 참조" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "미결" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "프로젝트 코드 있음" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "생성자" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "이전 생성" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "이후 생성" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "시작일 있음" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "시작일 이전" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "시작일 이후" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "목표일 있음" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "목표일 이전" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "목표일 이후" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "이전 업데이트" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "이후 업데이트" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "가격 정보 있음" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "완료일 이전" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "완료일 이후" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "외주 생산 작업 지시서" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "주문" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "주문 완료" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "내부 부품" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "주문 대기" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "완료됨" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "배송 있음" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "배송을 찾을 수 없습니다" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "구매 주문" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "구매 주문" msgid "Sales Order" msgstr "판매 주문" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "반품 주문" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "주소가 선택한 회사와 일치하지 않습니다" msgid "Order description (optional)" msgstr "주문 설명(선택 사항)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "이 주문의 프로젝트 코드를 선택하세요" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "외부 페이지 링크" @@ -5151,7 +5155,7 @@ msgstr "시작일" msgid "Scheduled start date for this order" msgstr "이 주문의 예정 시작일" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "목표일" @@ -5184,487 +5188,487 @@ msgstr "이 주문의 연락 담당자" msgid "Company address for this order" msgstr "이 주문의 회사 주소" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "주문 참조" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "상태" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "구매 주문 상태" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "품목을 주문하는 공급업체" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "공급업체 참조" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "공급업체 주문 참조 코드" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "수령자" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "주문이 완료된 날짜" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "목적지" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "수령된 품목의 목적지" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "부품 공급업체는 구매 주문 공급업체와 일치해야 합니다" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "라인 항목이 구매 주문과 일치하지 않습니다" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "라인 항목에 연결된 부품이 없습니다" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "수량은 양수여야 합니다" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "가상 부품에는 일련번호를 할당할 수 없습니다" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "고객" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "품목을 판매하는 대상 회사" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "판매 주문 상태" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "고객 참조" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "고객 주문 참조 코드" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "발송일" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "발송자" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "주문이 이미 완료되었습니다" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "주문이 이미 취소되었습니다" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "열린 주문만 완료로 표시할 수 있습니다" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "미완료 발송이 있어 주문을 완료할 수 없습니다" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "미완료 할당이 있어 주문을 완료할 수 없습니다" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "미완료 라인 항목이 있어 주문을 완료할 수 없습니다" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "이 주문은 잠겨 있어 수정할 수 없습니다" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "품목 수량" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "라인 번호" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "이 항목의 라인 번호(선택)" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "라인 항목 참조" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "라인 항목 메모" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "이 라인 항목의 목표일(비워 두면 주문의 목표일을 사용)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "라인 항목 설명(선택)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "이 라인의 추가 정보" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "단가" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "구매 주문 라인 항목" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "공급업체 부품은 공급업체와 일치해야 합니다" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "빌드 주문은 외부로 표시되어야 합니다" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "빌드 주문은 조립 부품에만 연결할 수 있습니다" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "빌드 주문 부품은 라인 항목 부품과 일치해야 합니다" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "공급업체 부품" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "수령됨" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "수령된 품목 수" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "구매 가격" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "단위 구매 가격" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "이 라인 항목으로 이행할 외주 생산 작업 지시서" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "구매 주문 추가 라인" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "판매 주문 라인 항목" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "판매 가능한 부품만 판매 주문에 할당할 수 있습니다" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "판매 가격" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "단위 판매 가격" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "발송됨" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "발송 수량" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "판매 주문 발송" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "발송 주소는 고객과 일치해야 합니다" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "이 발송의 배송지 주소" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "발송 날짜" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "배송일" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "발송물 배송 날짜" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "확인자" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "이 발송을 확인한 사용자" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "발송" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "발송 번호" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "운송장 번호" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "발송 추적 정보" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "송장 번호" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "연결된 송장의 참조 번호" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "발송이 이미 전송되었습니다" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "발송에 할당된 재고 품목이 없습니다" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "발송은 완료하기 전에 확인되어야 합니다" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "판매 주문 추가 라인" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "판매 주문 할당" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "재고 품목이 할당되지 않았습니다" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "부품이 다른 라인에 재고 품목을 할당할 수 없습니다" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "부품이 없는 라인에는 재고를 할당할 수 없습니다" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "할당 수량은 재고 수량을 초과할 수 없습니다" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "할당 수량은 0보다 커야 합니다" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "일련번호가 있는 재고 품목의 수량은 1이어야 합니다" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "판매 주문이 발송과 일치하지 않습니다" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "발송이 판매 주문과 일치하지 않습니다" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "라인" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "판매 주문 발송 참조" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "품목" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "할당할 재고 품목을 선택하세요" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "재고 할당 수량을 입력하세요" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "반품 주문 참조" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "품목이 반품되는 회사" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "반품 주문 상태" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "반품 주문 라인 항목" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "재고 품목을 지정해야 합니다" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "반품 수량이 재고 수량을 초과합니다" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "반품 수량은 0보다 커야 합니다" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "일련번호가 있는 재고 품목에 대한 수량이 올바르지 않습니다" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "고객에게서 반품받을 품목을 선택하세요" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "수령일" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "이 반품 품목을 수령한 날짜" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "결과" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "이 라인 항목의 결과" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "이 라인 항목의 반품 또는 수리에 관련된 비용" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "반품 주문 추가 라인" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "추가 라인 복사" msgid "Copy extra line items from the original order" msgstr "원본 주문에서 추가 라인 항목을 복사" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "매개변수 복사" @@ -5784,11 +5788,11 @@ msgstr "항목 병합" msgid "Merge items with the same part, destination and target date into one line item" msgstr "부품, 목적지, 목표일이 같은 항목을 하나의 라인 항목으로 병합" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "SKU" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "내부 부품 번호" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "입고 재고 품목의 배치 코드를 입력하세요" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "만료일" @@ -6056,123 +6060,131 @@ msgstr "기한 초과 반품 주문" msgid "Return order {ro} is now overdue" msgstr "반품 주문 {ro}가 이제 기한을 초과했습니다" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "즐겨찾기" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "즐겨찾기 카테고리로 필터" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "깊이" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "카테고리 깊이로 필터" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "최상위" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "최상위 카테고리로 필터" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "계층 포함" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "필터 결과에 하위 카테고리를 포함" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "상위" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "상위 카테고리로 필터" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "지정된 카테고리 아래의 하위 카테고리를 제외" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "결과 있음" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "변형 여부" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "리비전 여부" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "리비전 있음" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "BOM 유효" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "카테고리 계층 포함" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "참이면 지정된 카테고리의 하위 카테고리에 있는 항목을 포함합니다" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "숫자 카테고리 ID 또는 'null' 값으로 필터" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "조립 부품이 활성 상태" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "조립 부품을 추적할 수 있음" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "조립 부품을 테스트할 수 있음" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "구성 부품이 활성 상태" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "구성 부품을 추적할 수 있음" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "구성 부품을 테스트할 수 있음" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "구성 부품이 조립품임" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "구성 부품이 가상 부품임" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "사용 가능한 재고 있음" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "사용" @@ -6213,7 +6225,7 @@ msgstr "이 카테고리의 부품 기본 키워드" msgid "Icon" msgstr "아이콘" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "아이콘(선택)" @@ -6349,7 +6361,7 @@ msgstr "검색 결과에서 가시성을 높이기 위한 부품 키워드" msgid "Part category" msgstr "부품 카테고리" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "IPN" @@ -6358,7 +6370,7 @@ msgstr "IPN" msgid "Part revision or version number" msgstr "부품 개정 또는 버전 번호" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "개정" @@ -6382,7 +6394,7 @@ msgstr "기본 만료" msgid "Expiry time (in days) for stock items of this part" msgstr "이 부품의 재고 항목 만료 기간(일)" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "최소 재고" @@ -6390,7 +6402,7 @@ msgstr "최소 재고" msgid "Minimum allowed stock level" msgstr "허용되는 최소 재고 수준" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "하위 부품" msgid "Select part to be used in BOM" msgstr "BOM에 사용할 부품을 선택하세요" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "상위 카테고리" msgid "Parent part category" msgstr "상위 부품 카테고리" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "하위 카테고리" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "결과" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "이 템플릿에 대해 기록된 결과 수" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "이 재고 항목의 구매 통화" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "파일이 이미지가 아닙니다" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "원본 부품" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "복제할 원본 부품을 선택하세요" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "이미지 복사" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "원본 부품의 이미지를 복사합니다" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "BOM 복사" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "원본 부품의 자재 명세서(BOM)를 복사합니다" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "원본 부품의 매개변수 데이터를 복사합니다" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "메모 복사" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "원본 부품의 메모를 복사합니다" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "테스트 복사" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "원본 부품의 테스트 템플릿을 복사합니다" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "초기 재고 수량" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "이 부품의 초기 재고 수량을 지정하세요. 수량이 0이면 재고가 추가되지 않습니다." -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "초기 재고 위치" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "이 부품의 초기 재고 위치를 지정하세요" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "공급업체를 선택하세요(또는 비워 두고 건너뛰기)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "제조사를 선택하세요(또는 비워 두고 건너뛰기)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "제조사 부품 번호" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "선택한 회사는 유효한 공급업체가 아닙니다" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "선택한 회사는 유효한 제조사가 아닙니다" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "이 MPN과 일치하는 제조사 부품이 이미 존재합니다" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "이 SKU와 일치하는 공급업체 부품이 이미 존재합니다" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "카테고리 이름" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "제작 중" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "현재 생산 중인 이 부품의 수량" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "제작 예정인 이 부품의 미완료 수량" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "재고 항목" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "개정" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "총 재고" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "미할당 재고" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "변형 재고" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "부품 복제" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "다른 부품에서 초기 데이터를 복사합니다" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "초기 재고" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "초기 재고 수량과 함께 부품을 생성합니다" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "공급업체 정보" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "이 부품에 대한 초기 공급업체 정보를 추가합니다" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "카테고리 매개변수 복사" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "선택한 부품 카테고리의 매개변수 템플릿을 복사합니다" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "기존 이미지" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "기존 부품 이미지의 파일명" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "이미지 파일이 존재하지 않습니다" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "전체 자재 명세서(BOM) 검증" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "제작 가능" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "제작 주문에 필요" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "제작 주문에 할당됨" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "판매 주문에 필요" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "판매 주문에 할당됨" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "부품 IPN" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "부품 설명" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "재고 조사 정보를 생성할 부품을 선택하세요(및 모든 변형 부품)." -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "해당 카테고리(및 하위 카테고리)의 모든 부품을 포함할 카테고리를 선택하세요" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "해당 위치(하위 위치 포함)에 재고가 있는 모든 부품을 포함할 위치를 선택하세요" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "재고 조사 항목 생성" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "선택한 부품에 대한 재고 조사 항목을 저장합니다" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "보고서 생성" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "선택한 부품에 대한 재고 조사 보고서를 생성합니다" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "최소 가격" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "계산된 최소 가격 값을 재정의합니다" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "최소 가격 통화" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "최대 가격" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "계산된 최대 가격 값을 재정의합니다" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "최대 가격 통화" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "업데이트" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "이 부품의 가격 정보를 업데이트합니다" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "제공된 통화를 {default_currency}(으)로 변환할 수 없습니다" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "최소 가격은 최대 가격보다 클 수 없습니다" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "최대 가격은 최소 가격보다 작을 수 없습니다" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "상위 조립품을 선택하세요" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "구성 부품을 선택하세요" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "BOM을 복사할 부품을 선택하세요" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "기존 데이터 제거" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "복사하기 전에 기존 BOM 항목을 제거합니다" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "상속 항목 포함" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "템플릿 부품에서 상속된 BOM 항목 포함" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "잘못된 행 건너뛰기" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "이 옵션을 사용하면 잘못된 행을 건너뜁니다" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "대체 부품 복사" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "BOM 항목을 복제할 때 대체 부품도 복사" @@ -7326,91 +7338,91 @@ msgstr "작업이 지정되지 않았습니다" msgid "No matching action found" msgstr "일치하는 작업을 찾을 수 없습니다" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "바코드 데이터와 일치하는 항목을 찾을 수 없습니다" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "바코드 데이터와 일치하는 항목을 찾았습니다" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "지원되지 않는 모델입니다" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "모델 인스턴스를 찾을 수 없습니다" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "바코드가 기존 항목과 일치합니다" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "일치하는 부품 데이터를 찾을 수 없습니다" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "일치하는 공급업체 부품을 찾을 수 없습니다" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "일치하는 공급업체 부품이 여러 개 있습니다" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "바코드 데이터에 일치하는 플러그인을 찾을 수 없습니다" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "공급업체 부품과 일치함" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "항목이 이미 입고되었습니다" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "공급업체 바코드에 일치하는 플러그인이 없습니다" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "일치하는 라인 항목이 여러 개 있습니다" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "일치하는 라인 항목을 찾을 수 없습니다" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "판매 주문이 제공되지 않았습니다" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "바코드가 기존 재고 항목과 일치하지 않습니다" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "재고 항목이 라인 항목과 일치하지 않습니다" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "사용 가능한 재고가 부족합니다" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "재고 항목이 판매 주문에 할당되었습니다" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "정보가 충분하지 않습니다" @@ -7992,7 +8004,7 @@ msgstr "테두리" msgid "Print a border around each label" msgstr "각 라벨 주위에 테두리를 인쇄합니다" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "가로" @@ -8481,136 +8493,136 @@ msgstr "Legal" msgid "Letter" msgstr "Letter" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "이 이름의 템플릿 파일이 이미 존재합니다" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "템플릿 이름" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "템플릿 설명" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "리비전 번호(자동 증가)" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "인쇄 시 모델에 첨부" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "인쇄 시 보고서 출력물을 연결된 모델 인스턴스에 첨부파일로 저장합니다" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "파일명 패턴" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "파일명을 생성하기 위한 패턴" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "템플릿이 활성화됨" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "템플릿 대상 모델 유형" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "필터" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "템플릿 쿼리 필터(쉼표로 구분된 key=value 쌍 목록)" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "템플릿 파일" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "PDF 보고서 페이지 크기" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "보고서를 가로 방향으로 렌더링" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "병합" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "선택한 항목에 대해 단일 보고서를 렌더링합니다" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "템플릿 {self.name}에서 생성된 보고서" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "템플릿 구문 오류" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "보고서 렌더링 오류" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "보고서 생성 오류" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "보고서 출력 병합 오류" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "너비 [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "라벨 너비(mm)" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "높이 [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "라벨 높이(mm)" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "라벨 인쇄 오류" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "스니펫" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "보고서 스니펫 파일" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "스니펫 파일 설명" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "자산" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "보고서 자산 파일" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "자산 파일 설명" @@ -8766,200 +8778,200 @@ msgstr "결과 없음" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "잘못된 미디어 파일 경로" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "잘못된 정적 파일 경로" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "자산 파일을 찾을 수 없습니다" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "이미지 파일을 찾을 수 없습니다" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "이미지 파일이 지정되지 않았습니다" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "part_image 태그에는 Part 인스턴스가 필요합니다" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "company_image 태그에는 Company 인스턴스가 필요합니다" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "위치 깊이로 필터" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "최상위 위치로 필터" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "필터 결과에 하위 위치를 포함합니다" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "상위 위치" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "상위 위치로 필터" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "부품명(대소문자 구분 없음)" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "부품명 포함(대소문자 구분 없음)" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "부품명(정규식)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "부품 IPN(대소문자 구분 없음)" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "부품 IPN 포함(대소문자 구분 없음)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "부품 IPN(정규식)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "최소 재고" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "최대 재고" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "상태 코드" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "외부 위치" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "작업 지시서에서 소비됨" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "다른 재고 품목에 설치됨" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "부품 트리" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "업데이트 날짜 이전" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "업데이트 날짜 이후" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "재고조사 날짜 이전" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "재고조사 날짜 이후" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "유효기간 날짜 이전" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "유효기간 날짜 이후" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "장기 재고" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "제외할 재고 품목 PK를 제공하면 해당 품목과 모든 하위 항목을 제외합니다" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "위치 계단식 적용" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "true이면 지정한 위치의 하위 위치에 있는 항목을 포함합니다" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "숫자 Location ID 또는 'null' 리터럴로 필터" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "수량이 필요합니다" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "유효한 부품을 제공해야 합니다" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "지정한 공급업체 부품이 존재하지 않습니다" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "공급업체 부품에 포장 단위가 정의되어 있지만 use_pack_size 플래그가 설정되지 않았습니다" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "추적 불가능한 부품에는 시리얼 번호를 제공할 수 없습니다" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "설치된 항목 포함" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "true이면 지정한 재고 품목 아래에 설치된 항목의 테스트 결과를 포함합니다" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "숫자 재고 품목 ID로 필터" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "ID가 {id}인 재고 품목이 존재하지 않습니다" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "부품 변형 포함" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "날짜 이후" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "날짜 이전" @@ -8995,7 +9007,7 @@ msgstr "소유자 선택" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "재고 품목은 구조적 재고 위치에 직접 배치할 수 없으며, 하위 위치에 배치할 수 있습니다." -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "외부" @@ -9101,7 +9113,7 @@ msgstr "이 재고 품목에 맞는 공급업체 부품을 선택하세요" msgid "Where is this stock item located?" msgstr "이 재고 품목은 어디에 있습니까?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "이 재고 품목이 보관된 포장재" @@ -9117,7 +9129,7 @@ msgstr "이 항목이 다른 항목에 설치되어 있습니까?" msgid "Serial number for this item" msgstr "이 항목의 시리얼 번호" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "이 재고 품목의 배치 코드" @@ -9234,7 +9246,7 @@ msgstr "재고 품목이 현재 생산 중입니다" msgid "Serialized stock cannot be merged" msgstr "시리얼 추적 재고는 병합할 수 없습니다" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "중복 재고 품목" @@ -9398,7 +9410,7 @@ msgstr "새 항목의 일련 번호를 입력하세요" msgid "Supplier Part Number" msgstr "공급업체 부품 번호" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "만료됨" @@ -9428,8 +9440,8 @@ msgstr "재고 항목이 제공되지 않았습니다" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "수량은 사용 가능한 재고 수량({q})을(를) 초과할 수 없습니다" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "대상 재고 위치" @@ -9501,127 +9513,127 @@ msgstr "상태를 변경할 재고 항목을 선택하세요" msgid "No stock items selected" msgstr "선택된 재고 항목이 없습니다" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "하위 위치" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "상위 재고 위치" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "부품은 판매 가능해야 합니다" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "항목이 판매 주문에 할당되어 있습니다" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "항목이 제조 주문에 할당되어 있습니다" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "재고 항목을 할당할 고객" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "선택한 회사는 고객이 아닙니다" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "재고 할당 메모" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "재고 항목 목록을 제공해야 합니다" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "재고 병합 메모" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "공급업체 불일치 허용" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "공급업체 부품이 다른 재고 항목의 병합을 허용합니다" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "상태 불일치 허용" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "상태 코드가 다른 재고 항목의 병합을 허용합니다" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "최소 두 개의 재고 항목을 제공해야 합니다" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "변경 없음" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "재고 항목 기본 키 값" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "재고 항목이 재고에 없습니다" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "재고 항목이 이미 재고에 있습니다" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "수량은 음수일 수 없습니다" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "재고 거래 메모" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "기존 재고로 병합" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "가능하면 반품된 항목을 기존 재고 항목에 병합합니다" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "다음 일련 번호" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "이전 일련 번호" @@ -9919,7 +9931,7 @@ msgstr "권한" msgid "Important dates" msgstr "중요 날짜" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "토큰이 취소되었습니다" @@ -9927,163 +9939,163 @@ msgstr "토큰이 취소되었습니다" msgid "Token has expired" msgstr "토큰이 만료되었습니다" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "API 토큰" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "API 토큰" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "토큰 이름" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "사용자 지정 토큰 이름" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "토큰 만료일" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "마지막 사용" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "토큰이 마지막으로 사용된 시간" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "취소됨" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "권한 세트" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "보기" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "항목을 볼 권한" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "추가" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "항목을 추가할 권한" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "변경" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "항목을 수정할 권한" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "삭제" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "항목을 삭제할 권한" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "봇" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "내부" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "게스트" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "언어" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "사용자의 선호 언어" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "테마" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "웹 UI 설정(JSON) - 수동으로 편집하지 마세요!" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "위젯" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "대시보드 위젯 설정(JSON) - 수동으로 편집하지 마세요!" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "표시 이름" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "사용자가 선택한 표시 이름" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "직책" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "주요 직함 또는 직책" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "사용자 상태 메시지" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "사용자 위치 정보" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "사용자가 시스템을 사용 중입니다" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "사용자가 선호하는 연락처 정보" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "사용자 유형" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "어떤 유형의 사용자입니까?" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "조직" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "사용자의 기본 조직/소속" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "기본 그룹" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "사용자의 기본 그룹" diff --git a/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po index 4cc332cf7d..5aa37f323a 100644 --- a/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Lithuanian\n" "Language: lt_LT\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API galinis taškas nerastas" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Elementai turi būti pateikti kaip sąrašas" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Pateiktas neteisingas elementų sąrašas" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "Filtras „all“ gali būti naudojamas tik su reikšme „true“" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "Nė vienas elementas neatitinka pateiktų kriterijų" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Vartotojas neturi teisių peržiūrėti šio modelio" @@ -65,11 +65,11 @@ msgstr "El. pašto adreso patvirtinimas" msgid "You must type the same email each time." msgstr "Kiekvieną kartą turite įvesti tą patį el. pašto adresą." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Pateiktas pagrindinis el. pašto adresas neteisingas." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Pateiktas el. pašto domenas nepatvirtintas." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Nepavyko konvertuoti {original} į {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Pateiktas neteisingas kiekis" @@ -105,22 +105,22 @@ msgstr "Įveskite datą" msgid "Invalid decimal value" msgstr "Neteisinga dešimtainė reikšmė" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Pastabos" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Reikšmė „{name}“ neatitinka šablono formato" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Pateikta reikšmė neatitinka reikalaujamo šablono: " @@ -164,51 +164,51 @@ msgstr "Pašalinkite HTML žymes iš šios reikšmės" msgid "Data contains prohibited markdown content" msgstr "Duomenyse yra draudžiamo „markdown“ turinio" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Ryšio klaida" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Serveris grąžino netinkamą būsenos kodą" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Įvyko išimtis" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Serveris grąžino neteisingą „Content-Length“ reikšmę" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Paveikslėlio dydis per didelis" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Paveikslėlio atsisiuntimas viršijo maksimalų leistiną dydį" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Nutolęs serveris grąžino tuščią atsakymą" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "Nurodytas URL nėra tinkamas paveikslėlio failas" @@ -220,117 +220,121 @@ msgstr "Prisijungti prie programos" msgid "Email" msgstr "El. paštas" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Prieš atliekant bet kokius veiksmus, privalote įjungti dviejų veiksnių autentifikavimą." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Klaida vykdant įskiepio patvirtinimą" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metaduomenys turi būti „Python“ žodyno tipo objektas" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Įskiepio metaduomenys" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metaduomenų laukas, skirtas naudoti išoriniams įskiepiams" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Netinkamai suformuotas šablonas" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Nurodytas nežinomas formato raktas" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Trūksta būtino formato rakto" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "\"Nuorodos laukas negali būti tuščias" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Nuoroda turi atitikti reikalaujamą šabloną" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Nuorodos numeris per didelis" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Neteisingas pasirinkimas" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Pavadinimas" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Aprašymas" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Aprašymas (neprivalomas)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Kelias" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Po tuo pačiu pirminiu elementu negali būti pasikartojančių pavadinimų" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Pastabos su „Markdown“ (neprivalomas)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Brūkšninio kodo duomenys" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Trečiosios šalies brūkšninio kodo duomenys" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Brūkšninio kodo maiša" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Unikali brūkšninio kodo duomenų maiša\"" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Rastas esamas brūkšninis kodas" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Serverio klaida" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Serveris užfiksavo klaidą." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Turi būti teisingas skaičius" msgid "Currency" msgstr "Valiuta" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Pasirinkite valiutą iš galimų variantų" @@ -521,11 +525,11 @@ msgstr "Kinų (supaprastinta)" msgid "Chinese (Traditional)" msgstr "Kinų (tradicinė)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "Neteisingas fizinis vienetas" msgid "Not a valid currency code" msgstr "Netinkamas valiutos kodas" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Užsakymo būsena" @@ -546,23 +550,23 @@ msgstr "Užsakymo būsena" msgid "Parent Build" msgstr "Pirminė gamyba" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "Įtraukti variantus" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "Įtraukti variantus" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "Įtraukti variantus" msgid "Part" msgstr "Detalė" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Kategorija" @@ -593,7 +597,7 @@ msgstr "Kategorija" msgid "Ancestor Build" msgstr "Ankstesnė gamyba" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Priskirta man" @@ -601,11 +605,11 @@ msgstr "Priskirta man" msgid "Assigned To" msgstr "Priskirta" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Sukurta prieš" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Sukurta po" @@ -641,99 +645,99 @@ msgstr "Užbaigta prieš" msgid "Completed after" msgstr "Užbaigta po" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "Minimali data" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "Maksimali data" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "Neįtraukti medžio struktūros" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Prieš ištrinant gamybą, ji turi būti atšaukta" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Sunaudojama" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Pasirinktinai" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Surinkimas" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Sekama" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Testuojama" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Liko neįvykdytų užsakymų" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Priskirta" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Prieinama" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Užsakyta" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Gamybos užsakymas" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Vieta" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "Tikslinė data turi būti po pradžios datos" msgid "Build Order Reference" msgstr "Gamybos užsakymo nuoroda" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Pardavimo užsakymo nuoroda" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Šaltinio vieta" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Paskirties vieta" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Gamybos būsenos kodas" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Partijos kodas" @@ -883,8 +887,8 @@ msgstr "Tikslinė užbaigimo data" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Planuojama gamybos pabaigos data. Po šios datos gamyba bus pavėluota." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Užbaigimo data" @@ -900,7 +904,7 @@ msgstr "Išdavė" msgid "User who issued this build order" msgstr "Vartotojas, kuris išdavė šį gamybos užsakymą" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Šio gamybos užsakymo prioritetas" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Projekto kodas" @@ -962,9 +966,9 @@ msgstr "Gamybos rezultatas neatitinka gamybos užsakymo" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "Kiekis turi būti didesnis nei nulis" @@ -999,7 +1003,7 @@ msgstr "Gamybos objektas" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Atsargoms su serijos numeriais kiekis turi būti 1" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Priskirtas kiekis ({q}) negali viršyti galimo atsargų kiekio ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Atsargų elementas per daug paskirstytas" @@ -1057,8 +1061,8 @@ msgstr "Atsargų elementas per daug paskirstytas" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Atsargų elementas" @@ -1082,7 +1086,7 @@ msgstr "Paskirties atsargų elementas" msgid "Build Level" msgstr "Gamybos lygis" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Detalės pavadinimas" @@ -1139,7 +1143,7 @@ msgstr "Automatiškai priskirti serijos numerius" msgid "Automatically allocate required items with matching serial numbers" msgstr "Automatiškai priskirti reikalingas prekes su atitinkančiais serijos numeriais" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Šie serijos numeriai jau egzistuoja arba yra neteisingi" @@ -1272,7 +1276,7 @@ msgstr "Gamybos eilutės įrašas" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part turi būti ta pati detalė kaip ir gamybos užsakyme" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "Prekė turi būti atsargose" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "Gamyba" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Tiekėjo detalė" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Leisti variantus" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "BOM elementas" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "Gamyboje" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Išorinės atsargos" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Prieinamos atsargos" @@ -1527,31 +1531,31 @@ msgstr "Vėluojantis gamybos užsakymas" msgid "Build order {bo} is now overdue" msgstr "Gamybos užsakymas {bo} dabar vėluoja" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "Yra nuoroda" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "Yra failas" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "Vartotojas neturi teisės ištrinti šių priedų" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "Vartotojas neturi teisės ištrinti šio priedo" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "Pasirinkimų sąrašas yra užrakintas" @@ -1571,8 +1575,8 @@ msgstr "Nepateikta jokių galiojančių valiutos kodų" msgid "No plugin" msgstr "Nėra papildinio" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "Raktas turi būti unikalus" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Vartotojas" @@ -1654,8 +1658,8 @@ msgstr "Vartotojas" msgid "Price break quantity" msgstr "Kiekio ribinis taškas kainai" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Kaina" @@ -1677,8 +1681,8 @@ msgstr "Šio webhook'o pavadinimas" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Aktyvus" @@ -1686,7 +1690,7 @@ msgstr "Aktyvus" msgid "Is this webhook active" msgstr "Ar šis webhook'as aktyvus" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Raktas" @@ -1756,7 +1760,7 @@ msgstr "Pavadinimas" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "Galimi pasirinkimai šiam parametrui (atskirti kableliais)" msgid "Selection list for this parameter" msgstr "Pasirinkimų sąrašas šiam parametrui" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Įjungta" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Šablonas" @@ -2262,7 +2266,7 @@ msgstr "Brūkšninio kodo nuskaitymo data ir laikas" msgid "URL endpoint which processed the barcode" msgstr "URL galutinis taškas, kuris apdorojo brūkšninį kodą" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Kontekstas" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Raktas" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} atšaukta" msgid "A order that is assigned to you was canceled" msgstr "Užsakymas, kuris buvo jums priskirtas, buvo atšauktas" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Gautos prekės" @@ -2524,7 +2528,7 @@ msgstr "Failo pavadinimas" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "Modelio tipas" @@ -2914,8 +2918,8 @@ msgstr "Detalės pagal nutylėjimą yra šablonai" msgid "Parts can be assembled from other components by default" msgstr "Detalės pagal nutylėjimą gali būti surenkamos iš kitų komponentų" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Komponentas" @@ -2931,7 +2935,7 @@ msgstr "Galima įsigyti" msgid "Parts are purchaseable by default" msgstr "Detalės pagal nutylėjimą gali būti įsigyjamos" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Parduodama" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "Registruoti klaidas, įvykusias generuojant ataskaitas" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Puslapio dydis" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "Nepateiktas priedų modelio tipas" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "Neteisingas priedų modelio tipas" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "Mažiausias vietų skaičius negali būti didesnis nei didžiausias" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "Didžiausias vietų skaičius negali būti mažesnis nei mažiausias" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Tuščias domenas neleidžiamas." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Neteisingas domeno pavadinimas: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "Reikšmė turi būti didžiosiomis raidėmis" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "Reikšmė turi būti galiojantis kintamojo identifikatorius" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "Tiekėjas yra aktyvus" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Gamintojas" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Įmonė" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Kontaktinis el. pašto adresas" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Kontaktinis asmuo" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Adresas" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "Nuoroda į adreso informaciją (išorinė)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Gamintojo detalė" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Pasirinkite gamintoją" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "MPN" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "Susieta gamintojo detalė turi nurodyti tą pačią pagrindinę detalę" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Tiekėjas" @@ -4448,7 +4452,7 @@ msgstr "Tiekėjas" msgid "Select supplier" msgstr "Pasirinkite tiekėją" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Tiekėjo sandėlio numeris (SKU)" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimalus mokestis (pvz., sandėliavimo mokestis)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Pakuotė" @@ -4533,7 +4537,7 @@ msgstr "Numatytoji valiuta, naudojama šiam tiekėjui" msgid "Company Name" msgstr "Įmonės pavadinimas" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "Sandėlyje" @@ -4722,7 +4726,7 @@ msgstr "Pradiniai eilutės duomenys" msgid "Errors" msgstr "Klaidos" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Galiojantis" @@ -4838,7 +4842,7 @@ msgstr "Etiketės spausdinamų kopijų skaičius" msgid "Connected" msgstr "Prijungta" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Nežinoma" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Grupė" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Užsakymo nuoroda" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "Neįvykdyta" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "Turi projekto kodą" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Sukūrė" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "Sukurta prieš" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "Sukurta po" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "Turi pradžios datą" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "Pradžios data prieš" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "Pradžios data po" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "Turi tikslinę datą" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "Tikslinė data prieš" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "Tikslinė data po" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "Turi kainodarą" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "Užbaigta prieš" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "Užbaigta po" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Užsakymas" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "Užsakymas įvykdytas" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Vidinė detalė" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "Užsakymas laukia vykdymo" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Užbaigta" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "Turi siuntą" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Pirkimo užsakymas" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Pirkimo užsakymas" msgid "Sales Order" msgstr "Pardavimo užsakymas" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "Grąžinimo užsakymas" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "Užsakymo aprašymas (neprivalomas)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Pasirinkite projekto kodą šiam užsakymui" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Nuoroda į išorinį puslapį" @@ -5151,7 +5155,7 @@ msgstr "Pradžios data" msgid "Scheduled start date for this order" msgstr "Numatyta pradžios data šiam užsakymui" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Tikslinė data" @@ -5184,487 +5188,487 @@ msgstr "Kontaktinis asmuo šiam užsakymui" msgid "Company address for this order" msgstr "Įmonės adresas šiam užsakymui" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Užsakymo nuoroda" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Būsena" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Pirkimo užsakymo būsena" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Įmonė, iš kurios užsakomos prekės" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Tiekėjo nuoroda" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Tiekėjo užsakymo nuorodos kodas" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "gavo" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "Data, kada užsakymas buvo užbaigtas" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Paskirties vieta" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "Paskirties vieta gautoms prekėms" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "Detalių tiekėjas turi atitikti pirkimo užsakymo tiekėją" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "Eilutės įrašas neatitinka pirkimo užsakymo" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "Kiekis turi būti teigiamas skaičius" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Klientas" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Įmonė, kuriai prekės parduodamos" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "Pardavimo užsakymo būsena" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Kliento nuoroda" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Kliento užsakymo nuorodos kodas" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Siuntos data" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "išsiuntė" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "Užsakymas jau baigtas" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "Užsakymas jau atšauktas" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Tik atviras užsakymas gali būti pažymėtas kaip užbaigtas" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Užsakymas negali būti užbaigtas, nes yra neišsiųstų siuntų" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "Užsakymas negali būti užbaigtas, nes yra nepriskirtų prekių" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "Užsakymas negali būti užbaigtas, nes yra neužbaigtų eilučių" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "Užsakymas užrakintas ir negali būti keičiamas" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Prekės kiekis" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Eilutės įrašo nuoroda" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Eilutės įrašo pastabos" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Tikslinė šio eilutės įrašo data (palikite tuščią, jei norite naudoti užsakymo tikslinę datą)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Eilutės įrašo aprašymas (neprivalomas)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "Papildomas kontekstas šiai eilutei" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Vieneto kaina" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "Pirkimo užsakymo eilutės įrašas" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "Tiekėjo detalė turi atitikti tiekėją" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Tiekėjo detalė" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Gauta" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Gautų prekių kiekis" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Pirkimo kaina" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Vieneto pirkimo kaina" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "Pirkimo užsakymo papildoma eilutė" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "Pardavimo užsakymo eilutės įrašas" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "Tik parduodamos detalės gali būti priskirtos pardavimo užsakymui" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Pardavimo kaina" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Vieneto pardavimo kaina" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Išsiųsta" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Išsiųstas kiekis" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "Pardavimo užsakymo siunta" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Siuntos data" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Pristatymo data" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Siuntos pristatymo data" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Patikrino" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Vartotojas, patikrinęs šią siuntą" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Siunta" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Siuntos numeris" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Sekimo numeris" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Siuntos sekimo informacija" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Sąskaitos faktūros numeris" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Nuorodos numeris susijusiai sąskaitai faktūrai" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "Siunta jau buvo išsiųsta" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "Siunta neturi priskirtų prekių" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "Pardavimo užsakymo papildoma eilutė" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "Pardavimo užsakymo paskirstymas" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "Prekė nėra priskirta" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "Negalima priskirti prekių eilutei su skirtinga detale" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "Negalima priskirti prekių eilutei, jei joje nėra detalės" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Priskiriamas kiekis negali viršyti atsargų kiekio" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Priskirtas kiekis turi būti didesnis nei nulis" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "Kiekis turi būti 1, jei prekė turi serijos numerį" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "Pardavimo užsakymas nesutampa su siunta" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "Siunta nesutampa su pardavimo užsakymu" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Eilutė" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Pardavimo užsakymo siuntos nuoroda" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Prekė" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Pasirinkite atsargų elementą priskyrimui" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Įveskite prekių priskyrimo kiekį" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "Grąžinimo užsakymo nuoroda" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Įmonė, iš kurios grąžinamos prekės" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "Grąžinimo užsakymo būsena" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "Grąžinimo užsakymo eilutės įrašas" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "Turi būti nurodytas atsargų elementas" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "Grąžinamo kiekis viršija prekių kiekį" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "Grąžinamo kiekis turi būti daugiau nei nulis" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "Neteisingas kiekis serijinio numerio prekei" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Pasirinkite prekę grąžinimui iš kliento" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Gavimo data" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Rezultatas" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Rezultatas šiam eilutės įrašui" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Išlaidos, susijusios su šio eilutės įrašo grąžinimu ar remontu" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "Grąžinimo užsakymo papildoma eilutė" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "Kopijuoti papildomas eilutes" msgid "Copy extra line items from the original order" msgstr "Kopijuoti papildomas eilutes iš pradinio užsakymo" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Kopijuoti parametrus" @@ -5784,11 +5788,11 @@ msgstr "Sujungti elementus" msgid "Merge items with the same part, destination and target date into one line item" msgstr "Sujungti elementus su ta pačia detale, paskirtimi ir tiksline data į vieną eilutės įrašą" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "SKU" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Vidinis detalės numeris" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Įveskite partijos kodą gaunamoms atsargoms" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Galiojimo data" @@ -6056,123 +6060,131 @@ msgstr "Vėluojantis grąžinimo užsakymas" msgid "Return order {ro} is now overdue" msgstr "Grąžinimo užsakymas {ro} dabar vėluoja" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "Pažymėta žvaigždute" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "Filtruoti pagal pažymėtas kategorijas" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Gylis" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "Filtruoti pagal kategorijos gylį" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "Aukščiausio lygio" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "Filtruoti pagal aukščiausio lygio kategorijas" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "Kaskada" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "Įtraukti sub-kategorijas į filtravimo rezultatus" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "Pirminė kategorija" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "Filtruoti pagal pirminę kategoriją" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "Neįtraukti sub-kategorijų po nurodyta kategorija" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "Turi rezultatų" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "Yra variantas" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "Yra versija" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "Turi versijų" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "BOM galiojantis" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "Surinkimo detalė gali būti testuojama" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "Komponento detalė gali būti testuojama" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "Naudoja" @@ -6213,7 +6225,7 @@ msgstr "Numatytieji raktažodžiai detalėms šioje kategorijoje" msgid "Icon" msgstr "Piktograma" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Piktograma (neprivaloma)" @@ -6349,7 +6361,7 @@ msgstr "Detalės raktažodžiai, skirti pagerinti matomumą paieškos rezultatuo msgid "Part category" msgstr "Detalės kategorija" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "IPN" @@ -6358,7 +6370,7 @@ msgstr "IPN" msgid "Part revision or version number" msgstr "Detalės versija arba numeris" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Versija" @@ -6382,7 +6394,7 @@ msgstr "Numatytasis galiojimo laikas" msgid "Expiry time (in days) for stock items of this part" msgstr "Šios detalės atsargų galiojimo laikas (dienomis)" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Minimalus atsargų kiekis" @@ -6390,7 +6402,7 @@ msgstr "Minimalus atsargų kiekis" msgid "Minimum allowed stock level" msgstr "Mažiausias leidžiamas atsargų kiekis" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "Pavaldi detalė" msgid "Select part to be used in BOM" msgstr "Pasirinkite detalę, naudojamą BOM" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "Pagrindinė kategorija" msgid "Parent part category" msgstr "Pagrindinė detalių kategorija" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Subkategorijos" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "Rezultatai" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "Rezultatų skaičius, susietas su šiuo šablonu" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Šio atsargų elemento pirkimo valiuta" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "Failas nėra paveikslėlis" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Pradinė detalė" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Pasirinkite pradinę detalę kopijavimui" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Kopijuoti paveikslėlį" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Kopijuoti paveikslėlį iš pradinės detalės" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Kopijuoti BOM" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Kopijuoti komplektavimo žiniaraštį iš pradinės detalės" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Kopijuoti parametrų duomenis iš pradinės detalės" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Kopijuoti pastabas" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "Kopijuoti pastabas iš pradinės detalės" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Pradinis atsargų kiekis" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Nurodykite pradinį atsargų kiekį šiai detalei. Jei kiekis nulis - atsargos nebus pridėtos." -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "Pradinė atsargų vieta" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "Nurodykite pradinę atsargų vietą šiai detalei" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Pasirinkite tiekėją (arba palikite tuščią, jei nenorite nurodyti)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Pasirinkite gamintoją (arba palikite tuščią, jei nenorite nurodyti)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Gamintojo detalės numeris" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "Pasirinkta įmonė nėra galiojantis tiekėjas" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "Pasirinkta įmonė nėra galiojantis gamintojas" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "Detalė su šiuo gamintojo numeriu (MPN) jau egzistuoja" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "Tiekėjo detalė su šiuo SKU jau egzistuoja" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Kategorijos pavadinimas" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "Surinkimas" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Atsargos" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "Versijos" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Bendros atsargos" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "Nepriskirtos atsargos" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "Variantų atsargos" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Kopijuoti detalę" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "Kopijuoti pradinius duomenis iš kitos detalės" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Pradinės atsargos" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Sukurti detalę su pradiniu atsargų kiekiu" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Tiekėjo informacija" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Pridėti pradinę tiekėjo informaciją šiai detalei" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Kopijuoti kategorijos parametrus" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "Kopijuoti parametrų šablonus iš pasirinktos detalių kategorijos" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Esamas paveikslėlis" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "Esamos detalės paveikslėlio failo pavadinimas" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "Paveikslėlio failas neegzistuoja" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Patvirtinti visą komplektavimo žiniaraštį" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Galima surinkti" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Mažiausia kaina" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Pakeisti apskaičiuotą mažiausią kainą" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Mažiausios kainos valiuta" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Didžiausia kaina" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "Pakeisti apskaičiuotą didžiausią kainą" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Didžiausios kainos valiuta" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Atnaujinti" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "Atnaujinti šios detalės kainodarą" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Nepavyko konvertuoti iš nurodytų valiutų į {default_currency}" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "Mažiausia kaina negali būti didesnė už didžiausią kainą" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "Didžiausia kaina negali būti mažesnė už mažiausią kainą" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "Pasirinkite pirminį surinkimą" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "Pasirinkite komponentinę detalę" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "Pasirinkite detalę, iš kurios kopijuoti BOM" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Pašalinti esamus duomenis" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Pašalinti esamus BOM elementus prieš kopijuojant" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Įtraukti paveldėtus" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Įtraukti BOM elementus, paveldėtus iš šabloninių detalių" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Praleisti netinkamas eilutes" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Įjunkite šią parinktį, jei norite praleisti netinkamas eilutes" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Kopijuoti pakaitines detales" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "Kopijuoti pakaitines detales, kai kopijuojami BOM elementai" @@ -7326,91 +7338,91 @@ msgstr "Nenurodytas joks veiksmas" msgid "No matching action found" msgstr "Atitinkantis veiksmas nerastas" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "Brūkšninio kodo duomenims atitikmens nerasta" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Rastas atitikmuo brūkšninio kodo duomenims" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "Modelis nepalaikomas" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "Modelio egzempliorius nerastas" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "Brūkšninis kodas atitinka esamą elementą" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "Atitinkančių detalės duomenų nerasta" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "Tiekėjo detalių atitikmenų nerasta" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "Rastos kelios atitinkančios tiekėjo detalės" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "Brūkšninio kodo duomenims atitinkančio įskiepio nerasta" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "Atitinkanti tiekėjo detalė" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "Prekė jau buvo priimta" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "Tiekėjo brūkšniniam kodui įskiepis nerastas" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "Rasti keli atitinkantys eilutės įrašai" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "Atitinkančios eilutės įrašo nerasta" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "Nepateiktas pardavimo užsakymas" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "Brūkšninis kodas neatitinka jokio esamo atsargų elemento" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "Atsargų elementas neatitinka eilutės įrašo" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "Nepakanka atsargų" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "Atsargų elementas priskirtas pardavimo užsakymui" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "Nepakanka informacijos" @@ -7992,7 +8004,7 @@ msgstr "Rėmelis" msgid "Print a border around each label" msgstr "Spausdinti rėmelį aplink kiekvieną etiketę" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "Gulsčias" @@ -8481,136 +8493,136 @@ msgstr "Legal" msgid "Letter" msgstr "Letter" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "Šablono failas tokiu pavadinimu jau egzistuoja" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Šablono pavadinimas" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "Šablono aprašymas" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "Versijos numeris (didinamas automatiškai)" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "Pridėti prie modelio spausdinant" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "Išsaugoti ataskaitą kaip priedą susietam modelio egzemplioriui spausdinimo metu" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Failo vardo šablonas" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "Šablonas failų vardų generavimui" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "Šablonas įjungtas" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "Šablonui skirtas modelio tipas" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Filtrai" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "Šablono užklausos filtrai (kableliais atskirtas key=value porų sąrašas)" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "Šablono failas" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "Puslapio dydis PDF ataskaitoms" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "Rodyti ataskaitą gulsčiai" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "Ataskaita sugeneruota iš šablono {self.name}" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "Klaida generuojant ataskaitą" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Plotis [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Etiketės plotis, nurodytas milimetrais" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Aukštis [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Etiketės aukštis, nurodytas milimetrais" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "Klaida spausdinant etiketes" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Fragmentas" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Ataskaitos fragmento failas" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Fragmento failo aprašymas" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Išteklius" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Ataskaitos ištekliaus failas" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Ištekliaus failo aprašymas" @@ -8766,200 +8778,200 @@ msgstr "Nėra rezultato" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "Paveikslėlio failas nerastas" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "Žyma part_image reikalauja detalės (Part) egzemplioriaus" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "Žyma company_image reikalauja įmonės (Company) egzemplioriaus" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "Filtruoti pagal vietos gylį" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "Filtruoti pagal aukščiausio lygio vietas" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "Įtraukti sub-vietas į filtravimo rezultatus" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "Pirminė vieta" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "Filtruoti pagal pirminę vietą" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "Detalės pavadinimas (neskiria didžiųjų ir mažųjų raidžių)" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "Detalės pavadinimas turi (neskiria didžiųjų ir mažųjų raidžių)" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "Detalės pavadinimas (reguliarioji išraiška)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "Detalės IPN (neskiria didžiųjų ir mažųjų raidžių)" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "Detalės IPN turi (neskiria didžiųjų ir mažųjų raidžių)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "Detalės IPN (reguliarioji išraiška)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "Mažiausias kiekis" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "Didžiausias kiekis" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Būsenos kodas" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Išorinė vieta" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "Sunaudota gamybos užsakyme" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "Sumontuota kitame atsargų elemente" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "Detalių medis" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "Atnaujinta iki" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "Atnaujinta po" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "Inventorizacija iki" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "Inventorizacija po" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "Galiojimo data iki" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "Galiojimo data po" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "Pasenusi" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "Reikalingas kiekis" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "Turi būti pateikta galiojanti detalė" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "Nurodyta tiekėjo detalė neegzistuoja" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Tiekėjo detalė turi nustatytą pakuotės dydį, bet nepažymėtas požymis use_pack_size" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Serijos numeriai negali būti pateikti detalei, kurios negalima sekti" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "Pasirinkite savininką" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Atsargos negali būti tiesiogiai patalpintos į struktūrines atsargų vietas, bet gali būti patalpinti į jų sub-vietas." -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Išorinė" @@ -9101,7 +9113,7 @@ msgstr "Pasirinkite atitinkančią tiekėjo detalę šiam atsargų elementui" msgid "Where is this stock item located?" msgstr "Kur yra šis atsargų elementas?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "Pakuotė, kurioje laikomas šis atsargų elementas" @@ -9117,7 +9129,7 @@ msgstr "Ar šis elementas yra sumontuotas kitame elemente?" msgid "Serial number for this item" msgstr "Šio elemento serijos numeris" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Šio atsargų elemento partijos kodas" @@ -9234,7 +9246,7 @@ msgstr "Atsargų elementas šiuo metu gaminamas" msgid "Serialized stock cannot be merged" msgstr "Su serijos numeriais pažymėtų atsargų sujungti negalima" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Pasikartojantys atsargų elementai" @@ -9398,7 +9410,7 @@ msgstr "Įveskite serijos numerius naujiems elementams" msgid "Supplier Part Number" msgstr "Tiekėjo detalės numeris" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Nebegaliojantis" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Kiekis negali viršyti galimų atsargų kiekio ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Paskirties atsargų vieta" @@ -9501,127 +9513,127 @@ msgstr "Pasirinkite atsargų elementus būsenai pakeisti" msgid "No stock items selected" msgstr "Nepasirinkti jokie atsargų elementai" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Sub-vietos" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "Pirminė atsargų vieta" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "Detalė turi būti parduodama" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "Elementas priskirtas pardavimo užsakymui" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "Elementas priskirtas gamybos užsakymui" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Klientas, kuriam priskiriami atsargų elementai" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "Pasirinkta įmonė nėra klientas" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Atsargų priskyrimo pastabos" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "Turi būti pateiktas atsargų elementų sąrašas" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Atsargų sujungimo pastabos" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Leisti skirtingus tiekėjus" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Leisti sujungti atsargų elementus su skirtingomis tiekėjų detalėmis" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Leisti skirtingas būsenas" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Leisti sujungti atsargų elementus su skirtingais būsenos kodais" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "Turi būti pateikti bent du atsargų elementai" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "Be pakeitimų" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Atsargų elemento pirminio rakto reikšmė" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "Atsargų elemento nėra sandėlyje" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Atsargų operacijos pastabos" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "Kitas serijos numeris" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "Ankstesnis serijos numeris" @@ -9919,7 +9931,7 @@ msgstr "Leidimai" msgid "Important dates" msgstr "Svarbios datos" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "Raktas buvo atšauktas" @@ -9927,163 +9939,163 @@ msgstr "Raktas buvo atšauktas" msgid "Token has expired" msgstr "Raktas nebegalioja" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "API prieigos raktas" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "API prieigos raktai" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Rakto pavadinimas" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Pasirinktas rakto pavadinimas" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Rakto galiojimo data" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Paskutinį kartą naudotas" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "Paskutinis rakto naudojimo laikas" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Atšauktas" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Leidimų rinkinys" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Peržiūra" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Leidimas peržiūrėti objektus" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Pridėti" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Leidimas pridėti objektus" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Keisti" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Leidimas redaguoti objektus" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Ištrinti" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Leidimas ištrinti objektus" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "Botas" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "Vidinis" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "Svečias" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "Kalba" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "Pageidaujama vartotojo kalba" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "Tema" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "Žiniatinklio sąsajos nustatymai (JSON formatu) - neredaguoti rankiniu būdu!" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "Valdikliai" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "Prietaisų skydelio valdiklių nustatymai (JSON formatu) - neredaguoti rankiniu būdu!" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "Rodomas vardas" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "Pasirinktas vartotojo rodomas vardas" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "Pareigos" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "Pagrindinės pareigos arba darbo pavadinimas" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "Vartotojo būsenos žinutė" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "Vartotojo buvimo vietos informacija" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "Vartotojas aktyviai naudoja sistemą" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "Pageidaujama vartotojo kontaktinė informacija" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "Vartotojo tipas" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "Kokio tipo tai vartotojas?" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "Organizacija" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "Pagrindinė vartotojo organizacija / priklausomybė" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "Pagrindinė grupė" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "Pagrindinė vartotojo grupė" diff --git a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po index 76cf65ad6a..ec7a5c0613 100644 --- a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Latvian\n" "Language: lv_LV\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API galapunkts nav atrasts" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Lietotājam nav atļaujas, lai apskatītu šo modeli" @@ -65,11 +65,11 @@ msgstr "E-pasta adreses apstiprinājums" msgid "You must type the same email each time." msgstr "Katru reizi jāievada viena un tā pati e-pasta adrese." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Norādītā primārā e-pasta adrese nav derīga." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Norādītais e-pasta domēns nav apstiprināts." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Nevarēja konvertēt {original} par {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Norādītais daudzums nav derīgs" @@ -105,22 +105,22 @@ msgstr "Ievadiet datumu" msgid "Invalid decimal value" msgstr "" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Piezīmes" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Vērtība '{name}' neparādās vajadzīgajā formātā" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Norādītā vērtība neatbilst nepieciešamajam formātam: " @@ -164,51 +164,51 @@ msgstr "Noņemiet HTML tagus no šīs vērtības" msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Savienojuma kļūda" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Serveris atbildēja ar nederīgu statusa kodu" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Radās izņēmums" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Serveris atbildēja ar nederīgu Content-Length vērtību" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Attēla izmērs ir pārāk liels" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Attēla lejupielāde pārsniedz maksimālo izmēru" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Attālais serveris atgrieza tukšu atbildi" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "Norādītajā URL nav derīgs attēla fails" @@ -220,117 +220,121 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "" msgid "Currency" msgstr "" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "" @@ -521,11 +525,11 @@ msgstr "" msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "" @@ -546,23 +550,23 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "" @@ -593,7 +597,7 @@ msgstr "" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "" @@ -601,11 +605,11 @@ msgstr "" msgid "Assigned To" msgstr "" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "" @@ -883,8 +887,8 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "" @@ -900,7 +904,7 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "" @@ -962,9 +966,9 @@ msgstr "" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "" @@ -999,7 +1003,7 @@ msgstr "" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "" @@ -1057,8 +1061,8 @@ msgstr "" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "" @@ -1082,7 +1086,7 @@ msgstr "" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "" @@ -1139,7 +1143,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "" @@ -1527,31 +1531,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "" @@ -1654,8 +1658,8 @@ msgstr "" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "" @@ -1677,8 +1681,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "" @@ -1686,7 +1690,7 @@ msgstr "" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "" @@ -1756,7 +1760,7 @@ msgstr "" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "" @@ -2430,7 +2434,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2524,7 +2528,7 @@ msgstr "" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "" @@ -2931,7 +2935,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "" @@ -4448,7 +4452,7 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4533,7 +4537,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "" msgid "Sales Order" msgstr "" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "" @@ -6382,7 +6394,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "" @@ -6390,7 +6402,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8766,200 +8778,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po index 2693c684a4..867b17aaec 100644 --- a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API eindpunt niet gevonden" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "Lijst met items of filters moet worden opgegeven voor bulk bewerking" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Items moeten worden opgegeven als een lijst" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Ongeldige items lijst verstrekt" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "Alles filteren alleen gebruiken met True" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "Geen items die overeenkomen met de opgegeven criteria" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "Geen gegevens verstrekt" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "Dit veld moet uniek zijn" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Gebruiker heeft geen rechten om dit model te bekijken" @@ -65,11 +65,11 @@ msgstr "E-mailadres bevestiging" msgid "You must type the same email each time." msgstr "Er moet hetzelfde e-mailadres ingevoerd worden." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Het opgegeven primaire e-mailadres is ongeldig." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Het ingevoerde e-maildomein is niet goedgekeurd." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "{original} kon niet worden omgezet naar {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Ongeldige hoeveelheid ingevoerd" @@ -105,22 +105,22 @@ msgstr "Voer datum in" msgid "Invalid decimal value" msgstr "Ongeldige decimale waarde" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Opmerkingen" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Waarde '{name}' verschijnt niet in patroonformaat" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Opgegeven waarde komt niet overeen met vereist patroon: " @@ -164,51 +164,51 @@ msgstr "Verwijder HTML tags van deze waarde" msgid "Data contains prohibited markdown content" msgstr "Gegevens bevatten verboden markdown inhoud" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "Ongeldige URL: geen hostnaam" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "Ongeldige URL: hostnaam kon niet worden opgelost" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "URL-punten naar een privé of gereserveerd IP-adres" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "Te veel doorverwijzingen" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Verbindingsfout" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Server reageerde met ongeldige statuscode" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Uitzondering opgetreden" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Server reageerde met ongeldige Content-Length waarde" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Afbeeldingsformaat is te groot" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Beelddownload overschrijdt de maximale grootte" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Externe server heeft lege reactie teruggegeven" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "Opgegeven URL is geen geldig afbeeldingsbestand" @@ -220,117 +220,121 @@ msgstr "Log in op de app" msgid "Email" msgstr "E-mail" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Schakel tweestapsverificatie in voordat je iets anders kunt doen." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Fout bij uitvoeren plug-in validatie" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metadata moeten een python dict object zijn" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Plug-in metadata" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadata veld, voor gebruik door externe plugins" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Onjuist opgemaakt patroon" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Onbekende opmaaksleutel gespecificeerd" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Vereiste opmaaksleutel ontbreekt" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Referentieveld mag niet leeg zijn" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Referentie moet overeenkomen met verplicht patroon" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Referentienummer is te groot" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Ongeldige keuze" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Naam" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Omschrijving" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Omschrijving (optioneel)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Pad" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Dubbele namen kunnen niet bestaan onder hetzelfde bovenliggende object" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Markdown notitie (optioneel)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Streepjescode gegevens" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Streepjescode van derden" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Hash van Streepjescode" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Unieke hash van barcode gegevens" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Bestaande barcode gevonden" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Serverfout" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Er is een fout gelogd door de server." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Moet een geldig nummer zijn" msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Selecteer valuta uit beschikbare opties" @@ -521,11 +525,11 @@ msgstr "Chinees (vereenvoudigd)" msgid "Chinese (Traditional)" msgstr "Chinees (traditioneel)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "Update beschikbaar" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "Een update voor Inventree is beschikbaar" @@ -537,7 +541,7 @@ msgstr "Ongeldige fysieke eenheid" msgid "Not a valid currency code" msgstr "Geen geldige valutacode" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Status van bestelling" @@ -546,23 +550,23 @@ msgstr "Status van bestelling" msgid "Parent Build" msgstr "Bovenliggende Productie" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "Inclusief varianten" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "Inclusief varianten" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "Inclusief varianten" msgid "Part" msgstr "Onderdeel" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Categorie" @@ -593,7 +597,7 @@ msgstr "Categorie" msgid "Ancestor Build" msgstr "Voorouderlijke bouw" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Toegewezen aan mij" @@ -601,11 +605,11 @@ msgstr "Toegewezen aan mij" msgid "Assigned To" msgstr "Toegewezen aan" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Gemaakt voor" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Gemaakt na" @@ -641,99 +645,99 @@ msgstr "Voltooid voor" msgid "Completed after" msgstr "Voltooid na" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "Min. datum" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "Max. datum" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "Boomstructuur uitsluiten" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Productie moet geannuleerd worden voordat het kan worden verwijderd" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Verbruiksartikelen" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Optioneel" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Samenstelling" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Gevolgd" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Testbaar" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Openstaande order" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Toegewezen" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Verbruikt" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Beschikbaar" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "In bestelling" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "Build niet gevonden" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Productieorder" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Locatie" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "Uitvoer" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Filter op uitvoer standaard item ID. Gebruik 'null' om niet geïnstalleerde build items te vinden." @@ -773,9 +777,9 @@ msgstr "Doeldatum moet na startdatum zijn" msgid "Build Order Reference" msgstr "Productieorderreferentie" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Verkooporder Referentie" msgid "Sales Order to which this build is allocated" msgstr "Productieopdracht waar dit productie aan is toegewezen" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Bronlocatie" @@ -821,7 +825,7 @@ msgstr "Externe bouw" msgid "This build order is fulfilled externally" msgstr "Deze bouw opdracht is extern uitgevoerd" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Bestemmings Locatie" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Productiestatuscode" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Batchcode" @@ -883,8 +887,8 @@ msgstr "Verwachte opleveringsdatum" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Doeldatum voor productie voltooiing. Productie zal achterstallig zijn na deze datum." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Opleveringsdatum" @@ -900,7 +904,7 @@ msgstr "Uitgegeven door" msgid "User who issued this build order" msgstr "Gebruiker die de productieorder heeft gegeven" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Prioriteit van deze bouwopdracht" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Project code" @@ -962,9 +966,9 @@ msgstr "Productuitvoer komt niet overeen met de Productieorder" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "Hoeveelheid moet groter zijn dan nul" @@ -999,7 +1003,7 @@ msgstr "Bouw object" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Hoeveelheid moet 1 zijn voor geserialiseerde voorraad" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Toegewezen hoeveelheid ({q}) mag de beschikbare voorraad ({a}) niet overschrijden" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Voorraad item is te veel toegewezen" @@ -1057,8 +1061,8 @@ msgstr "Voorraad item is te veel toegewezen" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Voorraadartikel" @@ -1082,7 +1086,7 @@ msgstr "Bestemming voorraadartikel" msgid "Build Level" msgstr "Bouw level" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Onderdeel naam" @@ -1139,7 +1143,7 @@ msgstr "Serienummers automatisch toewijzen" msgid "Automatically allocate required items with matching serial numbers" msgstr "Vereiste artikelen automatisch toewijzen met overeenkomende serienummers" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "De volgende serienummers bestaan al of zijn ongeldig" @@ -1272,7 +1276,7 @@ msgstr "Bouw lijn-item" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part moet naar hetzelfde onderdeel wijzen als de productieorder" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "Artikel moet op voorraad zijn" @@ -1351,7 +1355,7 @@ msgstr "Selecteer item type om automatisch toe te wijzen" #: build/serializers.py:1077 order/serializers.py:2096 msgid "Stock Priority" -msgstr "" +msgstr "Voorraad prioriteit" #: build/serializers.py:1078 order/serializers.py:2097 msgid "Preferred order in which matching stock items are consumed" @@ -1385,8 +1389,8 @@ msgstr "Instaleeren Op" msgid "Build" msgstr "Bouwen" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Leveranciersonderdeel" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Varianten toestaan" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "Stuklijstartikel" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "In productie" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "Gepland om te bouwen" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Externe voorraad" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Beschikbare Voorraad" @@ -1527,31 +1531,31 @@ msgstr "Achterstallige Productieorder" msgid "Build order {bo} is now overdue" msgstr "Productieorder {bo} is nu achterstallig" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" -msgstr "" +msgstr "Heeft Miniatuurafbeelding" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "Is koppeling" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "Is een bestand" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "Gebruiker heeft geen toestemming om deze bijlagen te verwijderen" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" -msgstr "" +msgstr "Gebruiker heeft geen toestemming om deze bijlage te bewerken." -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "Gebruiker heeft geen toestemming om deze bijlage te verwijderen." -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "Lijst met selecties is vergrendeld" @@ -1571,10 +1575,10 @@ msgstr "Geen geldige valuta codes opgegeven" msgid "No plugin" msgstr "Geen plug-in gevonden" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" -msgstr "" +msgstr "Tags" #: common/filters.py:390 msgid "Project Code Label" @@ -1645,8 +1649,8 @@ msgstr "Sleutelreeks moet uniek zijn" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Gebruiker" @@ -1654,8 +1658,8 @@ msgstr "Gebruiker" msgid "Price break quantity" msgstr "Prijs pauze hoeveelheid" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Prijs" @@ -1677,8 +1681,8 @@ msgstr "Naam van deze webhook" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Actief" @@ -1686,7 +1690,7 @@ msgstr "Actief" msgid "Is this webhook active" msgstr "Is deze webhook actief" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Sleutel" @@ -1756,7 +1760,7 @@ msgstr "Titel" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -1877,7 +1881,7 @@ msgstr "Bestand als bijlage selecteren" #: common/models.py:2114 msgid "Thumbnail" -msgstr "" +msgstr "Miniatuur" #: common/models.py:2115 msgid "Thumbnail image for this attachment" @@ -1901,7 +1905,7 @@ msgstr "Datum waarop het bestand is geüpload" #: common/models.py:2154 msgid "Is image" -msgstr "" +msgstr "Is een afbeelding" #: common/models.py:2155 msgid "True if this attachment is a valid image file" @@ -2172,7 +2176,7 @@ msgstr "Geldige keuzes voor deze parameter (komma gescheiden)" msgid "Selection list for this parameter" msgstr "Lijst met selecties voor deze parameter" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Ingeschakeld" @@ -2204,8 +2208,8 @@ msgstr "Model-ID" msgid "ID of the target model for this parameter" msgstr "ID van het doelmodel voor deze parameter" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Sjabloon" @@ -2262,7 +2266,7 @@ msgstr "Datum en tijd van de streepjescode scan" msgid "URL endpoint which processed the barcode" msgstr "Adres eindpunt dat de streepjescode verwerkt" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Inhoud" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "E-mail gesprekken" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Sleutel" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} is geannuleerd" msgid "A order that is assigned to you was canceled" msgstr "Een bestelling die aan u is toegewezen is geannuleerd" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Ontvangen items" @@ -2524,7 +2528,7 @@ msgstr "Bestandsnaam" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "Model type" @@ -2684,7 +2688,7 @@ msgstr "Munteenheid update plug-in om te gebruiken" #: common/setting/system.py:290 msgid "Upload Size Limit" -msgstr "" +msgstr "Maximale upload grote" #: common/setting/system.py:291 msgid "Maximum allowable upload size for images and files" @@ -2914,8 +2918,8 @@ msgstr "Onderdelen zijn standaard sjablonen" msgid "Parts can be assembled from other components by default" msgstr "Onderdelen kunnen standaard vanuit andere componenten worden samengesteld" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Onderdeel" @@ -2931,7 +2935,7 @@ msgstr "Koopbaar" msgid "Parts are purchaseable by default" msgstr "Onderdelen kunnen standaard gekocht worden" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Verkoopbaar" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "Registreer fouten die optreden bij het genereren van rapporten" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Paginagrootte" @@ -3746,39 +3750,39 @@ msgstr "Toon gebruikersprofielen op hun profielpagina" #: common/setting/system.py:1239 msgid "Week Starts On" -msgstr "" +msgstr "De week begint op" #: common/setting/system.py:1240 msgid "Starting day of the week, for display in calendar views" -msgstr "" +msgstr "Eerste dat van de week, voor in de kalenderweergaven" #: common/setting/system.py:1243 msgid "Sunday" -msgstr "" +msgstr "Zondag" #: common/setting/system.py:1244 msgid "Monday" -msgstr "" +msgstr "Maandag" #: common/setting/system.py:1245 msgid "Tuesday" -msgstr "" +msgstr "Dinsdag" #: common/setting/system.py:1246 msgid "Wednesday" -msgstr "" +msgstr "woensdag" #: common/setting/system.py:1247 msgid "Thursday" -msgstr "" +msgstr "Donderdag" #: common/setting/system.py:1248 msgid "Friday" -msgstr "" +msgstr "Vrijdag" #: common/setting/system.py:1249 msgid "Saturday" -msgstr "" +msgstr "Zaterdag" #: common/setting/system.py:1253 msgid "Calendar Horizon" @@ -3790,7 +3794,7 @@ msgstr "" #: common/setting/system.py:1259 msgid "months" -msgstr "" +msgstr "maanden" #: common/setting/system.py:1262 msgid "Enable Test Station Data" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "Alle modellen" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "Geen bijlage model type opgegeven" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "Ongeldig bijlage type" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" -msgstr "" +msgstr "Ongeldige bestandsnaam" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "Minimale plaatsen mogen niet groter zijn dan het maximum" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "Maximum aantal plaatsen kan niet minder zijn dan minimaal" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Een leeg domein is niet toegestaan." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Ongeldige domeinnaam: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "De waarde moet hoofdletters zijn" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "Waarde moet een geldige variabele id zijn" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "Leverancier is actief" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Fabrikant" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Bedrijf" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Contact e-mailadres" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Contact" @@ -4297,7 +4301,7 @@ msgstr "Btw-nr" msgid "Company Tax ID" msgstr "BTW-nummer van bedrijf" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Adres" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "Link naar adres gegevens (extern)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Fabrikant onderdeel" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Fabrikant selecteren" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "Fabrikant artikel nummer" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderdeel" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Leverancier" @@ -4448,7 +4452,7 @@ msgstr "Leverancier" msgid "Select supplier" msgstr "Leverancier selecteren" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Voorraad beheers eenheid voor leveranciers" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimale kosten (bijv. voorraadkosten)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Verpakking" @@ -4533,7 +4537,7 @@ msgstr "Standaardvaluta die gebruikt wordt voor deze leverancier" msgid "Company Name" msgstr "Bedrijfsnaam" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "Op voorraad" @@ -4543,7 +4547,7 @@ msgstr "Prijsverschillen" #: company/serializers.py:467 msgid "Pretty Name" -msgstr "" +msgstr "Weergavenaam" #: data_exporter/mixins.py:328 data_exporter/mixins.py:417 msgid "Error occurred during data export" @@ -4722,7 +4726,7 @@ msgstr "Oorspronkelijke rij gegevens" msgid "Errors" msgstr "Fouten" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Geldig" @@ -4838,7 +4842,7 @@ msgstr "Aantal afdrukken voor elk label" msgid "Connected" msgstr "Verbonden" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Onbekend" @@ -4942,7 +4946,7 @@ msgstr "Sleutel van de eigenschap" msgid "Value of the property" msgstr "Waarde van de eigenschap" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Groep" @@ -4966,118 +4970,118 @@ msgstr "Maximale voortgang" msgid "Maximum value for progress type, required if type=progress" msgstr "Maximale waarde voor voortgangsttype, vereist als type=progress" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Order Referentie" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "Uitmuntend" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "Heeft een projectcode" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Aangemaakt Door" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "Gemaakt vóór" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "Gemaakt na" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "Heeft vervaldatum" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "Vervaldatum voor" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "Vervaldatum na" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "Heeft doel datum" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "Doel datum voor" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "Doel datum na" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "Bijgewerkt voor" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "Bijgewerkt na" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "Heeft prijsstelling" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "Voltooid voor" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "Voltooid na" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "Externe Bouw Opdracht" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Bestellen" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "Bestelling voltooid" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Intern onderdeel" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "Bestelling in behandeling" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Voltooid" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "Heeft verzending" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Inkooporder" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Inkooporder" msgid "Sales Order" msgstr "Verkooporder" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "Retour bestelling" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "Adres komt niet overeen met het geselecteerde bedrijf" msgid "Order description (optional)" msgstr "Bestelling beschrijving (optioneel)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Selecteer projectcode voor deze bestelling" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Link naar externe pagina" @@ -5151,7 +5155,7 @@ msgstr "Start datum" msgid "Scheduled start date for this order" msgstr "Geplande startdatum voor deze bestelling" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Streefdatum" @@ -5184,487 +5188,487 @@ msgstr "Contactpunt voor deze volgorde" msgid "Company address for this order" msgstr "Bedrijf adres voor deze bestelling" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Orderreferentie" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Status" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Inkooporder status" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Bedrijf waar de artikelen van worden besteld" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Leveranciersreferentie" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Order referentiecode van leverancier" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "ontvangen door" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "Order voltooid op datum" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Bestemming" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "Bestemming voor ontvangen items" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "Onderdeelleverancier moet overeenkomen met de Inkooporderleverancier" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "Artikelregel komt niet overeen met inkooporder" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "Regelitem mist een gekoppeld deel" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "Hoeveelheid moet een positief getal zijn" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Klant" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Bedrijf waaraan de artikelen worden verkocht" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "Verkooporder status" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Klantreferentie " -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Klant order referentiecode" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Verzenddatum" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "verzonden door" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "Bestelling is al afgerond" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "Order is al geannuleerd" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Alleen een open bestelling kan als voltooid worden gemarkeerd" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Bestelling kan niet worden voltooid omdat er onvolledige verzendingen aanwezig zijn" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "Order kan niet worden voltooid omdat er onvolledige artikelen aanwezig zijn" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "Order kan niet worden voltooid omdat er onvolledige artikelen aanwezig zijn" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "De bestelling is vergrendeld en kan niet worden gewijzigd" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Hoeveelheid artikelen" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Artikelregel referentie" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Artikel notities" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Doeldatum voor dit regelitem (laat leeg om de doeldatum van de bestelling te gebruiken)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Regelomschrijving (optioneel)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "Additionele context voor deze regel" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Stukprijs" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "Inkooporder regel item" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "Leveranciersonderdeel moet overeenkomen met leverancier" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "Bouw bestelling moet worden gemarkeerd als extern" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "Bestellingen kunnen alleen aan assemblageonderdelen worden gekoppeld" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "De bouw van het order deel moet overeenkomen met regel onderdeel" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Leveranciersonderdeel" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Ontvangen" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Aantal ontvangen artikelen" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Inkoopprijs" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Aankoopprijs per stuk" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "Externe Build Order moet aan deze regel voldoen" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "Extra regel inkooporder" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "Verkooporder regel item" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "Alleen verkoopbare onderdelen kunnen aan een verkooporder worden toegewezen" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Verkoopprijs" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Prijs per stuk" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Verzonden" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Verzonden hoeveelheid" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "Verzending van verkooporder" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "Verzendadres moet overeenkomen met de klant" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "Verzendadres voor deze zending" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Datum van verzending" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Leveringsdatum" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Datum van levering van zending" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Gecontroleerd door" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Gebruiker die deze zending gecontroleerd heeft" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Zending" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Zendingsnummer" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Volgnummer" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Zending volginformatie" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Factuurnummer" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Referentienummer voor bijbehorende factuur" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "Verzending is al verzonden" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "Zending heeft geen toegewezen voorraadartikelen" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "Verzending moet worden gecontroleerd voordat deze kan worden voltooid" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "Verkooporder extra regel" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "Toewijzing verkooporder" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "Voorraadartikel is niet toegewezen" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kan het voorraadartikel niet toewijzen aan een regel met een ander onderdeel" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "Kan voorraad niet toewijzen aan een regel zonder onderdeel" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Toewijzingshoeveelheid kan niet hoger zijn dan de voorraadhoeveelheid" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Toewijzing hoeveelheid moet groter zijn dan nul" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "Hoeveelheid moet 1 zijn voor geserialiseerd voorraadartikel" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "Verkooporder komt niet overeen met zending" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "Verzending komt niet overeen met verkooporder" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Regel" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Verzendreferentie verkooporder" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Artikel" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Selecteer voorraadartikel om toe te wijzen" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Voer voorraadtoewijzingshoeveelheid in" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "Retour order referentie" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Bedrijf van waaruit items worden teruggestuurd" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "Retour bestelling status" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "Retourneer bestelregel item" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "Voorraad item moet worden opgegeven" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "Retour hoeveelheid overschrijdt voorraad hoeveelheid" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "Het retour aantal moet groter zijn dan nul" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "Ongeldige hoeveelheid voor geserialiseerde voorraad" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Selecteer te retourneren product van de klant" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Ontvangst datum" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "De datum waarop dit retour item is ontvangen" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Resultaat" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Resultaat van deze regel item" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Kosten geassocieerd met teruggave of reparatie voor deze regel item" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "Retourneren extra regel" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "Extra regels kopiëren" msgid "Copy extra line items from the original order" msgstr "Extra regelitems van de oorspronkelijke bestelling kopiëren" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Parameters kopiëren" @@ -5785,11 +5789,11 @@ msgstr "Items samenvoegen" msgid "Merge items with the same part, destination and target date into one line item" msgstr "Items met hetzelfde onderdeel, bestemming en doeldatum samenvoegen in één regelitem" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "SKU" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Intern Onderdeelnummer" @@ -5826,7 +5830,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Voer batch code in voor inkomende voorraad items" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Vervaldatum" @@ -6057,123 +6061,131 @@ msgstr "Achterstallige retour orders" msgid "Return order {ro} is now overdue" msgstr "Productieorder {ro} is nu achterstallig" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "Favoriet" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "Filter op categorieën met ster" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Diepte" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "Filteren op categorie diepte" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "Hoogste niveau" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "Filteren op topniveau categorieën" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "Stapelen" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "Inclusief subcategorieën in gefilterde resultaten" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "Bovenliggend" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "Filter op bovenliggende categorie" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "Subcategorieën uitsluiten in de opgegeven categorie" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "Heeft resultaten" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "Is een variant" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "Is revisie" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "Heeft revisies" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "BOM Valid" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "Cascade Categorieën" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "Indien waar, inclusief items op de onderliggende categorieën van de opgegeven categorie" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "Filter op numerieke categorie-ID of de letterlijke 'null'" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "Bouw onderdeel is actief" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "Bouw onderdeel is te volgen" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "Assemblage deel is testbaar" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "Onderdeel is actief" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "Onderdeel is trackable" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "Component onderdeel is testbaar" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "Onderdeel is nog te bouwen" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "Onderdeel is virtueel" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "Heeft beschikbare voorraad" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "Gebruik" @@ -6214,7 +6226,7 @@ msgstr "Standaard trefwoorden voor delen in deze categorie" msgid "Icon" msgstr "Pictogram" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Pictogram (optioneel)" @@ -6350,7 +6362,7 @@ msgstr "Deel sleutelwoorden om de zichtbaarheid van de zoekresultaten te verbete msgid "Part category" msgstr "Onderdeel Categorie" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "IPN" @@ -6359,7 +6371,7 @@ msgstr "IPN" msgid "Part revision or version number" msgstr "Onderdeel revisie of versienummer" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Revisie" @@ -6383,7 +6395,7 @@ msgstr "Standaard verval datum" msgid "Expiry time (in days) for stock items of this part" msgstr "Verlooptijd (in dagen) voor voorraadartikelen van dit deel" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Minimum voorraad" @@ -6391,7 +6403,7 @@ msgstr "Minimum voorraad" msgid "Minimum allowed stock level" msgstr "Minimaal toegelaten stock niveau" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6760,7 +6772,7 @@ msgstr "Sub onderdeel" msgid "Select part to be used in BOM" msgstr "Selecteer onderdeel dat moet worden gebruikt in BOM" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6912,351 +6924,351 @@ msgstr "Bovenliggende categorie" msgid "Parent part category" msgstr "Bovenliggende onderdeel categorie" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Subcategorieën" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "Resultaten" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "Aantal resultaten opgenomen ten opzichte van deze template" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Inkooporder voor dit voorraadartikel" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "Bestand is geen afbeelding" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Oorspronkelijk onderdeel" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Selecteer origineel onderdeel om te dupliceren" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Afbeelding kopiëren" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Afbeelding kopiëren van het oorspronkelijke onderdeel" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Copy BOM" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Kopieer materiaal van het oorspronkelijke deel" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Parameter data kopiëren van het originele onderdeel" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Notities kopiëren" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "Kopieer notities van het originele deel" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "Tests kopiëren" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "Test sjablonen kopiëren van het originele deel" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Eerste voorraad hoeveelheid" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Specificeer de initiële voorraad hoeveelheid voor dit onderdeel. Als het aantal nul is, wordt er geen voorraad toegevoegd." -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "Eerste voorraad locatie" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "Specificeer locatie van de eerste voorraad voor dit onderdeel" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Selecteer leverancier (of laat leeg om niets in te vullen)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Selecteer fabrikant (of laat leeg om niets in te vullen)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Fabrikant artikel nummer" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "Geselecteerde onderneming is geen geldige leverancier" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "Geselecteerde bedrijf is geen geldige fabrikant" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "Fabrikant deel dat overeenkomt met deze MPN bestaat al" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "Leveranciersdeel dat overeenkomt met deze SKU bestaat al" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Categorie naam" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "Bouwen" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "Hoeveelheid van dit deel dat momenteel in productie is" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "Er zal een onuitputtelijke hoeveelheid van dit deel worden gebouwd" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Voorraadartikelen" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "Revisies" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Totale Voorraad" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "Niet toegewezen voorraad" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "Variant voorraad" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Dupliceer onderdeel" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "Kopieer eerste gegevens uit een ander onderdeel" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Eerste voorraad" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Maak onderdeel met eerste voorraad" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Leveranciersgegevens" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Aanvankelijke leveranciersinformatie voor dit deel toevoegen" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Categorie parameters kopiëren" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "Parameter sjablonen kopiëren uit geselecteerde onderdeel categorie" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Bestaande afbeelding" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "Bestandsnaam van een bestaande onderdeel afbeelding" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "Afbeeldingsbestand bestaat niet" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Valideer de gehele materiaalbon" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Kan bouwen" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "Vereist voor bouworders" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "Toegewezen aan bouwen van orders" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "Vereist voor verkooporders" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "Toegewezen aan verkooporders" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "IPN onderdeel" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "Onderdeel omschrijving" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "Rapport Maken" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Minimale prijs" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Overschrijf berekende waarde voor minimale prijs" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Minimale prijs valuta" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Maximale prijs" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "Overschrijf de berekende waarde voor de maximale prijs" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Maximale prijs valuta" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Bijwerken" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "Prijzen voor dit onderdeel bijwerken" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Kan niet converteren van de verstrekte valuta naar {default_currency}" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "Minimumprijs mag niet hoger zijn dan de maximale prijs" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "Maximale prijs mag niet lager zijn dan de minimale prijs" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "Selecteer de bovenliggende assemblage" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "Selecteer het onderdeel" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "Selecteer onderdeel om BOM van te kopiëren" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Bestaande gegevens verwijderen" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Verwijder bestaande BOM items voor het kopiëren" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Inclusief overgenomen" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Inclusief stuklijst BOM items die worden overgenomen van getemplated onderdelen" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Ongeldige regels overslaan" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Schakel deze optie in om ongeldige rijen over te slaan" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Verwijder vervangend deel" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "Kopieer vervangende onderdelen bij dubbele stuklijst BOM items" @@ -7327,91 +7339,91 @@ msgstr "Geen actie gespecificeerd" msgid "No matching action found" msgstr "Geen overeenkomende actie gevonden" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "Geen overeenkomst gevonden voor streepjescodegegevens" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Overeenkomst gevonden voor streepjescodegegevens" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "Model wordt niet ondersteund" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "Model instantie niet gevonden" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "Barcode komt overeen met bestaand item" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "Geen overeenkomende actie gevonden" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "Geen overeenkomende leveranciers onderdelen gevonden" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "Meerdere overeenkomende leveranciers onderdelen gevonden" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "Geen overeenkomende plug-in gevonden voor barcode gegevens" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "Overeenkomende leverancier onderdeel" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "Regel item is al ontvangen" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "Er komt geen plug-in overeen met de barcode van de leverancier" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "Meerdere overeenkomende regelitems gevonden" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "Geen overeenkomend voorraaditem gevonden" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "Geen verkooporder opgegeven" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "Streepjescode komt niet overeen met een bestaand voorraadartikel" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "Voorraad item komt niet overeen met regelitem" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "Onvoldoende voorraad beschikbaar" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "Voorraad item toegewezen aan verkooporder" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "Te weinig informatie" @@ -7993,7 +8005,7 @@ msgstr "Rand" msgid "Print a border around each label" msgstr "Print een rand rond elk label" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "Liggend" @@ -8482,136 +8494,136 @@ msgstr "Juridisch" msgid "Letter" msgstr "Brief" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "Sjabloonbestand met deze naam bestaat al" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Template naam" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "Template beschrijving" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "Revisie nummer (auto verhogen)" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "Bevestig aan het model bij afdrukken" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "Sla rapport output op als bijlage ten opzichte van gekoppelde model instantie bij afdrukken" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Bestandsnaam Patroon" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "Patroon voor het genereren van bestandsnamen" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "Template is ingeschakeld" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "Doel type model voor sjabloon" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Filters" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "Sjabloon zoekfilters (door komma's gescheiden lijst van sleutel=waarde paren)" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "Sjabloon bestand" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "Standaard paginagrootte voor PDF rapport" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "Rapportage weergeven in liggende stand" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "Samenvoegen" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "Geef een enkel rapport tegen geselecteerde items" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "Rapport gegenereerd door template {self.name}" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "Sjabloon syntaxis fout" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "Fout bij het renderen rapport" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "Fout bij genereren rapport" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "Fout bij samenvoegen rapport uitvoer" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Breedte [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Label breedte, gespecificeerd in mm" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Hoogte [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Label hoogte, gespecificeerd in mm" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "Fout afdrukken van labels" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Tekstfragment" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Rapporteer snippet bestand" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Snippet bestandsbeschrijving" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Asset" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Rapporteer asset bestand" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Beschrijving asset bestand" @@ -8767,200 +8779,200 @@ msgstr "Geen resultaat" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "Afbeelding bestand niet gevonden" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "part_image tag vereist een onderdeel instantie" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "bedrijf_imagetag vereist een bedrijfsinstantie" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "Filter op locatie diepte" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "Filter op topniveau locaties" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "Inclusief sublocaties in gefilterde resultaten" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "Bovenliggende locatie" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "Filter op bovenliggende locatie" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "Naam van onderdeel (hoofdletter ongevoelig)" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "Naam van onderdeel bevat (hoofdletter ongevoelig)" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "Naam onderdeel (regex)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "Deel IPN (hoofdletter ongevoelig)" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "Onderdeel IPN bevat (hoofdletter ongevoelig)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "Deel IPN (regex)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "Minimale voorraad" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "Maximale voorraad" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Status code" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Externe locatie" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "Verbruikt door productieorder" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "Geïnstalleerd in een ander voorraadartikel" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "Boomstructuur onderdeel" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "Eerder bijgewerkt" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "Bijgewerkt na" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "Voorraadcontrole voor" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "Voorraadcontrole na" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "Vervaldatum voor" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "Vervaldatum na" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "Verouderd" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "Voorraad PK om dit item en al zijn afstammelingen uit te sluiten" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "Cascade locaties" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "Indien waar, inclusief items op de onderliggende locaties van de opgegeven locatie" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "Filter op numerieke locatie ID of de letterlijke 'null'" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "Hoeveelheid is vereist" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "Geldig onderdeel moet worden opgegeven" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "Het opgegeven leveranciers onderdeel bestaat niet" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Het leveranciersdeel heeft een pakketgrootte gedefinieerd, maar vlag use_pack_size niet ingesteld" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Serienummers kunnen niet worden meegeleverd voor een niet traceerbaar onderdeel" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "Inclusief geïnstalleerde" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "Als correct, geef testresultaten voor items die onder het opgegeven voorraadartikel zijn geïnstalleerd" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "Filter op numerieke voorraadartikel ID" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "Voorraadartikel met ID {id} bestaat niet" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "Inclusief Onderdeel varianten" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "Datum na" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "Datum voor" @@ -8996,7 +9008,7 @@ msgstr "Selecteer eigenaar" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Voorraaditems kunnen niet direct worden geplaatst op een structurele voorraadlocatie, maar kunnen zich op onderliggende locaties bevinden." -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Extern" @@ -9102,7 +9114,7 @@ msgstr "Selecteer een leveranciersdeel voor dit voorraadartikel" msgid "Where is this stock item located?" msgstr "Waar bevindt zich dit voorraaditem?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "Het verpakken van dit voorraaditem is opgeslagen in" @@ -9118,7 +9130,7 @@ msgstr "Is dit item geïnstalleerd in een ander item?" msgid "Serial number for this item" msgstr "Serienummer van dit item" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Batch code voor dit voorraaditem" @@ -9235,7 +9247,7 @@ msgstr "Voorraad item is momenteel in productie" msgid "Serialized stock cannot be merged" msgstr "Geserialiseerde voorraad kan niet worden samengevoegd" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Dupliceer voorraadartikelen" @@ -9399,7 +9411,7 @@ msgstr "Voer serienummers voor nieuwe items in" msgid "Supplier Part Number" msgstr "Leverancier artikelnummer" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Verlopen" @@ -9429,8 +9441,8 @@ msgstr "Geen voorraad item opgegeven" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Hoeveelheid mag niet hoger zijn dan de beschikbare voorraad ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Locatie van bestemming" @@ -9502,127 +9514,127 @@ msgstr "Selecteer voorraadartikelen om status te wijzigen" msgid "No stock items selected" msgstr "Geen voorraaditems geselecteerd" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Sublocaties" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "Bovenliggende voorraad locatie" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "Onderdeel moet verkoopbaar zijn" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "Artikel is toegewezen aan een verkooporder" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "Artikel is toegewezen aan een productieorder" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Klant om voorraadartikelen toe te wijzen" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "Geselecteerde bedrijf is geen klant" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Voorraad toewijzing notities" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "Een lijst met voorraad artikelen moet worden opgegeven" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Voorraad samenvoegen notities" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Niet overeen komende leveranciers toestaan" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Toestaan dat voorraadartikelen met verschillende leveranciers onderdelen worden samengevoegd" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Sta onjuiste status toe" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Toestaan dat voorraadartikelen met verschillende statuscodes worden samengevoegd" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "Er moeten ten minste twee voorraadartikelen worden opgegeven" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "Geen wijziging" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Voorraaditem primaire sleutel waarde" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "Voorraad artikel is niet op voorraad" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "Voorraad artikel is al in voorraad" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "Hoeveelheid mag niet negatief zijn" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Voorraad transactie notities" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "Samenvoegen in bestaande voorraad" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "Voeg indien mogelijk geretourneerde items samen in bestaande voorraad" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "Volgend serienummer" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "Vorig serienummer" @@ -9920,7 +9932,7 @@ msgstr "Machtigingen" msgid "Important dates" msgstr "Belangrijke data" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "Token is ingetrokken" @@ -9928,163 +9940,163 @@ msgstr "Token is ingetrokken" msgid "Token has expired" msgstr "Token is verlopen" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "API Token" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "API tokens" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Token naam" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Aangepaste token naam" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Token vervaldatum" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Laatst gezien" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "Laatste keer dat het token werd gebruikt" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Intrekken" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Toestemming set" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Weergeven" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Machtiging om items te bekijken" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Toevoegen" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Machtiging om items toe te voegen" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Wijzigen" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Machtigingen om items te bewerken" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Verwijderen" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Toestemming om items te verwijderen" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "Bot" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "Intern" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "Gast" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "Taal" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "Voorkeurstaal voor gebruiker" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "Thema" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "Instellingen voor webinterface als JSON - niet handmatig bewerken!" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "Widget" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "Instellingen voor de dashboard widgets als JSON - wijzig niet handmatig!" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "Naam weergeven" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "Gekozen weergavenaam voor de gebruiker" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "Functie" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "Titel of positie hoofdtaken" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "Gebruiker status bericht" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "Informatie over locatie gebruiker" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "Gebruiker gebruikt actief het systeem" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "Voorkeursinformatie voor de gebruiker" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "Gebruikers type" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "Welk type gebruiker is dit?" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "Organisatie" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "Gebruikers primaire organisatie/affiliatie" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "Primaire groep" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "Primaire groep van de gebruiker" diff --git a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po index eabfad5c9c..438a19ca1c 100644 --- a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API-endepunkt ikke funnet" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Brukeren har ikke rettigheter til å se denne modellen" @@ -65,11 +65,11 @@ msgstr "Bekreft e-postaddresse" msgid "You must type the same email each time." msgstr "Du må angi samme e-post hver gang." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Den oppgitte primære e-postadressen er ikke gyldig." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Det oppgitte e-postdomenet er ikke godkjent." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Kunne ikke konvertere {original} til {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Ugyldig mengde oppgitt" @@ -105,22 +105,22 @@ msgstr "Oppgi dato" msgid "Invalid decimal value" msgstr "" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Notater" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Verdi '{name}' vises ikke i mønsterformat" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Angitt verdi samsvarer ikke med påkrevd mønster: " @@ -164,51 +164,51 @@ msgstr "Fjern HTML-tagger fra denne verdien" msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Tilkoblingsfeil" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Serveren svarte med ugyldig statuskode" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Det har oppstått et unntak" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Serveren svarte med ugyldig \"Content-Length\"-verdi" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Bildestørrelsen er for stor" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Bildenedlasting overskred maksimal størrelse" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Ekstern server returnerte tomt svar" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "Angitt URL er ikke en gyldig bildefil" @@ -220,117 +220,121 @@ msgstr "" msgid "Email" msgstr "E-post" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Feil under validering av utvidelse" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metadata må være et python dict-objekt" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Utvidelse-metadata" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "JSON-metadatafelt, for bruk av eksterne utvidelser" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Uriktig formatert mønster" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Ukjent formatnøkkel spesifisert" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Mangler nødvendig formatnøkkel" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Referansefeltet kan ikke være tomt" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Referansen må samsvare påkrevd mønster" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Referansenummeret er for stort" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Ugyldig valg" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Navn" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Beskrivelse" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Beskrivelse (valgfritt)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Sti" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplikatnavn kan ikke eksistere under samme overordnede" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Markdown-notater (valgfritt)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Strekkodedata" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Tredjeparts strekkodedata" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Strekkode-hash" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Unik hash av strekkodedata" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Eksisterende strekkode funnet" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Serverfeil" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "En feil har blitt logget av serveren." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Må være et gyldig tall" msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Velg valuta ut fra tilgjengelige alternativer" @@ -521,11 +525,11 @@ msgstr "Kinesisk (forenklet)" msgid "Chinese (Traditional)" msgstr "Kinesisk (tradisjonell)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "Ugyldig fysisk enhet" msgid "Not a valid currency code" msgstr "Ikke en gyldig valutakode" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Ordrestatus" @@ -546,23 +550,23 @@ msgstr "Ordrestatus" msgid "Parent Build" msgstr "Overordnet produksjon" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "Del" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Kategori" @@ -593,7 +597,7 @@ msgstr "Kategori" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "" @@ -601,11 +605,11 @@ msgstr "" msgid "Assigned To" msgstr "" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Produksjonen må avbrytes før den kan slettes" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Forbruksvare" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Valgfritt" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Sammenstilling" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Spores" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Tildelt" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Tilgjengelig" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "I bestilling" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Produksjonsordre" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Plassering" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Produksjonsordre-referanse" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Salgsordrereferanse" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Kildeplassering" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Fullført plassering" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Produksjonsstatuskode" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Batchkode" @@ -883,8 +887,8 @@ msgstr "Forventet sluttdato" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Måldato for ferdigstillelse. Produksjonen vil være forfalt etter denne datoen." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Fullført dato" @@ -900,7 +904,7 @@ msgstr "Utstedt av" msgid "User who issued this build order" msgstr "Brukeren som utstedte denne produksjonsordren" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Produksjonsordrens prioritet" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Prosjektkode" @@ -962,9 +966,9 @@ msgstr "Produksjonsartikkelen samsvarer ikke med produksjonsordren" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "Mengden må være større enn null" @@ -999,7 +1003,7 @@ msgstr "Produksjonsobjekt" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Mengden må være 1 for serialisert lagervare" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Tildelt antall ({q}) kan ikke overstige tilgjengelig lagerbeholdning ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Lagervaren er overtildelt" @@ -1057,8 +1061,8 @@ msgstr "Lagervaren er overtildelt" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Lagervare" @@ -1082,7 +1086,7 @@ msgstr "Lagervare for montering" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Delnavn" @@ -1139,7 +1143,7 @@ msgstr "Automatisk tildeling av serienummer" msgid "Automatically allocate required items with matching serial numbers" msgstr "Automatisk tildeling av nødvendige artikler med tilsvarende serienummer" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Følgende serienummer finnes allerede eller er ugyldige" @@ -1272,7 +1276,7 @@ msgstr "Produksjonsartikkel" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part må peke på den samme delen som produksjonsordren" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "Artikkelen må være på lager" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Leverandørdel" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Tillat Varianter" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "BOM-artikkel" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "I produksjon" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Ekstern lagerbeholdning" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Tilgjengelig lagerbeholdning" @@ -1527,31 +1531,31 @@ msgstr "Forfalt produksjonsordre" msgid "Build order {bo} is now overdue" msgstr "Produksjonsordre {bo} er nå forfalt" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "Er lenke" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "Er fil" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "Brukeren har ikke tillatelse til å slette dette vedlegget" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "Ingen gyldige valutakoder angitt" msgid "No plugin" msgstr "Ingen programtillegg" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "Nøkkelstreng må være unik" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Bruker" @@ -1654,8 +1658,8 @@ msgstr "Bruker" msgid "Price break quantity" msgstr "Antall for prisbrudd" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Pris" @@ -1677,8 +1681,8 @@ msgstr "Navn for webhooken" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Aktiv" @@ -1686,7 +1690,7 @@ msgstr "Aktiv" msgid "Is this webhook active" msgstr "Er webhooken aktiv" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Sjetong" @@ -1756,7 +1760,7 @@ msgstr "Tittel" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "Gyldige valg for denne parameteren (kommaseparert)" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Aktivert" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Mal" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Kontekst" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Nøkkel" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} kansellert" msgid "A order that is assigned to you was canceled" msgstr "En ordre som er tildelt til deg ble kansellert" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Artikler mottatt" @@ -2524,7 +2528,7 @@ msgstr "Filnavn" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "Modelltype" @@ -2914,8 +2918,8 @@ msgstr "Deler er maler som standard" msgid "Parts can be assembled from other components by default" msgstr "Deler kan settes sammen fra andre komponenter som standard" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Komponent" @@ -2931,7 +2935,7 @@ msgstr "Kjøpbar" msgid "Parts are purchaseable by default" msgstr "Deler er kjøpbare som standard" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Salgbar" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Sidestørrelse" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "Ingen modelltype angitt for vedlegg" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "Ugyldig modelltype for vedlegg" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "Minste antall plasser kan ikke være mer enn største antall plasser" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "Største antall plasser kan ikke være mindre enn minste antall plasser" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Et tomt domene er ikke tillatt." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Ugyldig domenenavn: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "Leverandør er aktiv" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Produsent" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Firma" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Kontakt e-post" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Kontakt" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Adresse" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "Lenke til adresseinformasjon (ekstern)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Produsentdeler" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Velg produsent" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "MPN" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "Den sammenkoblede produsentdelen må referere til samme basisdel" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Leverandør" @@ -4448,7 +4452,7 @@ msgstr "Leverandør" msgid "Select supplier" msgstr "Velg leverandør" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Leverandørens lagerbeholdningsenhet" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimum betaling (f.eks. lageravgift)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Emballasje" @@ -4533,7 +4537,7 @@ msgstr "Standardvaluta brukt for denne leverandøren" msgid "Company Name" msgstr "Bedriftsnavn" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "På lager" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Gyldig" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Ukjent" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Gruppe" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Ordrereferanse" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Opprettet av" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Ordre" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Intern del" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Fullført" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Innkjøpsordre" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Innkjøpsordre" msgid "Sales Order" msgstr "Salgsordre" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "Returordre" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "Ordrebeskrivelse (valgfritt)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Velg prosjektkode for denne ordren" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Lenke til ekstern side" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Måldato" @@ -5184,487 +5188,487 @@ msgstr "Kontaktpunkt for denne ordren" msgid "Company address for this order" msgstr "Selskapsadresse for denne ordren" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Ordrereferanse" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Status" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Status for innkjøpsordre" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Firma som varene blir bestilt fra" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Leverandørreferanse" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Leverandørens ordrereferanse" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "mottatt av" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "Dato ordre ble fullført" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Destinasjon" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "Delleverandør må matche PO-leverandør" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "Linjeelementet samsvarer ikke med innkjøpsordre" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "Mengde må være positiv" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Kunde" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Firma som varene selges til" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Kundereferanse " -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Kundens ordrereferanse" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Forsendelsesdato" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "sendt av" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Kun en åpen ordre kan merkes som fullført" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Bestillingen kan ikke fullføres da det finnes ufullstendige forsendelser" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "Denne ordren kan ikke fullføres da det fortsatt er ufullstendige artikler" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Antall" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Linjereferanse" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Linjenotater" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Måldato for denne linjen (la stå tomt for å bruke måldatoen fra ordren)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Linjeelementbeskrivelse (valgfritt)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "Ytterligere kontekst for denne linjen" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Enhetspris" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "Delens leverandør må samsvare med leverandør" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Leverandørdel" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Mottatt" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Antall enheter mottatt" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Innkjøpspris" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Enhet-innkjøpspris" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "Kun salgbare deler kan tildeles en salgsordre" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Salgspris" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Enhets-salgspris" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Sendt" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Sendt antall" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Dato for forsendelse" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Leveringsdato" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Dato for levering av forsendelse" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Sjekket Av" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Brukeren som sjekket forsendelsen" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Forsendelse" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Forsendelsesnummer" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Sporingsnummer" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Sporingsinformasjon for forsendelse" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Fakturanummer" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Referansenummer for tilknyttet faktura" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "Forsendelsen er allerede sendt" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "Forsendelsen har ingen tildelte lagervarer" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "Lagervarer er ikke blitt tildelt" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kan ikke tildele lagervare til en linje med annen del" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "Kan ikke tildele lagerbeholdning til en linje uten en del" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Tildelingsantall kan ikke overstige tilgjengelig lagerbeholdning" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Tildelingsantall må være større enn null" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "Antall må være 1 for serialisert lagervare" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "Salgsordre samsvarer ikke med forsendelse" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "Forsendelsen samsvarer ikke med salgsordre" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Linje" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Forsendelsesreferanse for salgsordre" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Artikkel" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Velg lagervare å tildele" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Angi lagertildelingsmengde" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "Returordre-referanse" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Firmaet delen skal returneres fra" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "Returordrestatus" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Velg artikkel som skal returneres fra kunde" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Mottatt Dato" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Utfall" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Utfall for dette linjeelementet" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Kostnad forbundet med retur eller reparasjon for dette linjeelementet" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Kopier parametere" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "SKU-kode" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Internt delnummer" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Angi batchkode for innkommende lagervarer" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Utløpsdato" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "Standard nøkkelord for deler i denne kategorien" msgid "Icon" msgstr "Ikon" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Ikon (valgfritt)" @@ -6349,7 +6361,7 @@ msgstr "Del-nøkkelord for å øke synligheten i søkeresultater" msgid "Part category" msgstr "Delkategori" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "Delrevisjon eller versjonsnummer" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Revisjon" @@ -6382,7 +6394,7 @@ msgstr "Standard utløp" msgid "Expiry time (in days) for stock items of this part" msgstr "Utløpstid (i dager) for lagervarer av denne delen" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Minimal lagerbeholdning" @@ -6390,7 +6402,7 @@ msgstr "Minimal lagerbeholdning" msgid "Minimum allowed stock level" msgstr "Minimum tillatt lagernivå" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "Underordnet del" msgid "Select part to be used in BOM" msgstr "Velg del som skal brukes i BOM" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Underkategorier" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Innkjøpsvaluta for lagervaren" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Original Del" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Velg original del å duplisere" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Kopier Bilde" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Kopier bilde fra originaldel" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Kopier Stykkliste" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Kopier stykkliste fra original del" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Kopier parameterdata fra originaldel" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Kopier notater" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "Kopier notater fra originaldel" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Innledende lagerbeholdning" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Angi initiell lagermengde for denne delen. Hvis antall er null, er ingen lagerbeholdning lagt til." -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "Innledende lagerplassering" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "Angi initiell lagerplasering for denne delen" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Velg leverandør (eller la stå tom for å hoppe over)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Velg produsent (eller la stå tom for å hoppe over)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Produsentens delenummer" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "Valgt firma er ikke en gyldig leverandør" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "Valgt firma er ikke en gyldig produsent" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "Produsentdel som matcher dette MPN-et, finnes allerede" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "Leverandørdel som matcher denne SKU-en, finnes allerede" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Kategorinavn" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "Produseres" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Lagervarer" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Total lagerbeholdning" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Dupliser del" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "Kopier innledende data fra en annen del" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Innledende lagerbeholdning" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Lag en del med innledende lagermengde" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Leverandøropplysninger" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Legg til innledende leverandørinformasjon for denne delen" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Kopier kategoriparametre" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "Kopier parametermaler fra valgt delkategori" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Eksisterende bilde" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "Filnavn for et eksisterende del-bilde" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "Bildefilen finnes ikke" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Godkjenn hele Stykklisten" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Kan Produsere" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Minstepris" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Overstyr beregnet verdi for minimumspris" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Valuta for minstepris" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Makspris" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "Overstyr beregnet verdi for maksimal pris" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Valuta for maksimal pris" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Oppdater" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "Oppdater priser for denne delen" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Kan ikke konvertere fra gitte valutaer til {default_currency}" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "Minsteprisen kan ikke være større enn maksimal pris" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "Maksimal pris kan ikke være mindre enn minstepris" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "Velg del å kopiere BOM fra" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Fjern eksisterende data" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Fjern eksisterende BOM-artikler før kopiering" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Inkluder arvede" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Inkluder BOM-artikler som er arvet fra maldeler" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Hopp over ugyldige rader" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Aktiver dette alternativet for å hoppe over ugyldige rader" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Kopier erstatningsdeler" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "Kopier erstatningsdeler når BOM-elementer dupliseres" @@ -7326,91 +7338,91 @@ msgstr "Ingen handling spesifisert" msgid "No matching action found" msgstr "Ingen samsvarende handling funnet" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "Ingen treff funnet for strekkodedata" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Treff funnet for strekkodedata" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "Strekkode samsvarer med ekisterende element" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "Ingen samsvarende del-data funnet" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "Finner ingen matchende leverandørdeler" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "Flere samsvarende leverandørdeler funnet" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "Fant leverandørdel" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "Artikkelen er allerede mottatt" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "Flere samsvarende elementer funnet" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "Ingen samsvarende element funnet" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "Strekkoden samsvarer ikke med eksisterende lagervare" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "Lagervare samsvarer ikke med linjeelement" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "Utilstrekkelig lagerbeholdning" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "Lagervaren er tildelt en salgsordre" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "Ikke nok informasjon" @@ -7992,7 +8004,7 @@ msgstr "Kantlinjer" msgid "Print a border around each label" msgstr "Skriv ut en kant rundt hver etikett" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "Liggende" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Malnavn" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Filnavnmønster" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Filtre" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "Sidestørrelse for PDF-rapporter" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "Generer rapport i landskapsorientering" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Bredde [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Etikettbredde, spesifisert i mm" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Høyde [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Etiketthøyde, spesifisert i mm" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Snutt" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Rapportsnuttfil" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Filbeskrivelse for snutt" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Ressurs" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Rapportressursfil" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Ressursfilbeskrivelse" @@ -8766,200 +8778,200 @@ msgstr "Ingen resultat" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "Bildefil ikke funnet" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "part_image-taggen krever en Part-instans" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "company_image-taggen krever en Company-instans" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Statuskode" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Ekstern plassering" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "Del-tre" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "Utløpsdato før" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "Utløpsdato etter" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "Foreldet" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "Antall kreves" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "Gyldig del må oppgis" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "Oppgitt leverandørdel eksisterer ikke" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Leverandørdelen har en pakkestørrelse definert, men flagget \"use_pack_size\" er ikke satt" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Serienumre kan ikke angis for en ikke-sporbar del" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "Velg eier" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Lagervarer kan ikke knyttes direkte mot en strukturell lagerplassering, men kan knyttes mot underplasseringer." -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Ekstern" @@ -9101,7 +9113,7 @@ msgstr "Velg en tilsvarende leverandørdel for denne lagervaren" msgid "Where is this stock item located?" msgstr "Hvor er denne lagervaren plassert?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "Inpakningen denne lagervaren er lagret i" @@ -9117,7 +9129,7 @@ msgstr "Er denne artikkelen montert i en annen artikkel?" msgid "Serial number for this item" msgstr "Serienummer for denne artikkelen" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Batchkode for denne lagervaren" @@ -9234,7 +9246,7 @@ msgstr "Lagervare er for tiden i produksjon" msgid "Serialized stock cannot be merged" msgstr "Serialisert lagerbeholdning kan ikke slås sammen" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Duplisert lagervare" @@ -9398,7 +9410,7 @@ msgstr "Angi serienummer for nye artikler" msgid "Supplier Part Number" msgstr "Leverandørens delnummer" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Utløpt" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Antall kan ikke overstige tilgjengelig lagerbeholdning ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Til Lagerplassering" @@ -9501,127 +9513,127 @@ msgstr "Velg lagervarer for å endre status" msgid "No stock items selected" msgstr "Ingen lagervarer valgt" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Underplasseringer" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "Delen må være salgbar" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "Artikkelen er tildelt en salgsordre" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "Artikkelen er tildelt en produksjonsordre" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Kunde å tilordne lagervarer" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "Valgt firma er ikke en kunde" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Lagervare-tildelignsnotater" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "En liste av lagervarer må oppgis" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Notater om lagersammenslåing" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Tillat forskjellige leverandører" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Tillat lagervarer med forskjellige leverandørdeler å slås sammen" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Tillat forskjellig status" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Tillat lagervarer med forskjellige statuskoder å slås sammen" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "Minst to lagervarer må oppgis" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Lagervare primærnøkkel verdi" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Lager transaksjonsnotater" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "Tillatelser" msgid "Important dates" msgstr "Viktige datoer" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "Token er tilbakekalt" @@ -9927,163 +9939,163 @@ msgstr "Token er tilbakekalt" msgid "Token has expired" msgstr "Token har utløpt" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "API-Token" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "API-Tokener" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Tokennavn" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Egendefinert tokennavn" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Token utløpsdato" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Sist sett" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "Sist gang tokenet ble brukt" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Tilbakekalt" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Tillatelse satt" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Visning" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Tillatelse til å se elementer" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Legg til" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Tillatelse til å legge til elementer" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Endre" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Tillatelse til å endre elementer" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Slett" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Tillatelse til å slette elementer" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po index e768feb4ce..0b530ebf61 100644 --- a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "Nie znaleziono punktu końcowego API" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Elementy muszą być podane jako lista" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Podano nieprawidłową listę artykułów" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "Wszystkie filtry muszą być używane tylko z true" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "Żaden element nie spełnia podanych kryteriów" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "Nie dostarczono danych" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Użytkownik nie ma uprawnień do przeglądania tego modelu" @@ -65,11 +65,11 @@ msgstr "Potwierdzenie adresu email" msgid "You must type the same email each time." msgstr "Należy ponownie wpisać ten sam adres e-mail." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Podany podstawowy adres e-mail jest nieprawidłowy." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Podany e-mail domeny nie został zatwierdzony." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Nie udało się przeliczyć {original} na {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Podano nieprawidłową ilość" @@ -105,22 +105,22 @@ msgstr "Wprowadź dane" msgid "Invalid decimal value" msgstr "Niepoprawna wartość dziesiętna" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Uwagi" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Wartość '{name}' nie pojawia się w formacie wzoru" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Podana wartość nie pasuje do wymaganego wzoru: " @@ -164,51 +164,51 @@ msgstr "Usuń znaczniki HTML z tej wartości" msgid "Data contains prohibited markdown content" msgstr "Dane zawierają zabronione treści znacznika" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Błąd połączenia" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Serwer odpowiedział z nieprawidłowym kodem statusu" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Wystąpił wyjątek" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Serwer odpowiedział z nieprawidłową wartością Content-Length" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Rozmiar obrazu jest zbyt duży" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Przekroczono maksymalny rozmiar pobieranego obrazu" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Zdalny serwer zwrócił pustą odpowiedź" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "Podany adres URL nie jest poprawnym plikiem obrazu" @@ -220,117 +220,121 @@ msgstr "Logowanie do aplikacji" msgid "Email" msgstr "Adres E-Mail" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Musisz włączyć uwierzytelnianie dwuskładnikowe przed wykonaniem czegokolwiek innego." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Błąd podczas walidacji wtyczki" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metadane muszą być obiektem typu dict w Python" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Wtyczka Metadane" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "Pole metadanych JSON, do użycia przez wtyczki zewnętrzne" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Nieprawidłowo sformatowany wzór" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Określono nieznany format klucza" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Brak wymaganego formatu klucza" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Pole odniesienia nie może być puste" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Odniesienie musi być zgodne z wymaganym wzorem" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Numer odniesienia jest zbyt duży" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Błędny wybór" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Nazwa" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Opis (opcjonalny)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Ścieżka" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplikaty nazw nie mogą istnieć pod tym samym rodzicem" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Notatki Markdown (opcjonalne)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Dane kodu kreskowego" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Dane kodu kreskowego stron trzecich" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Hasz kodu kreskowego" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Unikalny hasz danych kodu kreskowego" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Znaleziono istniejący kod kreskowy" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Błąd serwera" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Błąd został zapisany w logach serwera." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Numer musi być prawidłowy" msgid "Currency" msgstr "Waluta" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Wybierz walutę z dostępnych opcji" @@ -521,11 +525,11 @@ msgstr "chiński (uproszczony)" msgid "Chinese (Traditional)" msgstr "chiński (tradycyjny)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "Dostępna aktualizacja" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "Dostępna jest aktualizacja dla InvenTree" @@ -537,7 +541,7 @@ msgstr "Niewłaściwa jednostka fizyczna" msgid "Not a valid currency code" msgstr "Nieprawidłowy kod waluty" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Status zamówienia" @@ -546,23 +550,23 @@ msgstr "Status zamówienia" msgid "Parent Build" msgstr "Budowa nadrzędna" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "Obejmuje warianty" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "Obejmuje warianty" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "Obejmuje warianty" msgid "Part" msgstr "Komponent" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Kategoria" @@ -593,7 +597,7 @@ msgstr "Kategoria" msgid "Ancestor Build" msgstr "Budowa poprzednika" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Przypisane do mnie" @@ -601,11 +605,11 @@ msgstr "Przypisane do mnie" msgid "Assigned To" msgstr "" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Stworzony przed" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Stworzony po" @@ -641,99 +645,99 @@ msgstr "Zakończone przed" msgid "Completed after" msgstr "Zakończone po" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "Minimalna data" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "Maksymalna data" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "Wyklucz drzewo" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Kompilacja musi zostać anulowana, zanim będzie mogła zostać usunięta" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Materiał eksploatacyjny" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Opcjonalne" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Złożenie" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Śledzony" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Testowalne" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Zaległe zamówienie" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Przydzielono" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Dostępne" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "W Zamówieniu" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Zlecenie Budowy" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Lokalizacja" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "Wyjście" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "Data docelowa musi być po dacie rozpoczęcia" msgid "Build Order Reference" msgstr "Odwołanie do zamówienia wykonania" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Odwołanie do zamówienia sprzedaży" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Lokalizacja źródła" @@ -821,7 +825,7 @@ msgstr "Budowa zewnętrzna" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Lokalizacja docelowa" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Kod statusu budowania" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Kod partii" @@ -883,8 +887,8 @@ msgstr "Docelowy termin zakończenia" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Docelowa data zakończenia kompilacji. Po tej dacie kompilacja będzie zaległa." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Data zakończenia" @@ -900,7 +904,7 @@ msgstr "Wydany przez" msgid "User who issued this build order" msgstr "Użytkownik, który wydał to zamówienie" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Priorytet tego zamówienia produkcji" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Kod projektu" @@ -962,9 +966,9 @@ msgstr "Skompilowane dane wyjściowe nie pasują do kolejności kompilacji" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "Ilość musi być większa niż zero" @@ -999,7 +1003,7 @@ msgstr "Zbuduj obiekt" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Ilość musi wynosić 1 dla serializowanych zasobów" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Przydzielona ilość ({q}) nie może przekraczać dostępnej ilości zapasów magazynowych ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Pozycja magazynowa jest nadmiernie przydzielona" @@ -1057,8 +1061,8 @@ msgstr "Pozycja magazynowa jest nadmiernie przydzielona" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Element magazynowy" @@ -1082,7 +1086,7 @@ msgstr "Docelowa lokalizacja magazynowa przedmiotu" msgid "Build Level" msgstr "Poziom budowania" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Nazwa komponentu" @@ -1139,7 +1143,7 @@ msgstr "Automatycznie przydzielaj numery seryjne" msgid "Automatically allocate required items with matching serial numbers" msgstr "Automatycznie przydzielaj wymagane elementy z pasującymi numerami seryjnymi" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Poniższe numery seryjne już istnieją lub są nieprawidłowe" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "Towar musi znajdować się w magazynie" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "Wersja" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Część dostawcy" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Zezwalaj na warianty" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "Element BOM" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "W produkcji" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Zew. zasoby magazynowe" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Dostępna ilość" @@ -1527,31 +1531,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "Jest plikiem" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "Lista wyboru jest zablokowana" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "Brak wtyczki" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "Ciąg musi być unikatowy" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Użytkownik" @@ -1654,8 +1658,8 @@ msgstr "Użytkownik" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Cena" @@ -1677,8 +1681,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Aktywny" @@ -1686,7 +1690,7 @@ msgstr "Aktywny" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Token" @@ -1756,7 +1760,7 @@ msgstr "Tytuł" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Aktywne" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Szablon" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Klucz" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} anulowany" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2524,7 +2528,7 @@ msgstr "Nazwa pliku" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "Typ modelu" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Komponent" @@ -2931,7 +2935,7 @@ msgstr "Możliwość zakupu" msgid "Parts are purchaseable by default" msgstr "Części są domyślnie z możliwością zakupu" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Możliwość sprzedaży" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Rozmiar strony" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Pusta domena nie jest dozwolona." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Niepoprawna nazwa domeny: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Producent" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Firma" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Kontaktowy adres e-mail" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Kontakt" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Adres" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Komponent producenta" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Wybierz producenta" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Dostawca" @@ -4448,7 +4452,7 @@ msgstr "Dostawca" msgid "Select supplier" msgstr "Wybierz dostawcę" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Opakowanie" @@ -4533,7 +4537,7 @@ msgstr "Domyślna waluta używana dla tego dostawcy" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "Na stanie" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Ważny" @@ -4838,7 +4842,7 @@ msgstr "Liczba kopii do wydrukowania dla każdej etykiety" msgid "Connected" msgstr "Połączono" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Nieznany" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Grupa" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Numer zamówienia" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Utworzony przez" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "Posiada ceny" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Zamówienie" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Komponent wewnętrzny" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "Zamówienie oczekujące" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Zakończone" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Zlecenie zakupu" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Zlecenie zakupu" msgid "Sales Order" msgstr "Zamówienie zakupu" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Link do zewnętrznej witryny" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Data docelowa" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Odniesienie zamówienia" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Status" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Status zamówienia zakupu" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "odebrane przez" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Przeznaczenie" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "Pozycja nie pasuje do zlecenia zakupu" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "Wartość musi być liczbą dodatnią" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Klient" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Data wysyłki" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "wysłane przez" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Ilość elementów" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Odebrane" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Cena zakupu" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Cena zakupu jednostkowego" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Cena sprzedaży" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Jednostkowa cena sprzedaży" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Wysłane" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Wysłana ilość" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Data wysyłki" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Sprawdzone przez" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Użytkownik, który sprawdził tę wysyłkę" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Przesyłka" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Numer przesyłki" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Numer śledzenia" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Informacje o śledzeniu przesyłki" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "Przesyłka została już wysłana" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Alokowana ilość musi być większa niż zero" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Linia" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Komponent" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Kopiuj parametry" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Data ważności" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Wersja" @@ -6382,7 +6394,7 @@ msgstr "Domyślne wygasanie" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Minimalny stan magazynowy" @@ -6390,7 +6402,7 @@ msgstr "Minimalny stan magazynowy" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "Podczęść" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Podkategorie" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Waluta zakupu tego towaru" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Kopiuj obraz" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Kopiuj BOM" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Towary" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Duplikuj część" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Usuń istniejące dane" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Pomiń nieprawidłowe wiersze" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Włącz tę opcję, aby pominąć nieprawidłowe wiersze" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "Nie określono działania" msgid "No matching action found" msgstr "Nie znaleziono pasującej akcji" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "Nie znaleziono wyników dla danych kodu kreskowego" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Znaleziono wyniki dla danych kodu kreskowego" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "Kod kreskowy pasuje do istniejącego elementu" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "Kod kreskowy nie pasuje do istniejących pozycji magazynowych" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Nazwa szablonu" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Wzór nazwy pliku" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Filtry" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "Domyślna wielkość strony dla raportów PDF" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "Renderuj raport w orientacji poziomej" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Szerokość [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Wysokość [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Wycinek" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8766,200 +8778,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "Wybierz właściciela" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "Wybierz pasującą część dostawcy dla tego towaru" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Termin minął" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Podlokalizacje" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "Część musi być dostępna do sprzedaży" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "Uprawnienia" msgid "Important dates" msgstr "Ważne daty" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Uprawnienia nadane" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Widok" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Uprawnienie do wyświetlania przedmiotów" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Dodaj" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Uprawnienie do dodawania przedmiotów" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Zmień" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Uprawnienie do edycji przedmiotów" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Usuń" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Uprawnienie do usuwania przedmiotów" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po index b2a0c12242..cce1b30e52 100644 --- a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Portuguese\n" "Language: pt_PT\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API endpoint não encontrado" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Usuário não tem permissão para ver este modelo" @@ -65,11 +65,11 @@ msgstr "Confirmação do endereço de email" msgid "You must type the same email each time." msgstr "Você deve digitar o mesmo e-mail todas as vezes." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "O endereço primário de e-mail não é válido." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "O domínio de e-mail providenciado não foi aprovado." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Não foi possível converter {original} para {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Quantidade fornecida inválida" @@ -105,22 +105,22 @@ msgstr "Insira uma Data" msgid "Invalid decimal value" msgstr "" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Anotações" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Valor '{name}' não está no formato correto" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "O valor fornecido não corresponde ao padrão exigido: " @@ -164,51 +164,51 @@ msgstr "Remova as \"tags\" HTML deste valor" msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Erro de conexão" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "O servidor respondeu com código estado inválido" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Ocorreu uma exceção" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "O servidor respondeu com valor inválido do tamanho de conteúdo" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Tamanho da imagem muito grande" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "O download da imagem excedeu o tamanho máximo" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "O servidor remoto retornou resposta vazia" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "A URL fornecida não é um arquivo de imagem válido" @@ -220,117 +220,121 @@ msgstr "" msgid "Email" msgstr "Email" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Erro ao executar validação do plugin" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metadados deve ser um objeto dict python" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Metadados da Extensão" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "Campo de metadados JSON, para uso por extensões externas" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Padrão formatado incorretamente" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Chave de formato desconhecida especificada" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Chave de formato obrigatória ausente" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "O campo de referência não pode ficar vazio" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "A referência deve corresponder ao padrão exigido" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "O número de referência é muito grande" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Escolha inválida" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Nome" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Descrição" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Descrição (opcional)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Caminho" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Nomes duplicados não podem existir sob o mesmo parental" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Notas Markdown (opcional)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Dados de código de barras" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Dados de código de barras de terceiros" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Hash de código de barras" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Hash exclusivo de dados de código de barras" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Código de barras existente encontrado" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Erro de servidor" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Log de erro salvo pelo servidor." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Preicsa ser um numero valido" msgid "Currency" msgstr "Moeda" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Selecione a Moeda nas opções disponíveis" @@ -521,11 +525,11 @@ msgstr "Chinês (Simplificado)" msgid "Chinese (Traditional)" msgstr "Chinês (Tradicional)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "Unidade física inválida" msgid "Not a valid currency code" msgstr "Não é um código de moeda válido" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Situação do pedido" @@ -546,23 +550,23 @@ msgstr "Situação do pedido" msgid "Parent Build" msgstr "Produção Progenitor" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "Peça" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Categoria" @@ -593,7 +597,7 @@ msgstr "Categoria" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "" @@ -601,11 +605,11 @@ msgstr "" msgid "Assigned To" msgstr "" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Produção deve ser cancelada antes de ser deletada" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Consumível" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Opcional" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Montagem" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Monitorado" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Alocado" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Disponível" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "No pedido" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Ordem de Produção" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Local" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Referência do pedido de produção" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Referência do pedido de venda" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Local de Origem" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Local de Destino" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Código de situação da produção" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Código de Lote" @@ -883,8 +887,8 @@ msgstr "Data alvo final" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Data alvo para finalização de produção. Estará atrasado a partir deste dia." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Data de conclusão" @@ -900,7 +904,7 @@ msgstr "Emitido por" msgid "User who issued this build order" msgstr "Usuário que emitiu este pedido de produção" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Prioridade deste pedido de produção" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Código do projeto" @@ -962,9 +966,9 @@ msgstr "Saída da produção não corresponde ao Pedido de Produção" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "Quantidade deve ser maior que zero" @@ -999,7 +1003,7 @@ msgstr "Objeto de produção" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Quantidade deve ser 1 para estoque serializado" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Quantidade alocada ({q}) não deve exceder a quantidade disponível em estoque ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "O item do estoque está sobre-alocado" @@ -1057,8 +1061,8 @@ msgstr "O item do estoque está sobre-alocado" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Item de estoque" @@ -1082,7 +1086,7 @@ msgstr "Destino do Item do Estoque" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Nome da Peça" @@ -1139,7 +1143,7 @@ msgstr "Alocar Números de Série Automaticamente" msgid "Automatically allocate required items with matching serial numbers" msgstr "Alocar automaticamente os itens necessários com os números de série correspondentes" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Os seguintes números de série já existem ou são inválidos" @@ -1272,7 +1276,7 @@ msgstr "Item da linha de produção" msgid "bom_item.part must point to the same part as the build order" msgstr "bin_item.part deve indicar a mesma peça do pedido de produção" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "Item deve estar em estoque" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Fornecedor da Peça" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Permitir variações" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "Item LDM" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "Em Produção" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Estoque Disponível" @@ -1527,31 +1531,31 @@ msgstr "Pedido de produção vencido" msgid "Build order {bo} is now overdue" msgstr "Pedido de produção {bo} está atrasada" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "É uma Ligação" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "É um arquivo" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "O Utilizador não tem permissão para remover este anexo" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "Nenhum código de moeda válido foi fornecido" msgid "No plugin" msgstr "Sem extensão" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "A frase senha deve ser diferenciada" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Usuario" @@ -1654,8 +1658,8 @@ msgstr "Usuario" msgid "Price break quantity" msgstr "Quantidade de Parcelamentos" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Preço" @@ -1677,8 +1681,8 @@ msgstr "Nome para este webhook" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Ativo" @@ -1686,7 +1690,7 @@ msgstr "Ativo" msgid "Is this webhook active" msgstr "Este gancho web está ativo" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "" @@ -1756,7 +1760,7 @@ msgstr "Título" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "Opções válidas para este parâmetro (separadas por vírgulas)" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Habilitado" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Modelo" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Contexto" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Chave" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} cancelado" msgid "A order that is assigned to you was canceled" msgstr "Um pedido atribuído a você foi cancelado" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Itens Recebidos" @@ -2524,7 +2528,7 @@ msgstr "Nome do arquivo" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "Peças são modelos por padrão" msgid "Parts can be assembled from other components by default" msgstr "Peças podem ser montadas a partir de outros componentes por padrão" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Componente" @@ -2931,7 +2935,7 @@ msgstr "Comprável" msgid "Parts are purchaseable by default" msgstr "Peças são compráveis por padrão" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Vendível" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "Registro de erros que ocorrem ao gerar relatórios" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Tamanho da página" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Um domínio vazio não é permitido." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Nome de domínio inválido: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Fabricante" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Empresa" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Endereço de e-mail do contato" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Contato" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Endereço" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "Link para as informações do endereço (externo)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Peça do Fabricante" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Selecionar fabricante" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "NPF" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "Parte do fabricante vinculado deve fazer referência à mesma peça base" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Fornecedor" @@ -4448,7 +4452,7 @@ msgstr "Fornecedor" msgid "Select supplier" msgstr "Selecione o fornecedor" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Unidade de reserva de estoque fornecedor" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Taxa mínima (ex.: taxa de estoque)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Embalagem" @@ -4533,7 +4537,7 @@ msgstr "Moeda padrão utilizada para este fornecedor" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "Em Estoque" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Válido" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Desconhecido" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Grupo" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Referência do Pedido" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Criado por" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Pedido" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Peça Interna" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Concluído" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Pedido de Compra" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Pedido de Compra" msgid "Sales Order" msgstr "Pedido de Venda" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "Devolver pedido" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "Descrição do pedido (opcional)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Selecione o código do projeto para este pedido" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Link para página externa" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Data alvo" @@ -5184,487 +5188,487 @@ msgstr "Ponto de contato para este pedido" msgid "Company address for this order" msgstr "Endereço da empresa para este pedido" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Referência do pedido" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Situação" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Situação do pedido de compra" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Empresa da qual os itens estão sendo encomendados" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Referencia do fornecedor" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Código de referência do pedido fornecedor" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "recebido por" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "Dia que o pedido foi concluído" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Destino" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "Fornecedor de peça deve corresponder a fornecedor da OC" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "O item de linha não corresponde ao pedido de compra" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "Quantidade deve ser um número positivo" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Cliente" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Empresa para qual os itens foi vendidos" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Referência do Cliente " -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Código de Referência do pedido do cliente" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Data de Envio" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "enviado por" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Apenas um pedido aberto pode ser marcado como completo" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Pedido não pode ser concluído, pois, há envios incompletos" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "Pedido não pode ser concluído, pois, há itens na linha incompletos" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Quantidade do item" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Referência do Item em Linha" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Observações do Item de Linha" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Data alvo para este item de linha (deixe em branco para usar a data alvo do pedido)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Descrição item de linha (opcional)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "Contexto adicional para esta linha" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Preço Unitário" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "A peça do fornecedor deve corresponder ao fornecedor" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Fornecedor da Peça" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Recebido" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Número de itens recebidos" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Preço de Compra" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Preço unitário de compra" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "Apenas peças vendáveis podem ser atribuídas a um pedido de venda" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Preço de Venda" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Preço de venda unitário" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Enviado" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Quantidade enviada" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Data do envio" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Data de Entrega" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Data da entrega do envio" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Verificado por" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Usuário que verificou esta remessa" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Remessa" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Número do Envio" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Número de Rastreamento" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Informação de rastreamento da remessa" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Número da Fatura" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Número de referência para fatura associada" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "O pedido já foi enviado" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "Remessa não foi alocada nos itens de estoque" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "O item do estoque não foi atribuído" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "Não é possível alocar o item de estoque para uma linha de uma peça diferente" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "Não é possível alocar uma linha sem uma peça" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "A quantidade de alocação não pode exceder a quantidade em estoque" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Quantidade alocada deve ser maior que zero" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "Quantidade deve ser 1 para item de estoque serializado" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "Pedidos de venda não coincidem com a remessa" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "Remessa não coincide com pedido de venda" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Linha" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Referência de remessa do pedido de venda" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Selecione o item de estoque para alocar" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Insira a quantidade de atribuição de estoque" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "Referência de Pedidos de Devolução" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Empresa da qual os itens estão sendo retornados" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "Estado do pedido de retorno" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Selecione o item a ser devolvido pelo cliente" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Data de Recebimento" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Despesa/gastos" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Gastos com esta linha de itens" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Gastos para reparar e/ou devolver esta linha de itens" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Copiar Parâmetros" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "Código (SKU)" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Numero interno do produto" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Digite o código do lote para itens de estoque recebidos" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Data de validade" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "Palavras-chave padrão para peças nesta categoria" msgid "Icon" msgstr "Ícone" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Ícone (opcional)" @@ -6349,7 +6361,7 @@ msgstr "Palavras-chave para melhorar a visibilidade nos resultados da pesquisa" msgid "Part category" msgstr "Categoria da Peça" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "Revisão de peça ou número de versão" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Revisão" @@ -6382,7 +6394,7 @@ msgstr "Validade Padrão" msgid "Expiry time (in days) for stock items of this part" msgstr "Validade (em dias) para itens do estoque desta peça" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Estoque Mínimo" @@ -6390,7 +6402,7 @@ msgstr "Estoque Mínimo" msgid "Minimum allowed stock level" msgstr "Nível mínimo de estoque permitido" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "Sub peça" msgid "Select part to be used in BOM" msgstr "Selecionar peça a ser usada na LDM" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "Categoria de peça pai" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Sub-categorias" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Moeda de compra deste item de estoque" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Peça Original" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Selecione a peça original para duplicar" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Copiar imagem" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Copiar imagem da peça original" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Copiar LDM" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Copiar lista de materiais da peça original" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Copiar dados do parâmetro da peça original" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Copiar Notas" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "Copiar imagem da peça original" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Quantidade Inicial de Estoque" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Especificar a quantidade inicial de estoque para a peça. Se for zero, nenhum estoque é adicionado." -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "Local Inicial do Estoque" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "Especifique o local do estoque inicial para esta Peça" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Selecione o fornecedor (ou deixe em branco para pular)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Selecione fabricante (ou deixe em branco para pular)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Número de Peça do Fabricante" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "A empresa selecionada não é um fornecedor válido" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "A empresa selecionada não é um fabricante válido" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "A peça do fabricante que corresponde a essa MPN já existe" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "A peça do fornecedor que corresponde a essa SKU já existe" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Nome da Categoria" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "Produzindo" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Itens de Estoque" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Estoque Total" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Peça duplicada" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "Copiar dados iniciais de outra peça" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Estoque inicial" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Criar peça com a quantidade inicial de estoque" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Informações do Fornecedor" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Adicionar informação inicial de fornecedor para esta peça" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Copiar Parâmetros da Categoria" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "Copiar modelos de parâmetros a partir de categoria de peça selecionada" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Imagem Existente" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "Nome de arquivo de uma imagem de peça existente" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "A imagem não existe" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Validar a Lista de Materiais completa" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Pode Produzir" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Preço Mínimo" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Sobrepor valor calculado para preço mínimo" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Moeda do preço mínimo" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Preço Máximo" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "Sobrepor valor calculado para preço máximo" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Moeda do preço máximo" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Atualizar" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "Atualizar preços desta peça" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Não foi possível converter das moedas fornecidas para {default_currency}" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "Preço mínimo não pode ser maior que o preço máximo" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "Preço máximo não pode ser menor que o preço mínimo" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "Selecionar peça para copiar a LDM" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Remover Dado Existente" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Remova itens LDM existentes antes de copiar" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Incluir Herdados" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Incluir itens LDM que são herdados de peças modelo" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Pular Linhas inválidas" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Habilitar esta opção para pular linhas inválidas" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Copiar Peças Substitutas" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "Copiar peças de substitutas quando duplicar itens de LDM" @@ -7326,91 +7338,91 @@ msgstr "Nenhuma ação especificada" msgid "No matching action found" msgstr "Nenhuma ação correspondente encontrada" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "Nenhum resultado encontrado para os dados do código de barras" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Coincidência encontrada para dados de código de barras" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "Código de barras corresponde ao item existente" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "Nenhuma informação de peça correspondente encontrada" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "Nenhuma peça de fornecedor correspondente encontrada" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "Múltiplas peças de fornecedores correspondentes encontradas" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "Peça de fornecedor correspondente" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "Item do pedido já foi recebido" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "Diversos itens de linha correspondentes encontrados" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "Nenhum item de linha correspondente encontrado" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "Código de barras não corresponde a item de estoque válido" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "Item do estoque não corresponde ao item de linha" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "Estoque insuficiente disponível" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "Item de estoque atribuído para pedido de venda" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "Não há informação suficiente" @@ -7992,7 +8004,7 @@ msgstr "Borda" msgid "Print a border around each label" msgstr "Imprima uma borda em torno de cada etiqueta" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "Paisagem" @@ -8481,136 +8493,136 @@ msgstr "Ofício" msgid "Letter" msgstr "Carta" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Nome do modelo" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Padrão de Nome de Arquivo" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Filtros" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "Tamanho da página para relatórios PDF" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "Renderizar relatório em orientação paisagem" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Largura [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Largura da etiqueta, em mm" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Altura [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Altura da Etiqueta, em mm" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Recorte" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Relatar arquivo de recorte" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Descrição do arquivo de recorte" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Patrimônio" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Reportar arquivo de ativos" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Descrição do arquivo de ativos" @@ -8766,200 +8778,200 @@ msgstr "Nenhum resultado" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "Arquivo de imagem não encontrado" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "Tag part_image necessita de uma instância de Peça" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "Tag company_image necessita de uma instância de Empresa" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Código da situação" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Localização externa" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "Árvore de Peças" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "Data de validade antes" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "Data de validade depois" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "Inativo" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "Quantidade obrigatória" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "Uma peça válida deve ser fornecida" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "A peça do fornecedor informado não existe" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "A peça do fornecedor tem um tamanho de pacote definido, mas o item use_pack_size não foi definida" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Números de série não podem ser fornecidos para uma parte não rastreável" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "Selecionar Responsável" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Os itens de estoque podem não estar diretamente localizados em um local de estoque estrutural, mas podem ser localizados em locais filhos." -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Externo" @@ -9101,7 +9113,7 @@ msgstr "Selecione uma peça do fornecedor correspondente para este item de estoq msgid "Where is this stock item located?" msgstr "Onde está localizado este item de estoque?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "Embalagem deste item de estoque está armazenado em" @@ -9117,7 +9129,7 @@ msgstr "Este item está instalado em outro item?" msgid "Serial number for this item" msgstr "Número de série para este item" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Código do lote para este item de estoque" @@ -9234,7 +9246,7 @@ msgstr "Item no estoque está em produção no momento" msgid "Serialized stock cannot be merged" msgstr "Itens de série não podem ser mesclados" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Item de estoque duplicado" @@ -9398,7 +9410,7 @@ msgstr "Inserir número de série para novos itens" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Expirado" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Quantidade não deve exceder a quantidade disponível em estoque ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Local de destino do estoque" @@ -9501,127 +9513,127 @@ msgstr "Selecionar itens de estoque para mudar estados" msgid "No stock items selected" msgstr "Nenhum item de estoque selecionado" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Sub-locais" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "Parte deve ser comercializável" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "Item é alocado para um pedido de venda" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "Item está alocado a um pedido de produção" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Cliente para atribuir itens de estoque" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "A empresa selecionada não é um cliente" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Nodas atribuídas a estoque" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "Uma lista de item de estoque deve ser providenciada" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Notas de fusão de estoque" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Permitir fornecedores divergentes" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Permitir a fusão de itens de estoque de fornecedores diferentes" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Permitir estado incompatível" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Permitir a fusão de itens de estoque com estado diferentes" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "Ao menos dois itens de estoque devem ser providenciados" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Valor da chave primária do Item Estoque" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Notas da transação de estoque" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "Permissões" msgid "Important dates" msgstr "Datas importantes" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "O token foi revogado" @@ -9927,163 +9939,163 @@ msgstr "O token foi revogado" msgid "Token has expired" msgstr "Token expirou" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "Token da API" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "Tokens de API" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Nome do Token" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Nome de token personalizado" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Data de validade do token" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Visto pela Última Vez" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "Última vez que o token foi usado" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Revogado" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Permissão definida" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Visualizar" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Permissão para ver itens" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Adicionar" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Permissão para adicionar itens" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Alterar" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Permissões para editar itens" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Excluir" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Permissão para excluir itens" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po index 89d30a054c..f4485cf01e 100644 --- a/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API endpoint não encontrado" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "Uma lista de itens deve ser fornecida para a operação em massa" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Os itens devem ser fornecidos como lista" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Lista de itens inválida fornecida" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "Todos os filtros devem ser usados apenas como verdadeiro" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "Nenhum item corresponde com os critérios fornecidos" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "Nenhum dado fornecido" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "Este campo deve ser único." -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "O usuário não tem permissão para visualizar esse modelo" @@ -65,11 +65,11 @@ msgstr "E-mail de confirmação" msgid "You must type the same email each time." msgstr "Você deve digitar o mesmo e-mail todas às vezes." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "O endereço de e-mail fornecido não é válido." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "O domínio de e-mail fornecido não foi aprovado." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Não foi possível converter {original} para {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Quantidade inválida" @@ -105,22 +105,22 @@ msgstr "Informe a data" msgid "Invalid decimal value" msgstr "Valor decimal inválido" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Observações" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "O valor '{name}' não aparece no formato padrão" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "O valor fornecido não corresponde ao padrão exigido: " @@ -164,51 +164,51 @@ msgstr "Remover as \"tags\" HTML deste valor" msgid "Data contains prohibited markdown content" msgstr "Os dados contêm conteúdo de marcação proibido" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "URL inválida: sem nome de host" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "URL inválida: não foi possível resolver o nome de host" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "A URL aponta para um endereço IP privado ou reservado" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "Redirecionamentos em excesso" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Erro de conexão" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "O servidor respondeu com código de estado inválido" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Ocorreu uma exceção" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "O servidor respondeu com valor inválido do tamanho de conteúdo" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "O tamanho da imagem é grande demais" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "O download da imagem excedeu seu tamanho máximo" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "O servidor remoto retornou uma resposta vazia" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "A URL fornecida não é um arquivo de imagem válido" @@ -220,117 +220,121 @@ msgstr "Entrar no aplicativo" msgid "Email" msgstr "E-mail" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "Falha na verificação CSRF. Certifique-se de que INVENTREE_SITE_URL e INVENTREE_TRUSTED_ORIGINS estejam configurados corretamente." + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Você deve habilitar a autenticação de dois fatores antes de fazer qualquer coisa." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Erro ao executar a validação do plugin" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metadados deve ser um objeto dict python" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Plugin de metadados" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "Campo de metadados JSON, para uso de plugins externos" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Padrão formatado incorretamente" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Chave de formato desconhecida especificada" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Chave de formato obrigatório ausente" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "O campo de referência não deve ficar vazio" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "A referência deve corresponder ao padrão exigido" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "O número de referência é muito longo" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Escolha inválida" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Nome" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Descrição" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Descrição (opcional)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Caminho" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Nomes duplicados não podem existir sob o mesmo parental" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Notas markdown (opcional)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Dados de código de barras" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Dados de código de barras de terceiros" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Hash de código de barras" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Hash exclusivo de dados de código de barras" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Código de barras existente encontrado" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Erro de servidor" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Um erro foi registrado pelo servidor." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Deve ser um número válido" msgid "Currency" msgstr "Moeda" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Selecione a moeda entre as opções disponíveis" @@ -521,11 +525,11 @@ msgstr "Chinês (simplificado)" msgid "Chinese (Traditional)" msgstr "Chinês (tradicional)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "Atualização disponível" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "Uma atualização para o InvenTree está disponível" @@ -537,7 +541,7 @@ msgstr "Unidade física inválida" msgid "Not a valid currency code" msgstr "O código de moeda não é válido" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Status de pedido" @@ -546,23 +550,23 @@ msgstr "Status de pedido" msgid "Parent Build" msgstr "Produção principal" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "Incluir variáveis" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "Incluir variáveis" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "Incluir variáveis" msgid "Part" msgstr "Peça" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Categoria" @@ -593,7 +597,7 @@ msgstr "Categoria" msgid "Ancestor Build" msgstr "Construção de ancestrais" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Atribuído a mim" @@ -601,11 +605,11 @@ msgstr "Atribuído a mim" msgid "Assigned To" msgstr "Atribuído a" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Criado antes" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Criado após" @@ -641,99 +645,99 @@ msgstr "Concluído antes" msgid "Completed after" msgstr "Concluído após" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "Data mínima" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "Data máxima" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "Excluir árvore" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "A produção deve ser cancelada antes de ser excluída" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Consumível" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Opcional" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Montagem" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Rastreado" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Testável" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Pedido pendente" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Alocado" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Consumido" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Disponível" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Em pedido" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "Produção não encontrada" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Pedido de produção" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Local" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "Saída" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Filtrar por ID do item de estoque de saída. Use 'null' para encontrar itens de produção não instalados." @@ -773,9 +777,9 @@ msgstr "A data limite deve ser posterior à data inicial" msgid "Build Order Reference" msgstr "Referência do pedido de produção" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Referência do pedido de venda" msgid "Sales Order to which this build is allocated" msgstr "Pedido de venda ao qual esta produção está alocada" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Local de origem" @@ -821,7 +825,7 @@ msgstr "Produção externa" msgid "This build order is fulfilled externally" msgstr "Este pedido de produção é atendido externamente" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Local de destino" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Código de situação da produção" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Código do lote" @@ -883,8 +887,8 @@ msgstr "Data alvo final" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Data limite para finalização de produção. Estará atrasado a partir deste dia." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Data de conclusão" @@ -900,7 +904,7 @@ msgstr "Emitido por" msgid "User who issued this build order" msgstr "Usuário que emitiu este pedido de produção" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Prioridade deste pedido de produção" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Código do projeto" @@ -962,9 +966,9 @@ msgstr "Saída da produção não corresponde à pedido de produção" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "Quantidade deve ser maior que zero" @@ -999,7 +1003,7 @@ msgstr "Compilar objeto" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Quantidade deve ser 1 para estoque serializado" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Quantidade alocada ({q}) não deve exceder a quantidade disponível em estoque ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "O item de estoque está superalocado" @@ -1057,8 +1061,8 @@ msgstr "O item de estoque está superalocado" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Item de estoque" @@ -1082,7 +1086,7 @@ msgstr "Destino do item do estoque" msgid "Build Level" msgstr "Nível de produção" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Nome da peça" @@ -1139,7 +1143,7 @@ msgstr "Alocar números de série automaticamente" msgid "Automatically allocate required items with matching serial numbers" msgstr "Alocar automaticamente os itens necessários com os números de série correspondentes" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Os seguintes números de série já existem ou são inválidos" @@ -1272,7 +1276,7 @@ msgstr "Item da linha de produção" msgid "bom_item.part must point to the same part as the build order" msgstr "Bom_item.part deve apontar para a mesma peça que a pedido de produção" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "O item deve estar em estoque" @@ -1385,8 +1389,8 @@ msgstr "Instalar em" msgid "Build" msgstr "Produção" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Fornecedor da peça" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Permitir variantes" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "Item BOM" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "Em produção" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "Agendado para produção" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Estoque externo" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Estoque disponível" @@ -1527,31 +1531,31 @@ msgstr "Pedido de produção vencido" msgid "Build order {bo} is now overdue" msgstr "Pedido de produção {bo} está atrasada" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "Tem miniatura" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "É um link" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "É um arquivo" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "O usuário não tem permissão para excluir esses anexos" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "O usuário não tem permissão para editar este anexo" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "O usuário não tem permissão para excluir esse anexo" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "Lista de seleção bloqueada" @@ -1571,8 +1575,8 @@ msgstr "Nenhum código de moeda válido fornecido" msgid "No plugin" msgstr "Sem extensão" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "Marcadores" @@ -1645,8 +1649,8 @@ msgstr "A frase senha deve ser diferenciada" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Usuário" @@ -1654,8 +1658,8 @@ msgstr "Usuário" msgid "Price break quantity" msgstr "Quantidade de parcelamentos" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Preço" @@ -1677,8 +1681,8 @@ msgstr "Nome para este webhook" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Ativo" @@ -1686,7 +1690,7 @@ msgstr "Ativo" msgid "Is this webhook active" msgstr "Este webhook está ativo" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Ficha" @@ -1756,7 +1760,7 @@ msgstr "Título" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "Opções válidas para este parâmetro (separadas por vírgula)" msgid "Selection list for this parameter" msgstr "Lista de seleção para este parâmetro" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Habilitado" @@ -2204,8 +2208,8 @@ msgstr "ID do modelo" msgid "ID of the target model for this parameter" msgstr "ID do modelo de destino para este parâmetro" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Modelo" @@ -2262,7 +2266,7 @@ msgstr "Data/hora da verificação do código de barras" msgid "URL endpoint which processed the barcode" msgstr "O endpoint da URL que processou o código de barras" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Contexto" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "Tópicos de e-mail" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Chave" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} cancelado" msgid "A order that is assigned to you was canceled" msgstr "Um pedido atribuído a você foi cancelado" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Itens recebidos" @@ -2524,7 +2528,7 @@ msgstr "Nome do arquivo" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "Categoria de modelo" @@ -2914,8 +2918,8 @@ msgstr "Peças são modelos por padrão" msgid "Parts can be assembled from other components by default" msgstr "Peças podem ser montadas a partir de outros componentes por padrão" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Componente" @@ -2931,7 +2935,7 @@ msgstr "Comprável" msgid "Parts are purchaseable by default" msgstr "Peças são compráveis por padrão" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Comercializável" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "Registrar erros que ocorrem ao gerar relatórios" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Tamanho da página" @@ -4128,49 +4132,49 @@ msgstr "Exibir itens no nível final" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "Exibir automaticamente itens/peças em vez de subníveis para locais ou categorias sem filhos" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "Todos os modelos" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "Nenhum modelo de anexo fornecido" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "Categoria de modelo de anexo inválido" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "O tamanho do arquivo excede o limite máximo de envio de {max_size} MB" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "Nome de arquivo inválido" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "Os lugares mínimos não podem ser maiores que os máximos" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "Os lugares maiores não podem ser menores que os máximos" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Um domínio vazio não é permitido." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Nome de domínio inválido: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "Valor deve ser maiúsculo" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "O valor deve ser um identificador de variável válido" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "O fornecedor está ativo" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Fabricante" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Empresa" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Endereço de e-mail do contato" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Contato" @@ -4297,7 +4301,7 @@ msgstr "CNPJ" msgid "Company Tax ID" msgstr "CNPJ da empresa" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Endereço" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "Link para as informações do endereço (externo)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Fabricante da peça" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Selecionar fabricante" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "NPF" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "Peça do fabricante vinculado deve fazer referência à mesma peça base" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Fornecedor" @@ -4448,7 +4452,7 @@ msgstr "Fornecedor" msgid "Select supplier" msgstr "Selecione o fornecedor" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Unidade de reserva de estoque fornecedor" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Taxa mínima (ex.: taxa de estoque)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Embalagem" @@ -4533,7 +4537,7 @@ msgstr "Moeda padrão utilizada para este fornecedor" msgid "Company Name" msgstr "Nome da empresa" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "Em estoque" @@ -4643,11 +4647,11 @@ msgstr "Alguns campos necessários não foram mapeados" #: importer/models.py:413 msgid "Completed Row Count History" -msgstr "" +msgstr "Histórico de contagem de linhas concluídas" #: importer/models.py:416 msgid "Row Count History" -msgstr "" +msgstr "Histórico de contagem de linhas" #: importer/models.py:439 msgid "ID" @@ -4722,7 +4726,7 @@ msgstr "Dados da linha original" msgid "Errors" msgstr "Erros" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Válido" @@ -4838,7 +4842,7 @@ msgstr "Número de cópias para cada rótulo" msgid "Connected" msgstr "Conectado" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Desconhecido" @@ -4942,7 +4946,7 @@ msgstr "Chave da propriedade" msgid "Value of the property" msgstr "Valor da propriedade" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Grupo" @@ -4966,118 +4970,118 @@ msgstr "Progresso máximo" msgid "Maximum value for progress type, required if type=progress" msgstr "Valor máximo para o tipo progresso, obrigatório se type=progress" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Referência do pedido" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "Pendente" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "Tem código do projeto" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Criado por" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "Criado antes" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "Criado após" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "Tem data inicial" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "Data inicial antes" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "Data inicial após" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "Tem data prevista" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "Data prevista antes" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "Data prevista antes" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "Atualizado antes de" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "Atualizado após" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "Tem preço" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "Concluído antes" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "Concluído após" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "Pedido de produção vencido" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Pedido" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "Pedido completo" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Peça interna" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "Pedido pendente" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Concluído" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "Possui envio" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "Remessa não encontrada" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Pedido de compra" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Pedido de compra" msgid "Sales Order" msgstr "Pedido de venda" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "Pedido de devolução" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "Pedido de transferência" @@ -5135,11 +5139,11 @@ msgstr "O endereço não corresponde à empresa selecionada" msgid "Order description (optional)" msgstr "Descrição do pedido (opcional)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Selecione o código do projeto para este pedido" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Link para página externa" @@ -5151,7 +5155,7 @@ msgstr "Data inicial" msgid "Scheduled start date for this order" msgstr "Data de início programada para esta encomenda" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Data prevista" @@ -5184,487 +5188,487 @@ msgstr "Ponto de contato para este pedido" msgid "Company address for this order" msgstr "Endereço da empresa para este pedido" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Referência do pedido" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Status" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Estado do pedido" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Empresa da qual os itens estão sendo encomendados" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Referência do fornecedor" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Código de referência do pedido fornecedor" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "Recebido por" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "Dia que o pedido foi concluído" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Destino" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "Destino para os itens recebidos" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "Fornecedor de peça deve corresponder a fornecedor da OC" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "O item de linha não corresponde ao pedido de compra" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "O item de linha está sem uma peça vinculada" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "Quantidade deve ser um número positivo" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "Números de série não podem ser atribuídos a peças virtuais" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "Permitir qualquer estoque (serializado ou não)" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "Apenas estoque serializado" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "Apenas estoque não serializado" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Cliente" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Empresa para qual os itens foi vendidos" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "Situação do pedido de venda" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Referência do cliente " -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Código de referência do pedido do cliente" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Data de envio" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "Enviado por" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "O pedido já está completo" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "O pedido já está cancelado" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Apenas um pedido aberto pode ser marcado como completo" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Pedido não pode ser concluído, pois, há envios incompletos" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "O pedido não pode ser concluído, pois, há alocações incompletas" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "O pedido não pode ser concluído, pois, há itens de linha incompletos" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "O pedido está bloqueado e não pode ser modificado" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Quantidade do item" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "Número da linha" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "Número da linha para este item (opcional)" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Referência do item em linha" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Observações do item de linha" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Data limite para este item de linha (deixe em branco para usar a data limite do pedido)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Descrição do item de linha (opcional)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "Contexto adicional para esta linha" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Preço unitário" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "Item de linha de pedido de compra" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "A peça do fornecedor deve corresponder ao fornecedor" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "Pedido de produção deve ser marcada como externa" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "Os pedidos de produção só podem ser vinculados a peças de montagem" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "Criar peça do pedido deve combinar a peça do item de linha" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "Um pedido de produção externo é necessário para peças de montagem" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Fornecedor da peça" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Recebido" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Número de itens recebidos" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Preço de compra" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Preço unitário de compra" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "Pedido de produção externa para ser preenchida por este item de linha" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "Linha extra do pedido de compra" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "Item de linha de pedido de vendas" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "Apenas peças vendáveis podem ser atribuídas a um pedido de venda" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Preço de venda" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Preço de venda unitário" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Enviado" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Quantidade enviada" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "Envio do pedido de venda" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "O endereço da remessa deve corresponder ao cliente" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "Endereço de entrega desta remessa" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Data do envio" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Data de entrega" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Data da entrega do envio" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Verificado por" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Usuário que verificou este envio" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Envio" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Número do envio" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Número de rastreio" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Informação de rastreamento" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Número da nota fiscal" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Número de referência da nota fiscal associada" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "A remessa já foi enviada" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "A remessa não tem itens de estoque alocados" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "A remessa deve ser verificada antes de ser concluída" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "Linha extra do pedido de venda" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "Alocação do pedido de venda" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "O item de estoque não foi atribuído" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "Não é possível alocar um item de estoque a uma linha com uma peça diferente" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "Não é possível alocar estoque a uma linha sem peça" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "A quantidade alocada não pode exceder a quantidade em estoque" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Quantidade alocada deve ser maior que zero" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "A quantidade deve ser 1 para um item de estoque serializado" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "O pedido de venda não corresponde à remessa" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "A remessa não corresponde ao pedido de venda" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Linha" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Referência da remessa do pedido de venda" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Item" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Selecionar item de estoque a alocar" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Inserir a quantidade de alocação de estoque" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "Referência do pedido de devolução" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Empresa da qual os itens estão sendo devolvidos" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "Status do pedido de devolução" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "Item de linha do pedido de devolução" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "O item de estoque deve ser especificado" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "A quantidade de devolução excede a quantidade em estoque" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "A quantidade de devolução deve ser maior que zero" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "Quantidade inválida para item de estoque serializado" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Selecionar item a devolver do cliente" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Data de recebimento" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "A data em que este item de devolução foi recebido" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Resultado" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Resultado para este item de linha" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Custo associado à devolução ou reparo deste item de linha" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "Linha extra do pedido de devolução" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "Referência do pedido de transferência" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "Status do pedido de transferência" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "Origem dos itens transferidos" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "Destino dos itens transferidos" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "Consumir estoque" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "Em vez de transferir o estoque para o destino, \"consuma\" o estoque removendo a quantidade transferida do item de estoque alocado" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "O pedido não pode ser concluído até que um local de destino seja definido" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "O pedido não pode ser concluído até estar totalmente alocado" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "Item de linha do pedido de transferência" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "transferido" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "quantidade transferida" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "Alocação do pedido de transferência" @@ -5692,7 +5696,7 @@ msgstr "Copiar linhas extras" msgid "Copy extra line items from the original order" msgstr "Copiar itens de linha extras do pedido original" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Copiar parâmetros" @@ -5784,11 +5788,11 @@ msgstr "Mesclar itens" msgid "Merge items with the same part, destination and target date into one line item" msgstr "Mesclar itens com a mesma peça, destino e data prevista em um único item de linha" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "Código (SKU)" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Número interno da peça" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Inserir código de lote para os itens de estoque recebidos" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Data de validade" @@ -6056,123 +6060,131 @@ msgstr "Pedido de devolução atrasado" msgid "Return order {ro} is now overdue" msgstr "O pedido de devolução {ro} está atrasado" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "Favorito" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "Filtrar por categorias favoritas" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Profundidade" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "Filtrar por profundidade da categoria" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "Nível superior" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "Filtrar por categorias de nível superior" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "Cascata" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "Incluir subcategorias nos resultados filtrados" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "Pai" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "Filtrar por categoria pai" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "Excluir subcategorias da categoria especificada" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "Nível máximo" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "Limitar a profundidade da árvore de categorias" + +#: part/api.py:442 msgid "Has Results" msgstr "Tem resultados" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "É variante" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "É revisão" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "Tem revisões" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "BOM válida" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "Categorias em cascata" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "Se verdadeiro, inclui itens nas categorias filhas da categoria informada" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "Filtrar por ID numérico da categoria ou o literal 'null'" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "A peça de montagem está ativa" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "A peça de montagem é rastreável" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "A peça de montagem é testável" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "A peça de montagem está bloqueada" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "A peça componente está ativa" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "A peça componente é rastreável" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "A peça componente é testável" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "A peça componente é uma montagem" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "A peça componente é virtual" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "Tem estoque disponível" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "Usos" @@ -6213,7 +6225,7 @@ msgstr "Palavras-chave padrão para peças nesta categoria" msgid "Icon" msgstr "Ícone" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Ícone (opcional)" @@ -6349,7 +6361,7 @@ msgstr "Palavras-chave da peça para melhorar a visibilidade nos resultados de b msgid "Part category" msgstr "Categoria da peça" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "IPN" @@ -6358,7 +6370,7 @@ msgstr "IPN" msgid "Part revision or version number" msgstr "Revisão da peça ou número da versão" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Revisão" @@ -6382,7 +6394,7 @@ msgstr "Validade padrão" msgid "Expiry time (in days) for stock items of this part" msgstr "Validade (em dias) para itens do estoque desta peça" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Estoque mínimo" @@ -6390,7 +6402,7 @@ msgstr "Estoque mínimo" msgid "Minimum allowed stock level" msgstr "Nível mínimo de estoque permitido" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "Estoque máximo" @@ -6759,7 +6771,7 @@ msgstr "Sub peça" msgid "Select part to be used in BOM" msgstr "Selecionar peça a ser usada na lista de materiais" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "Quantidade" @@ -6911,351 +6923,351 @@ msgstr "Categoria pai" msgid "Parent part category" msgstr "Categoria de peça pai" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Subcategorias" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "Resultados" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "Número de resultados registrados para este modelo" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Moeda de compra deste item de estoque" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "O arquivo não é uma imagem" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Peça original" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Selecionar peça original para duplicar" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Copiar imagem" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Copiar imagem da peça original" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Copiar lista de materiais" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Copiar lista de materiais da peça original" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Copiar dados de parâmetro da peça original" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Copiar notas" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "Copiar notas da peça original" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "Copiar testes" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "Copiar modelos de teste da peça original" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Quantidade inicial de estoque" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Especifique a quantidade inicial de estoque para esta peça. Se a quantidade for zero, nenhum estoque é adicionado." -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "Local inicial de estoque" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "Especifique o local inicial de estoque para esta peça" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Selecionar fornecedor (ou deixar em branco para pular)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Selecionar fabricante (ou deixar em branco para pular)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Número de peça do fabricante" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "A empresa selecionada não é um fornecedor válido" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "A empresa selecionada não é um fabricante válido" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "Já existe uma peça de fabricante com este MPN" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "Já existe uma peça de fornecedor com este SKU" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Nome da categoria" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "Em produção" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "Quantidade desta peça atualmente em produção" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "Quantidade pendente desta peça programada para produção" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Itens de estoque" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "Revisões" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Estoque total" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "Estoque não alocado" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "Estoque de variante" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Duplicar peça" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "Copiar dados iniciais de outra peça" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Estoque inicial" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Criar peça com quantidade inicial de estoque" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Informações do fornecedor" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Adicionar informações iniciais de fornecedor para esta peça" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Copiar parâmetros da categoria" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "Copiar modelos de parâmetro da categoria de peças selecionada" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Imagem existente" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "Nome do arquivo de uma imagem de peça existente" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "O arquivo de imagem não existe" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Validar toda a lista de materiais" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Pode produzir" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "Necessário para pedidos de produção" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "Alocado para pedidos de produção" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "Necessário para pedidos de venda" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "Alocado para pedidos de venda" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "IPN da peça" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "Descrição da peça" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "Selecione uma peça para gerar informações de inventário para essa peça (e quaisquer peças variantes)" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "Selecione uma categoria para incluir todas as peças dentro dela (e subcategorias)" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "Selecione um local para incluir todas as peças com estoque nesse local (incluindo sublocais)" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "Gerar registros de inventário" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "Salvar registros de inventário para as peças selecionadas" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "Gerar relatório" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "Gerar um relatório de inventário para as peças selecionadas" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Preço mínimo" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Substituir o valor calculado do preço mínimo" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Moeda do preço mínimo" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Preço máximo" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "Substituir o valor calculado do preço máximo" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Moeda do preço máximo" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Atualizar" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "Atualizar preços desta peça" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Não foi possível converter das moedas informadas para {default_currency}" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "O preço mínimo não pode ser maior que o preço máximo" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "O preço máximo não pode ser menor que o preço mínimo" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "Quantidade necessária para este item (pode incluir unidades)" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "Selecionar a montagem pai" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "Selecionar a peça componente" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "Formato de quantidade inválido" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "Selecionar peça da qual copiar a lista de materiais" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Remover dados existentes" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Remover itens existentes da lista de materiais antes de copiar" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Incluir herdados" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Incluir itens da lista de materiais herdados de peças modelo" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Ignorar linhas inválidas" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Habilite essa opção para ignorar linhas inválidas" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Copiar peças substitutas" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "Copiar peças substitutas ao duplicar itens da lista de materiais" @@ -7326,91 +7338,91 @@ msgstr "Nenhuma ação especificada" msgid "No matching action found" msgstr "Nenhuma ação correspondente encontrada" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "Nenhum resultado encontrado para os dados do código de barras" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Correspondência encontrada para dados de código de barras" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "Modelo não suportado" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "Instância do modelo não encontrada" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "Código de barras corresponde ao item existente" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "Nenhum dado de peça correspondente encontrado" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "Nenhuma peça de fornecedor correspondente encontrada" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "Várias peças de fornecedor correspondentes encontradas" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "Nenhum plugin correspondente encontrado para os dados do código de barras" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "Peça de fornecedor correspondente" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "O item já foi recebido" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "Pedido de compra encontrado\\rNenhuma peça de fornecedor correspondente" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "Peça de fornecedor encontrada\\rNenhum pedido de compra correspondente" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "Nenhum plugin correspondente para o código de barras do fornecedor" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "Vários itens de linha correspondentes encontrados" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "Nenhum item de linha correspondente encontrado" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "Nenhum pedido de venda fornecido" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "O código de barras não corresponde a um item de estoque existente" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "O item de estoque não corresponde ao item de linha" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "Estoque disponível insuficiente" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "Item de estoque alocado ao pedido de venda" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "Informações insuficientes" @@ -7992,7 +8004,7 @@ msgstr "Margem" msgid "Print a border around each label" msgstr "Imprimir uma borda ao redor de cada etiqueta" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "Paisagem" @@ -8481,136 +8493,136 @@ msgstr "Ofício" msgid "Letter" msgstr "Carta" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "Já existe um arquivo de modelo com este nome" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Nome do modelo" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "Descrição do modelo" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "Número da revisão (incrementa automaticamente)" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "Anexar ao modelo ao imprimir" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "Salvar a saída do relatório como anexo na instância do modelo vinculado ao imprimir" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Padrão de nome de arquivo" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "Padrão para gerar nomes de arquivo" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "O modelo está habilitado" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "Tipo de modelo de destino para o modelo" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Filtros" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "Filtros de consulta do modelo (lista separada por vírgula de pares chave=valor)" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "Arquivo modelo" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "Tamanho da página para relatórios PDF" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "Renderizar o relatório na orientação paisagem" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "Mesclar" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "Renderizar um único relatório para os itens selecionados" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "Relatório gerado a partir do modelo {self.name}" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "Erro de sintaxe no modelo" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "Erro ao renderizar o relatório" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "Erro ao gerar o relatório" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "Erro ao mesclar as saídas do relatório" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Largura [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Largura da etiqueta, em mm" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Altura [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Altura da etiqueta, em mm" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "Erro ao imprimir etiquetas" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Trecho" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Arquivo de trecho do relatório" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Descrição do arquivo de trecho" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Recurso" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Arquivo de recurso do relatório" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Descrição do arquivo de recurso" @@ -8766,200 +8778,200 @@ msgstr "Sem resultado" msgid "Transferred" msgstr "Transferido" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "Caminho de arquivo de mídia inválido" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "Caminho de arquivo estático inválido" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "Arquivo de recurso não encontrado" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "Arquivo de imagem não encontrado" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "Nenhum arquivo de imagem especificado" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "A tag part_image requer uma instância de Part" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "A tag company_image requer uma instância de Company" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "Filtrar por profundidade do local" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "Filtrar por locais de nível superior" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "Incluir sublocais nos resultados filtrados" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "Local pai" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "Filtrar por local pai" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "Nome da peça (não diferencia maiúsculas)" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "Nome da peça contém (não diferencia maiúsculas)" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "Nome da peça (regex)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "IPN da peça (não diferencia maiúsculas)" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "IPN da peça contém (não diferencia maiúsculas)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "IPN da peça (regex)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "Estoque mínimo" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "Estoque máximo" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Código de status" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Local externo" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "Consumido por pedido de produção" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "Instalado em outro item de estoque" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "Árvore de peças" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "Atualizado antes de" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "Atualizado após" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "Inventário antes de" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "Inventário após" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "Tem data de inventário" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "Data de validade antes de" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "Data de validade após" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "Parado" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "Forneça a chave primária de um StockItem para excluir esse item e todos os seus descendentes" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "Locais em cascata" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "Se verdadeiro, inclui itens nos locais filhos do local informado" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "Filtrar por ID numérico do local ou o literal 'null'" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "A quantidade é obrigatória" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "Uma peça válida deve ser fornecida" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "A peça de fornecedor informada não existe" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "A peça de fornecedor tem um tamanho de pacote definido, mas o flag use_pack_size não está ativado" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Números de série não podem ser fornecidos para uma peça não rastreável" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "Incluir instalados" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "Se verdadeiro, inclui resultados de teste dos itens instalados sob o item de estoque informado" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "Filtrar por ID numérico do item de estoque" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "O item de estoque com ID {id} não existe" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "Incluir variantes da peça" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "Data após" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "Data antes de" @@ -8995,7 +9007,7 @@ msgstr "Selecionar responsável" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Os itens de estoque não podem ser alocados diretamente em locais de estoque estruturais, mas podem ser alocados em locais filhos." -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Externo" @@ -9101,7 +9113,7 @@ msgstr "Selecione uma peça de fornecedor correspondente para este item de estoq msgid "Where is this stock item located?" msgstr "Onde este item de estoque está localizado?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "Embalagem em que este item de estoque é armazenado" @@ -9117,7 +9129,7 @@ msgstr "Este item está instalado em outro item?" msgid "Serial number for this item" msgstr "Número de série deste item" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Código de lote deste item de estoque" @@ -9234,7 +9246,7 @@ msgstr "O item de estoque está atualmente em produção" msgid "Serialized stock cannot be merged" msgstr "Estoque serializado não pode ser mesclado" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Itens de estoque duplicados" @@ -9398,7 +9410,7 @@ msgstr "Inserir números de série para os novos itens" msgid "Supplier Part Number" msgstr "Número de peça do fornecedor" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Vencido" @@ -9428,8 +9440,8 @@ msgstr "Nenhum item de estoque fornecido" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "A quantidade não pode exceder a quantidade de estoque disponível ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Local de estoque de destino" @@ -9501,127 +9513,127 @@ msgstr "Selecionar itens de estoque para alterar o status" msgid "No stock items selected" msgstr "Nenhum item de estoque selecionado" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Sublocais" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "Excluir itens de estoque" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "Excluir todos os itens de estoque contidos neste local" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "Excluir sublocais" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "Excluir todos os sublocais contidos neste local" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "Local de estoque pai" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "A peça deve ser vendável" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "O item está alocado a um pedido de venda" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "O item está alocado a um pedido de transferência" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "O item está alocado a um pedido de produção" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Cliente para atribuir os itens de estoque" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "A empresa selecionada não é um cliente" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Notas da atribuição de estoque" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "Uma lista de itens de estoque deve ser fornecida" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Notas da mesclagem de estoque" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Permitir fornecedores divergentes" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Permitir a mesclagem de itens de estoque com peças de fornecedor diferentes" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Permitir status divergente" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Permitir a mesclagem de itens de estoque com códigos de status diferentes" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "Pelo menos dois itens de estoque devem ser fornecidos" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "Sem alteração" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Valor da chave primária do StockItem" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "O item de estoque não está em estoque" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "O item de estoque já está em estoque" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "A quantidade não pode ser negativa" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Notas da transação de estoque" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "Definir local de estoque para os itens contados (opcional)" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "Mesclar com o estoque existente" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "Mesclar itens devolvidos com itens de estoque existentes, se possível" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "Próximo número de série" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "Número de série anterior" @@ -9919,7 +9931,7 @@ msgstr "Permissões" msgid "Important dates" msgstr "Datas importantes" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "O token foi revogado" @@ -9927,163 +9939,163 @@ msgstr "O token foi revogado" msgid "Token has expired" msgstr "O token expirou" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "Token de API" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "Tokens de API" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Nome do token" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Nome personalizado do token" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Data de validade do token" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Visto por último" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "Última vez que o token foi usado" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Revogado" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Conjunto de permissões" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Visualizar" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Permissão para exibir itens" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Adicionar" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Permissão para adicionar itens" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Alterar" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Permissões para editar itens" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Excluir" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Permissão para excluir itens" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "Bot" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "Interno" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "Convidado" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "Idioma" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "Idioma preferencial para o usuário" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "Tema" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "Configurações da interface web em JSON - não edite manualmente!" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "Widgets" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "Configurações dos widgets do painel em JSON - não edite manualmente!" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "Nome de exibição" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "Nome de exibição escolhido para o usuário" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "Cargo" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "Cargo ou posição principal" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "Mensagem de status do usuário" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "Informações de localização do usuário" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "O usuário está usando o sistema ativamente" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "Informações de contato preferenciais do usuário" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "Tipo de usuário" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "Que tipo de usuário é este?" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "Organização" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "Organização/afiliação principal do usuário" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "Grupo principal" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "Grupo principal do usuário" diff --git a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po index d0fdb6c7ec..c7c48e8a57 100644 --- a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Romanian\n" "Language: ro_RO\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "Criteriul API final nu a fost găsit" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Articolele trebuie să fie furnizate ca o listă" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Listă de articole nevalidă furnizată" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "Toate filtrele trebuie folosite doar cu adevărat" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "Niciun articol nu corespunde criteriilor furnizate" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "Nu sunt furnizate date" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "Acest câmp trebuie să fie unic." -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Utilizatorul nu are permisiunea de a vedea acest model" @@ -65,11 +65,11 @@ msgstr "Confirmare adresă e-mail" msgid "You must type the same email each time." msgstr "Trebuie să tastați același e-mail de fiecare dată." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Adresa de e-mail principală furnizată nu este validă." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Domeniul de e-mail furnizat nu este aprobat." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Nu s-a putut converti {original} în {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Cantitate furnizata nevalida" @@ -105,22 +105,22 @@ msgstr "Enter Date" msgid "Invalid decimal value" msgstr "Valoare zecimală nevalidă" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Notițe" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Valoarea '{name}' nu apare în formatul modelului" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Valoarea furnizată nu se potrivește cu modelul necesar: " @@ -164,51 +164,51 @@ msgstr "Elimină tag-urile HTML din această valoare" msgid "Data contains prohibited markdown content" msgstr "Datele conţin conţinut de marcaje interzis" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Eroare de conexiune" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Serverul a răspuns cu un cod de stare invalid" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Excepție apărută" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Serverul a răspuns cu o valoare de Content-Length invalidă" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Dimensiunea imaginii este prea mare" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Descărcarea imaginii a depăşit dimensiunea maximă" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Serverul la distanță a returnat un răspuns gol" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "URL-ul furnizat nu este un fișier imagine valid" @@ -220,117 +220,121 @@ msgstr "Conectați-vă la aplicație" msgid "Email" msgstr "E-mail" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Trebuie să activați autentificarea cu doi factori înainte de a face orice altceva." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Eroare la rularea validării plugin-ului" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metadata trebuie să fie un obiect dict python" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Metadatele plugin" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "Câmp de metadate JSON pentru utilizare de plugin-uri externe" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Model formatat incorect" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Format necunoscut cheie specificat" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Lipseste cheia de format" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Câmpul de referință nu poate fi gol" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Referința trebuie să corespundă modelului necesar" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Numărul de referință este prea mare" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Alegere invalidă" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Nume" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Descriere" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Descriere (opțional)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Cale" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplicate nume nu poate exista sub acelaşi părinte" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Note Markdown (opțional)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Date Cod de Bare" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Date coduri de bare terțe" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Date Cod de Bare" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Hash unic al codului de bare" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Cod de bare existent găsit" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Eroare de server" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "A fost înregistrată o eroare de către server." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Trebuie sa fie un număr valid" msgid "Currency" msgstr "Monedă" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Selectați moneda din opțiunile disponibile" @@ -521,11 +525,11 @@ msgstr "Chineză (simplificată)" msgid "Chinese (Traditional)" msgstr "Chineză (tradițională)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "Actualizare disponibilă" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "O actualizare pentru InvenTree este disponibilă" @@ -537,7 +541,7 @@ msgstr "Unitate fizică nevalidă" msgid "Not a valid currency code" msgstr "Nu este un cod valutar valid" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Starea comenzii" @@ -546,23 +550,23 @@ msgstr "Starea comenzii" msgid "Parent Build" msgstr "Construcție părinte" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "İnclude variante" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "İnclude variante" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "İnclude variante" msgid "Part" msgstr "Piesă" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Categorie" @@ -593,7 +597,7 @@ msgstr "Categorie" msgid "Ancestor Build" msgstr "Ancestor Build" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Alocate mie" @@ -601,11 +605,11 @@ msgstr "Alocate mie" msgid "Assigned To" msgstr "Atribuit către" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Creat înainte de" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Creat după" @@ -641,99 +645,99 @@ msgstr "Finalizat înainte de" msgid "Completed after" msgstr "Finalizat după" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "Dată min" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "Dată maximă" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "Exclude arbore" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Construcția trebuie anulată înainte de a putea fi ștearsă" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Consumabile" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Opţional" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Asamblate" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Urmarit" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Testabilă" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Comandă restantă" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Alocate" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Consumat" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Disponibil" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Pe comandă" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Comenzi de Producție" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Locatie" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "Ieșire" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Filtrează după ID-ul elementelor de ieșire din stoc. Utilizați \"null\" pentru a găsi elemente de construcție dezinstalate." @@ -773,9 +777,9 @@ msgstr "Data țintă trebuie să fie după data de început" msgid "Build Order Reference" msgstr "Referință comandă producție" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Referință comandă de vânzare" msgid "Sales Order to which this build is allocated" msgstr "Comanda de vânzare pentru care această construcție este alocată" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Locație sursă" @@ -821,7 +825,7 @@ msgstr "Construcție externă" msgid "This build order is fulfilled externally" msgstr "Această comandă de producție este îndeplinită extern" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Locul destinației" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Cod status producție" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Cod lot" @@ -883,8 +887,8 @@ msgstr "Data finalizării țintă" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Data țintă pentru finalizarea construcției. Construcția va fi depășită după această dată." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Data completării" @@ -900,7 +904,7 @@ msgstr "Emis de" msgid "User who issued this build order" msgstr "Utilizatorul care a emis această comandă de producție" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Prioritatea acestei comenzi de producție" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Cod proiect" @@ -962,9 +966,9 @@ msgstr "Construcția nu se potrivește cu Comanda de producție" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "Cantitatea trebuie să fie mai mare decât zero" @@ -999,7 +1003,7 @@ msgstr "Construiește obiectul" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Cantitatea trebuie sa fie 1 pentru stoc serializat" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Cantitate alocata ({q}) nu trebuie sa depaseasca cantitatea disponibila de stoc ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Articolul din stoc este supra alocat" @@ -1057,8 +1061,8 @@ msgstr "Articolul din stoc este supra alocat" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Articol Stoc" @@ -1082,7 +1086,7 @@ msgstr "Destinație articol in stoc" msgid "Build Level" msgstr "Nivel de construcție" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Numele Piesei" @@ -1139,7 +1143,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "Producție" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "În Producţie" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Stoc extern" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Stoc disponibil" @@ -1527,31 +1531,31 @@ msgstr "Comandă de producție restantă" msgid "Build order {bo} is now overdue" msgstr "Comanda de producție {bo} este în întârziere" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Utilizator" @@ -1654,8 +1658,8 @@ msgstr "Utilizator" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Preț" @@ -1677,8 +1681,8 @@ msgstr "Nume pentru acest webhook" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Activ" @@ -1686,7 +1690,7 @@ msgstr "Activ" msgid "Is this webhook active" msgstr "Este acest webhook activ" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Token-ul" @@ -1756,7 +1760,7 @@ msgstr "Titlu" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "" @@ -2430,7 +2434,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2524,7 +2528,7 @@ msgstr "Nume fișier" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "" @@ -2931,7 +2935,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "" @@ -4448,7 +4452,7 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4533,7 +4537,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Id comandă" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "" msgid "Sales Order" msgstr "" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "Descrierea comenzii (opțional)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Descrierea elementului de rând (opțional)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Introduceți codul lotului pentru articolele din stoc primite" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "Este versiune" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "Are Versiuni" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Versiunea" @@ -6382,7 +6394,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "" @@ -6390,7 +6402,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "Versiunea" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "Descrierea piesei" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "Descrierea șablonului" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "Număr versiune (creșteri automate)" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Descrierea detaliată a fișierului" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Descriere fișier Asset" @@ -8766,200 +8778,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Codul lotului pentru acest element din stoc" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po index 88314401d8..3477f31b54 100644 --- a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "Конечная точка API не обнаружена" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Элементы должны быть представлены в виде списка" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Предоставлен недопустимый список элементов" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "Все фильтры будут использоваться с параметром True" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "Нет элементов, соответствующих заданным критериям" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "Данные не предоставлены" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "Поле должно быть уникальным." -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "У пользователя недостаточно прав для просмотра этой модели!" @@ -65,11 +65,11 @@ msgstr "Подтверждение адреса электронной почт msgid "You must type the same email each time." msgstr "Вы должны вводить один и тот же адрес электронной почты." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Указанный основной адрес электронной почты неверен." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Указанный домен электронной почты не утверждён." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Невозможно преобразовать {original} в {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "недопустимое количество" @@ -105,22 +105,22 @@ msgstr "Введите дату" msgid "Invalid decimal value" msgstr "Не верное десятичное значение" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Заметки" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Значение '{name}' отсутствует в формате шаблона" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Предоставленное значение не соответствует требуемому формату: " @@ -164,51 +164,51 @@ msgstr "Удалить HTML теги из этого значения" msgid "Data contains prohibited markdown content" msgstr "Данные содержат недопустимую разметку" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Ошибка соединения" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Сервер ответил неверным кодом статуса" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Произошло исключение" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Сервер ответил неверным значением Контент-Длина" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Изображение слишком большое" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Загрузка изображения превышен максимальный размер" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Удаленный сервер вернул пустой ответ" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "Предоставленный URL не является допустимым файлом изображения" @@ -220,117 +220,121 @@ msgstr "Войти в приложение" msgid "Email" msgstr "Электронная почта" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Вы должны включить двухфакторную аутентификацию, прежде чем делать что-нибудь еще." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Ошибка запуска проверки плагина" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Метаданные должны быть объектом python dict" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Метаданные плагина" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "Поле метаданных JSON для использования внешними плагинами" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Неправильно отформатированный шаблон" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Указан неизвестный ключ формата" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Отсутствует требуемый ключ формата" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Ссылочный идентификатор не может быть пустым" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Ссылка должна соответствовать шаблону {pattern}" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Номер ссылки слишком большой" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Неверный выбор" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Название" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Описание" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Описание (необязательно)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Путь" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Повторяющиеся имена не могут существовать под одним и тем же родителем" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Записи о скидке (необязательно)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Данные штрихкода" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Данные стороннего штрих-кода" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Хэш штрих-кода" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Уникальный хэш данных штрих-кода" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Обнаружен существующий штрих-код" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Ошибка сервера" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Сервер зарегистрировал ошибку." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Должно быть действительным номером" msgid "Currency" msgstr "Валюта" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Выберите валюту из доступных вариантов" @@ -521,11 +525,11 @@ msgstr "Китайский (Упрощенный)" msgid "Chinese (Traditional)" msgstr "Китайский (Традиционный)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "Доступно обновление" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "Доступно обновление для InvenTree" @@ -537,7 +541,7 @@ msgstr "Неверная физическая единица" msgid "Not a valid currency code" msgstr "Неверный код валюты" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Статус заказа" @@ -546,23 +550,23 @@ msgstr "Статус заказа" msgid "Parent Build" msgstr "Родительский заказ на производство" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "Включая варианты" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "Включая варианты" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "Включая варианты" msgid "Part" msgstr "Деталь" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Категория" @@ -593,7 +597,7 @@ msgstr "Категория" msgid "Ancestor Build" msgstr "Родительская сборка" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Назначено мне" @@ -601,11 +605,11 @@ msgstr "Назначено мне" msgid "Assigned To" msgstr "Назначено" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Создано до" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Создано после" @@ -641,99 +645,99 @@ msgstr "Завершено до" msgid "Completed after" msgstr "Завершено после" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "Минимальная дата" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "Максимальная дата" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "Исключить дерево" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Заказ на производство должен быть отменен перед удалением" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Расходник" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Необязательно" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Сборная деталь" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Отслеживается" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Тестируемая" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Невыполненные заказы" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Зарезервировано" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Потреблено" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Доступно" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "В заказе" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Заказ на производство" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Расположение" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "Выход" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Фильтрация по идентификатору исходящей складской позиции. Используйте 'null', чтобы найти несмонтированные элементы сборки." @@ -773,9 +777,9 @@ msgstr "Целевая дата должна быть после даты нач msgid "Build Order Reference" msgstr "Ссылка на заказ на производство" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Ссылка на заказ" msgid "Sales Order to which this build is allocated" msgstr "Заказ на продажу, которому принадлежит этот заказ на производство" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Место хранения комплектующих" @@ -821,7 +825,7 @@ msgstr "Сторонняя сборка" msgid "This build order is fulfilled externally" msgstr "Этот заказ на сборку выполнен сторонней компанией" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Место хранения результата" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Код статуса заказа на производство" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Код партии" @@ -883,8 +887,8 @@ msgstr "Целевая дата завершения" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Целевая дата для заказа на производства. Заказ будет просрочен после этой даты." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Дата завершения" @@ -900,7 +904,7 @@ msgstr "Создано" msgid "User who issued this build order" msgstr "Пользователь, создавший этот заказ на производство" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Приоритет этого заказа на производство" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Код проекта" @@ -962,9 +966,9 @@ msgstr "Продукция не совпадает с заказом на про #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "Количество должно быть больше нуля" @@ -999,7 +1003,7 @@ msgstr "Объект производства" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Количество должно быть 1 для сериализов msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Резервируемое количество ({q}) не должно превышать доступное количество на складе ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Складская позиция перераспределена" @@ -1057,8 +1061,8 @@ msgstr "Складская позиция перераспределена" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Складская позиция" @@ -1082,7 +1086,7 @@ msgstr "Целевая складская позиция" msgid "Build Level" msgstr "Уровень сборки" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Наименование детали" @@ -1139,7 +1143,7 @@ msgstr "Автоматически выделить серийные номер msgid "Automatically allocate required items with matching serial numbers" msgstr "Автоматически зарезервировать необходимые элементы с соответствующими серийными номерами" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Следующие серийные номера уже существуют или недействительны" @@ -1272,7 +1276,7 @@ msgstr "Позиция для производства" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part должна указывать на ту же часть, что и заказ на производство" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "Элемент должен быть в наличии" @@ -1385,8 +1389,8 @@ msgstr "Установить в" msgid "Build" msgstr "Сборка" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Деталь поставщика" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Есть варианты" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "Позиция BOM" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "В производстве" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "Запланировано к сборке" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Внешний склад" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Доступный запас" @@ -1527,31 +1531,31 @@ msgstr "Просроченный заказ сборки" msgid "Build order {bo} is now overdue" msgstr "Заказ на производство {bo} просрочен" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "Ссылка" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "Файл" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "У пользователя нет прав для удаления этих вложений" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "У пользователя нет прав на удаление этого вложения" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "Список выбора заблокирован" @@ -1571,8 +1575,8 @@ msgstr "Не указаны действительные коды валют" msgid "No plugin" msgstr "Нет плагина" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "Строка ключа должна быть уникальной" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Пользователь" @@ -1654,8 +1658,8 @@ msgstr "Пользователь" msgid "Price break quantity" msgstr "Скидка распространяется на заданное количество" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Цена" @@ -1677,8 +1681,8 @@ msgstr "Имя для этого веб-хука" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Активный" @@ -1686,7 +1690,7 @@ msgstr "Активный" msgid "Is this webhook active" msgstr "Этот веб-хук активен?" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Токен" @@ -1756,7 +1760,7 @@ msgstr "Заголовок" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "Возможные варианты этого параметра (ра msgid "Selection list for this parameter" msgstr "Список выбора для этого параметра" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Включено" @@ -2204,8 +2208,8 @@ msgstr "ID модели" msgid "ID of the target model for this parameter" msgstr "ID целевой модели для этого параметра" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Шаблон" @@ -2262,7 +2266,7 @@ msgstr "Дата и время сканирования штрих-кода" msgid "URL endpoint which processed the barcode" msgstr "URL-адрес, обработавший штрихкод" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Контекст" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "Цепочки электронной почты" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Ключ" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} отменен" msgid "A order that is assigned to you was canceled" msgstr "Заказ, назначенный вам, был отменён" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Полученные элементы" @@ -2524,7 +2528,7 @@ msgstr "Имя файла" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "Тип модели" @@ -2914,8 +2918,8 @@ msgstr "По умолчанию детали являются шаблонами msgid "Parts can be assembled from other components by default" msgstr "По умолчанию детали могут быть собраны из других компонентов" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Компонент" @@ -2931,7 +2935,7 @@ msgstr "Можно купить" msgid "Parts are purchaseable by default" msgstr "По умолчанию детали являются отслеживаемыми" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Можно продавать" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "Журнал ошибок, которые возникают при создании отчетов" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Размер страницы" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "Все модели" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "Не указан тип модели вложения" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "Недопустимый тип модели вложения" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "Минимальное количество знаков не может быть больше максимального" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "Максимальное количество знаков не может быть меньше минимального" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Пустой домен не допускается." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Недопустимое доменное имя: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "Значение должно быть в верхнем регистре" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "Значение должно быть допустимым идентификатором переменной" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "Поставщик активен" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Производитель" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Компания" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Электронная почта контакта" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Контакт" @@ -4297,7 +4301,7 @@ msgstr "Налоговый идентификатор" msgid "Company Tax ID" msgstr "Налоговый идентификатор компании" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Адрес" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "Ссылка на адресную информацию (внешняя)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Производитель детали" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Выберите производителя" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "Артикул производителя" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "Связанная деталь производителя должна ссылаться на ту же базовую деталь" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Поставщик" @@ -4448,7 +4452,7 @@ msgstr "Поставщик" msgid "Select supplier" msgstr "Выберите поставщика" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Артикул поставщика" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Минимальная плата (например, складская)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Упаковка" @@ -4533,7 +4537,7 @@ msgstr "Валюта по умолчанию для этого поставщи msgid "Company Name" msgstr "Название компании" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "На складе" @@ -4722,7 +4726,7 @@ msgstr "Исходные данные строки" msgid "Errors" msgstr "Ошибки" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Корректный" @@ -4838,7 +4842,7 @@ msgstr "Количество копий для печати каждой эти msgid "Connected" msgstr "Подключен" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Неизвестно" @@ -4942,7 +4946,7 @@ msgstr "Ключ свойства" msgid "Value of the property" msgstr "Значение свойства" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Группа" @@ -4966,118 +4970,118 @@ msgstr "Максимальный прогресс" msgid "Maximum value for progress type, required if type=progress" msgstr "Максимальное значение для типа прогресса, требуется, если тип=progress" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Ссылка на заказ" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "Невыполненный" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "Есть код проекта" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Создал" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "Создано до" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "Создано после" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "Есть дата начала" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "Дата начала до" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "Дата начала после" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "Есть целевая дата" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "Целевая дата до" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "Целевая дата после" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "Имеет цену" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "Завершено до" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "Завершено после" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "Сторонний заказ на сборку" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Заказ" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "Заказ выполнен" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Внутренняя деталь" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "Заказ в ожидании" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Завершённые" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "Есть отгрузка" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Заказ на закупку" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Заказ на закупку" msgid "Sales Order" msgstr "Заказ на продажу" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "Заказ на возврат" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "Адрес не соответствует выбранной компа msgid "Order description (optional)" msgstr "Описание заказа (дополнительно)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Выберите код проекта для этого заказа" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Ссылка на внешнюю страницу" @@ -5151,7 +5155,7 @@ msgstr "Начальная дата" msgid "Scheduled start date for this order" msgstr "Запланированная начальная дата этого заказа" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Целевая дата" @@ -5184,487 +5188,487 @@ msgstr "Контактное лицо по данному заказу" msgid "Company address for this order" msgstr "Адрес компании по этому заказу" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Ссылка на заказ" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Статус" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Статус заказа на закупку" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Компания, в которой детали заказываются" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Номер у поставщика" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Номер заказа у поставщика" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "получил" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "Дата завершения заказа" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Место хранения" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "Место хранения для полученных позиций" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "Поставщик детали должен совпадать с поставщиком заказа на закупку" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "Позиция не соответствует заказу на закупку" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "В позиции отсутствует связанная деталь" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "Количество должно быть положительным числом" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Покупатель" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Компания, которой детали продаются" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "Статус заказа на продажу" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Ссылка клиента" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Код ссылки на заказ клиента" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Дата отгрузки" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "Отправлено" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "Заказ уже выполнен" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "Заказ уже отменен" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Только открытый заказ может быть отмечен как завершённый" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Заказ не может быть завершён, так как есть незавершённые отгрузки" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "Заказ не может быть завершён, так как есть незавершённые распределения" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "Заказ не может быть завершён, так как есть незавершённые позиции" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "Заказ заблокирован и не может быть изменён" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Количество" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Номер позиции" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Записи о позиции" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Целевая дата этой позиции (оставьте пустой, чтобы использовать целевую дату заказа)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Описание позиции (необязательно)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "Дополнительный контекст для этой строки" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Цена за единицу" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "Позиция заказа на закупку" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "Поставляемая деталь должна соответствовать поставщику" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "Заказ на сборку должен быть отмечен как внешний" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "Заказы на сборку могут быть связаны только со сборочными деталями" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "Деталь заказа на сборку должна соответствовать детали позиции" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Деталь поставщика" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Получено" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Количество полученных предметов" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Закупочная цена" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Закупочная цена" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "Внешний заказ на сборку, который будет выполнен этой позицией" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "Дополнительная позиция заказа на закупку" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "Позиция заказа на продажу" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "Только продаваемые детали могут быть назначены заказу на продажу" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Цена продажи" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Цена последней продажи" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Доставлен" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Отгруженное кол-во" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "Отгрузка заказа на продажу" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "Адрес отгрузки должен соответствовать клиенту" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "Адрес доставки для этой отгрузки" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Дата отправления" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Дата доставки" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Дата доставки отгрузки" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Проверн" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Пользователь, проверивший эту отгрузку" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Отправление" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Номер отправления" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Номер отслеживания" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Информация об отслеживании доставки" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Номер счета" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Номер ссылки на связанную накладную" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "Отгрузка уже отправлена" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "Отправка не имеет зарезервированных складских позиций" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "Отгрузка должна быть проверена, прежде чем её можно завершить" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "Дополнительная позиция заказа на продажу" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "Распределение заказа на продажу" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "Складская позиция не была назначена" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "Невозможно зарезервировать складскую позицию в позицию другой детали" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "Невозможно распределить запас к позиции без детали" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Количество распределения не может превышать количество на складе" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Резервируемое количество должно быть больше нуля" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "Количество должно быть 1 для сериализированных складских позиций" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "Заказ на продажу не соответствует отгрузке" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "Отгрузка не соответствует заказу на продажу" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Строка" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Ссылка на отгрузку заказа на продажу" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Элемент" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Выберите складскую позицию для резервирования" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Укажите резервируемое количество" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "Ссылка на заказ на возврат" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Компания, из которой возвращаются товары" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "Статус заказа на возврат" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "Позиция заказа на возврат" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "Необходимо указать складской элемент" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "Количество возврата превышает количество на складе" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "Количество возврата должно быть больше нуля" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "Недопустимое количество для серийного складского элемента" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Выберите позицию, возвращаемую от клиента" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Дата получения" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "Дата возврата" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Результат" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Результат для этой позиции" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Стоимость, связанная с возвратом или ремонтом этой позиции" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "Дополнительная позиция заказа на возврат" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "Копировать дополнительные позиции" msgid "Copy extra line items from the original order" msgstr "Копировать дополнительные позиции из исходного заказа" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Скопировать параметры" @@ -5784,11 +5788,11 @@ msgstr "Объединять элементы" msgid "Merge items with the same part, destination and target date into one line item" msgstr "Объединять в одну позицию элементы, у которых одинаковая деталь, место хранения и целевая дата" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "Артикул" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Внутренний артикул детали" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Введите код партии для поступающих складских позиций" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Истекает" @@ -6056,123 +6060,131 @@ msgstr "Просроченный заказ на возврат" msgid "Return order {ro} is now overdue" msgstr "Заказ на возврат {ro} просрочен" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "Помечено звёздочкой" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "Фильтровать по отмеченным категориям" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Глубина" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "Фильтровать по глубине категории" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "Верхний уровень" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "Фильтровать по категориям верхнего уровня" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "Каскад" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "Включать подкатегории в отфильтрованные результаты" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "Родитель" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "Фильтровать по родительской категории" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "Исключить подкатегории указанной категории" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "Есть результаты" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "Является вариантом" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "Является ревизией" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "Есть ревизии" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "Спецификация валидна" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "Каскадные категории" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "Если включено, включать элементы в дочерних категориях указанной категории" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "Фильтровать по числовому идентификатору категории или литералу 'null'" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "Сборочная деталь активна" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "Отслеживаемая сборочная деталь" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "Сборная деталь тестируется" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "Деталь компонента активна" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "Отслеживаемая деталь компонента" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "Компонент тестируется" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "Сборочная деталь компонента" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "Виртуальная деталь компонента" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "На складе" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "Использования" @@ -6213,7 +6225,7 @@ msgstr "Ключевые слова по умолчанию для детале msgid "Icon" msgstr "Значок" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Значок (необязательно)" @@ -6349,7 +6361,7 @@ msgstr "Ключевые слова для улучшения видимости msgid "Part category" msgstr "Категория" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "Внутренний артикул" @@ -6358,7 +6370,7 @@ msgstr "Внутренний артикул" msgid "Part revision or version number" msgstr "Ревизия или серийный номер детали" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Ревизия" @@ -6382,7 +6394,7 @@ msgstr "Срок действия по умолчанию" msgid "Expiry time (in days) for stock items of this part" msgstr "Срок годности (в днях) для складских позиций этой детали" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Минимальный запас" @@ -6390,7 +6402,7 @@ msgstr "Минимальный запас" msgid "Minimum allowed stock level" msgstr "Минимально допустимый складской запас" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "Суб-деталь" msgid "Select part to be used in BOM" msgstr "Выбрать деталь для использования в BOM" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "Родительская категория" msgid "Parent part category" msgstr "Родительская категория деталей" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Подкатегории" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "Результаты" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "Количество результатов, зарегистрированных по этому шаблону" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Валюта закупки складской позиции" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "Файл не является изображением" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Оригинальная деталь" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Выберите исходную деталь для копирования" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Копировать Изображение" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Копировать изображение из исходной детали" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Скопировать BOM" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Копировать спецификацию из исходной детали" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Копировать данные параметров из исходной детали" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Копировать Записи" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "Скопировать записи из оригинальной детали" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "Копировать тесты" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "Копировать шаблоны тестов из исходной детали" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Начальное количество на складе" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Задайте начальное количество этой детали на складе. Если количество равно 0, складская позиция не будет добавлена." -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "Начальное местоположение запаса" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "Укажите начальное местоположение запаса для этой детали" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Артикул производителя" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "Выбранная компания не является допустимым поставщиком" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "Выбранная компания не является допустимым производителем" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "Деталь производителя с данным артикулом уже существует" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "Деталь поставщика с данным артикулом уже существует" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Название категории" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "Производится" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "Количество этой детали, находящееся в производстве" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "Оставшееся количество этой детали, запланированное к сборке" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Складские позиции" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "Ревизии" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Общий запас" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "Нераспределённый запас" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "Запас вариантов" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Дублировать деталь" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "Копировать начальные данные из другой детали" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Начальный запас" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Создавать деталь с начальным количеством на складе" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Информация о поставщике" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Добавить начальную информацию о поставщике для этой детали" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Копировать параметры категории" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "Копировать шаблоны параметров из выбранной категории деталей" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Существующее изображение" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "Имя файла существующего изображения детали" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "Файл изображения не существует" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Проверить всю спецификацию" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Можно произвести" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "Требуется для заказов на сборку" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "Выделено для заказов на сборку" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "Требуется для заказов на продажу" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "Выделено для заказов на продажу" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "Внутренний артикул детали" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "Описание детали" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "Выберите деталь (и любые её варианты) для которой сгенерировать информацию об инвентаризации" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "Выберите категорию (и любые её подкатегории) для которой сгенерировать информацию об инвентаризации" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "Выберите склад, чтобы включить все детали в наличии в указанном складе (включая подразделы)" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "Создать записи инвентаризации" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "Сохранить записи инвентаризации для выбранных деталей" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "Создать отчет" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "Создать отчёт инвентаризации для выбранных деталей" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Минимальная цена" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Переопределить рассчитанное значение минимальной цены" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Валюта минимальной цены" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Максимальная цена" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "Переопределить рассчитанное значение максимальной цены" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Валюта максимальной цены" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Обновить" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "Обновить цены для этой детали" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Не удалось конвертировать из предоставленных валют в {default_currency}" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "Минимальная цена не должна превышать максимальную цену" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "Максимальная цена не должна быть меньше минимальной" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "Выберите родительскую сборку" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "Выберите деталь, которая является компонентом" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "Выберите деталь, из которой копировать спецификацию" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Удалить существующие данные" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Удалить существующие пункты спецификации перед копированием" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Включая наследуемые" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Включать пункты спецификации, унаследованные от шаблонных деталей" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Пропустить некорректные строки" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Включите эту опцию, чтобы пропускать недопустимые строки" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Копировать детали-заменители" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "Копировать детали-заменители при дублировании пунктов спецификации" @@ -7326,91 +7338,91 @@ msgstr "Действие не указано" msgid "No matching action found" msgstr "Соответствующее действие не найдено" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "Не найдено совпадений для данных штрих-кода" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Найдено совпадение по штрих-коду" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "Модель не поддерживается" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "Экземпляр модели не найден" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "Штрихкод соответствует существующему элементу" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "Не найдено соответствующих данных детали" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "Не найдено соответствующих поставляемых деталей" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "Найдено несколько соответствующих поставляемых деталей" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "Плагин, соответствующий данным штрихкода, не найден" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "Соответствующая поставляемая деталь" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "Предмет уже был получен" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "Нет совпадения плагина для штрихкода поставщика" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "Найдено несколько соответствующих позиций" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "Не найдено соответствующей позиции" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "Заказ на продажу не указан" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "Штрих-код не соответствует существующим складским позициям" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "Складская позиция не соответствует позиции" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "Недостаточно запаса" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "Складская позиция зарезервирована заказом на продажу" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "Недостаточно информации" @@ -7992,7 +8004,7 @@ msgstr "Граница" msgid "Print a border around each label" msgstr "Печатать рамку вокруг каждой этикетки" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "Альбомная" @@ -8481,136 +8493,136 @@ msgstr "Правовая информация" msgid "Letter" msgstr "Письмо" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "Файл шаблона с таким именем уже существует" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Название шаблона" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "Описание шаблона" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "Номер ревизии (автоматически)" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "Прикреплять к модели при печати" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "Сохранять отчёт как вложение к связанному экземпляру модели при печати" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Шаблон имени файла" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "Шаблон для создания имён файлов" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "Шаблон включён" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "Тип модели шаблона" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Фильтры" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "Фильтры запроса шаблона (список ключ=значение через запятую)" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "Файл шаблона" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "Размер страницы для PDF-отчётов" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "Рендерить отчёт в альбомной ориентации" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "Объединить" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "Рендерить один отчёт по выбранным элементам" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "Отчёт, сгенерированный из шаблона {self.name}" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "Синтаксическая ошибка в шаблоне" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "Ошибка при рендеринге отчёта" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "Ошибка при генерации отчёта" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "Ошибка при объединении выводов отчётов" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Ширина [мм]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Ширина этикетки, задаётся в миллиметрах" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Высота [мм]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Высота этикетки, задаётся в миллиметрах" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "Ошибка при печати этикеток" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Сниппет" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Файл фрагмента отчёта" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Описание файла сниппета" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Объект" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Файл ресурса отчёта" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Описание медиафайла" @@ -8766,200 +8778,200 @@ msgstr "Нет результата" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "Файл изображения не найден" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "Тег part_image требует экземпляр детали" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "Тег company_image требует экземпляр компании" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "Фильтровать по глубине местоположения" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "Фильтровать по местоположениям верхнего уровня" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "Включать подместоположения в отфильтрованные результаты" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "Основной склад" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "Фильтровать по родительскому местоположению" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "Название детали (без учёта регистра)" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "Название детали содержит (без учёта регистра)" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "Название детали (regex)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "IPN детали (без учёта регистра)" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "IPN детали содержит (без учёта регистра)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "IPN детали (regex)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "Минимальный запас" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "Максимальный запас" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Код статуса" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Внешнее местоположение" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "Израсходовано для заказов на сборку" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "Установлено в другом складе" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "Древо Деталей" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "Обновлено до" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "Обновлено после" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "Инвентаризация до" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "Инвентаризация после" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "Дата истечения до" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "Дата истечения после" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "Залежалый" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "Укажите первичный ключ складского элемента, чтобы исключить этот элемент и всех его потомков" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "Каскад местоположений" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "Если включено, включать элементы в дочерних местоположениях данного местоположения" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "Фильтровать по числовому идентификатору местоположения или литералу 'null'" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "Необходимо указать количество" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "Необходимо предоставить действительную деталь" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "Указанная поставляемая деталь не существует" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "У поставляемой детали определён размер упаковки, но флаг use_pack_size не установлен" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Не нужно указывать серийные номера для неотслеживаемых деталей" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "Включать установленные" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "Если включено, включать результаты тестов для предметов, установленных под данным складским элементом" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "Фильтровать по числовому идентификатору складского элемента" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "Складской элемент с ID {id} не существует" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "Включая варианты деталей" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "После" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "До" @@ -8995,7 +9007,7 @@ msgstr "Выберите владельца" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Складские позиции не могут находиться в структурных местах хранения, но могут находиться в дочерних местах хранения." -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Внешний" @@ -9101,7 +9113,7 @@ msgstr "Выберите соответствующего поставщика msgid "Where is this stock item located?" msgstr "Где находится эта складская позиция?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "Упаковка этой складской позиции хранится в" @@ -9117,7 +9129,7 @@ msgstr "Установлен ли этот элемент в другой эле msgid "Serial number for this item" msgstr "Серийный номер для этого элемента" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Код партии для этой складской позиции" @@ -9234,7 +9246,7 @@ msgstr "Складская позиция в производстве" msgid "Serialized stock cannot be merged" msgstr "Серийные запасы нельзя объединить" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Дублирующие складские элементы" @@ -9398,7 +9410,7 @@ msgstr "Введите серийные номера для новых элем msgid "Supplier Part Number" msgstr "Номер детали поставщика" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Просрочен" @@ -9428,8 +9440,8 @@ msgstr "Складской элемент не предоставлен" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Количество не должно превышать доступный запас ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Целевое место хранения" @@ -9501,127 +9513,127 @@ msgstr "Выберите складские позиции для изменен msgid "No stock items selected" msgstr "Не выбрано ни одной складской позиции" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Места хранения" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "Родительское местоположение запаса" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "Деталь должна быть продаваемой" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "Элемент распределён в заказ на продажу" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "Элемент зарезервирован для заказа на производство" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Покупатель для назначения складских позиций" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "Выбранная компания не является покупателем" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Записи о назначенных запасах" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "Необходимо предоставить список складских позиций" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Заметки об объединении складских позиций" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Разрешить несоответствие поставщиков" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Разрешить объединение складских позиций с различными поставщиками" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Разрешить несоответствие статусов" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Разрешить объединение складских позиций с различными статусами" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "Необходимо предоставить как минимум 2 складские позиции" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "Нет изменений" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Первичный ключ складского элемента" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "Складской элемент отсутствует на складе" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "Складской элемент уже на складе" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "Количество не должно быть отрицательным" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Заметки об изменении склада" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "Объединить с существующим запасом" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "Объединять возвращённые элементы с существующими складскими элементами, если возможно" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "Следующий серийный номер" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "Предыдущий серийный номер" @@ -9919,7 +9931,7 @@ msgstr "Права доступа" msgid "Important dates" msgstr "Важные даты" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "Токен был отозван" @@ -9927,163 +9939,163 @@ msgstr "Токен был отозван" msgid "Token has expired" msgstr "Срок действия токена истёк" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "API токен" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "Токены API" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Название токена" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Название пользовательского токена" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Дата истечения срока действия токена" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Последнее Посещение" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "Последнее время использования токена" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Отозван" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Права доступа" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Вид" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Разрешение на просмотр элементов" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Добавить" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Разрешение на добавление элементов" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Изменить" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Разрешение на редактирование элементов" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Удалить" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Разрешение на удаление элементов" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "Бот" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "Внутренний" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "Гость" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "Язык" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "Предпочтительный язык пользователя" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "Тема" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "Настройки веб-интерфейса в формате JSON — не редактировать вручную!" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "Виджеты" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "Настройки виджетов панели в формате JSON — не редактировать вручную!" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "Отображаемое имя" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "Отображаемое имя пользователя" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "Положение" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "Основное место работы или должность" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "Статусное сообщение пользователя" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "Информация о местоположении пользователя" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "Пользователь активно использует систему" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "Предпочтительная контактная информация пользователя" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "Тип пользователя" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "Какого типа этот пользователь?" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "Организация" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "Основная организация/принадлежность пользователя" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "Основная группа" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "Основная группа для пользователя" diff --git a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po index 19050310a4..cb4904a6a7 100644 --- a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Slovak\n" "Language: sk_SK\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "" @@ -65,11 +65,11 @@ msgstr "" msgid "You must type the same email each time." msgstr "" -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "" @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "" @@ -105,22 +105,22 @@ msgstr "" msgid "Invalid decimal value" msgstr "" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "" @@ -164,51 +164,51 @@ msgstr "" msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "" @@ -220,117 +220,121 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "" msgid "Currency" msgstr "" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "" @@ -521,11 +525,11 @@ msgstr "" msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "" @@ -546,23 +550,23 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "" @@ -593,7 +597,7 @@ msgstr "" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "" @@ -601,11 +605,11 @@ msgstr "" msgid "Assigned To" msgstr "" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "" @@ -883,8 +887,8 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "" @@ -900,7 +904,7 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "" @@ -962,9 +966,9 @@ msgstr "" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "" @@ -999,7 +1003,7 @@ msgstr "" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "" @@ -1057,8 +1061,8 @@ msgstr "" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "" @@ -1082,7 +1086,7 @@ msgstr "" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "" @@ -1139,7 +1143,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "" @@ -1527,31 +1531,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "" @@ -1654,8 +1658,8 @@ msgstr "" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "" @@ -1677,8 +1681,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "" @@ -1686,7 +1690,7 @@ msgstr "" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "" @@ -1756,7 +1760,7 @@ msgstr "" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "" @@ -2430,7 +2434,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2524,7 +2528,7 @@ msgstr "" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "" @@ -2931,7 +2935,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "" @@ -4448,7 +4452,7 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4533,7 +4537,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "" msgid "Sales Order" msgstr "" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "" @@ -6382,7 +6394,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "" @@ -6390,7 +6402,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8766,200 +8778,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po index 6e7a401493..efbab5b512 100644 --- a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Language: sl_SI\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API vmesnik ni najden" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Uporabnik nima dovoljenja pogleda tega modela" @@ -65,11 +65,11 @@ msgstr "Potrdite e-pošto" msgid "You must type the same email each time." msgstr "E-pošti se morata ujemati" -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Podana epošta ni veljavna." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Domena epošte ni podprta." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Ni mogoče pretvoriti {original} v {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Podana napačna količina" @@ -105,22 +105,22 @@ msgstr "Vnesi datum" msgid "Invalid decimal value" msgstr "" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Zapiski" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Vrednost '{name}' ni v predpisanem formatu" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Podana vrednost se ujema s predpisanim vzorcem: " @@ -164,51 +164,51 @@ msgstr "Odstranite oznako HTML iz te vrednosti" msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Napaka povezave" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Odziv serverja: napravilni status kode" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Pojavila se je izjema" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Odziv serverja: napačna dolžina vrednosti" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Prevelika velikost slike" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Prenos slike presegel največjo velikost" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Oddaljeni server vrnil prazen odziv" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "Podani URL ni veljavna slikovna datoteka" @@ -220,117 +220,121 @@ msgstr "" msgid "Email" msgstr "E-pošta" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Napaka pri izvajanju preverjanja vtičnika" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metapodatki morajo biti objekt tipa python dict" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Metapodatki vtičnika" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "Polje metapodatkov JSON za uporabo pri zunanjih vtičnikih" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Nepravilno nastavljen vzorec" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Nastavljen neprepoznan ključ formata" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Manjka obvezen ključ formata" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Referenčno polje ne sme biti prazno" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Referenca se mora ujemati s vzorcem" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Referenčna številka prevelika" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Nedovoljena izbira" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Ime" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Opis (opcijsko)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Pot" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Podvojena imena ne morejo obstajati pod istim nadrejenim elementom" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Markdown opombe (neobvezno)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Podatki čtrne kode" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Podatki črtne kode tretje osebe" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Oznaka črtne kode" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Enolična oznaka podatkov črtne kode" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Črtna koda že obstaja" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Napaka strežnika" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Zaznana napaka na strežniku." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Mora biti veljavna številka" msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Izberite valuto med razpoložljivimi možnostmi" @@ -521,11 +525,11 @@ msgstr "Kitajščina (poenostavljena)" msgid "Chinese (Traditional)" msgstr "Kitajščina (tradicionalno)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "Neveljavna fizična enota" msgid "Not a valid currency code" msgstr "Neveljavna oznaka valute" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "" @@ -546,23 +550,23 @@ msgstr "" msgid "Parent Build" msgstr "Nadrejena izgradnja" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "Del" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "" @@ -593,7 +597,7 @@ msgstr "" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Dodeljeno meni" @@ -601,11 +605,11 @@ msgstr "Dodeljeno meni" msgid "Assigned To" msgstr "Dodeljeno" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Izgradnja mora biti najprej preklicana, nato je lahko izbrisana" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Neobvezno" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Montaža" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Sledi" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Testno" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Dodeljeno" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Na voljo" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Nalog izgradnje" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Referenca naloga izgradnje" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Referenca dobavnica" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Lokacija vira" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Ciljna lokacija" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Koda statusa izgradnje" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Številka serije" @@ -883,8 +887,8 @@ msgstr "Rok dokončanja" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Rok končanja izdelave. Izdelava po tem datumu bo v zamudi po tem datumu." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Datom končanja" @@ -900,7 +904,7 @@ msgstr "Izdal" msgid "User who issued this build order" msgstr "Uporabnik, ki je izdal nalog za izgradnjo" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "" @@ -962,9 +966,9 @@ msgstr "Izgradnja se ne ujema s nalogom izdelave" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "" @@ -999,7 +1003,7 @@ msgstr "" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Količina za zalogo s serijsko številko mora biti 1" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Prestavljena zaloga ({q}) ne sme presegati zaloge ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Preveč zaloge je prestavljene" @@ -1057,8 +1061,8 @@ msgstr "Preveč zaloge je prestavljene" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Postavka zaloge" @@ -1082,7 +1086,7 @@ msgstr "Destinacija postavke zaloge" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "" @@ -1139,7 +1143,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "" @@ -1527,31 +1531,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Uporabnik" @@ -1654,8 +1658,8 @@ msgstr "Uporabnik" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "" @@ -1677,8 +1681,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Aktivno" @@ -1686,7 +1690,7 @@ msgstr "Aktivno" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "" @@ -1756,7 +1760,7 @@ msgstr "" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "" @@ -2430,7 +2434,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2524,7 +2528,7 @@ msgstr "Ime datoteke" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "" @@ -2931,7 +2935,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "" @@ -4448,7 +4452,7 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4533,7 +4537,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "" msgid "Sales Order" msgstr "" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Poslano" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Prestavljena količina mora biti večja od 0" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "" @@ -6382,7 +6394,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "" @@ -6390,7 +6402,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8766,200 +8778,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po index e6aa866f48..b51ac39e8d 100644 --- a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" "Language: sr_CS\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API krajnja tačka nije pronađena" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Lista nevalidiranih stavki" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Korisnik nema dozvolu za pregled ovog modela" @@ -65,11 +65,11 @@ msgstr "Potvrda adrese e-pošte" msgid "You must type the same email each time." msgstr "Svaki put morate upisati istu e-poštu." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Navedena primarna adresa e-pošte nije važeća." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Navedeni domen adrese e-pošte nije prihvaćen." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Nije moguće konvertovati {original} u {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Isporučena nevažeća količina" @@ -105,22 +105,22 @@ msgstr "Unesite datum" msgid "Invalid decimal value" msgstr "Neispravna decimalna vrednost" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Napomene" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Vrednost '{name}' se ne pojavljuje u formatu obrasca" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Navedena vrednost ne odgovara traženom obrascu: " @@ -164,51 +164,51 @@ msgstr "Uklonite HTML oznake iz ove vrednosti" msgid "Data contains prohibited markdown content" msgstr "Podatak sadrži zabranjen jezički sadržaj" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Greška u povezivanju" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Server je odgovorio nevažećim statusnim kodom" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Došlo je do izuzetka" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Server je odgovorio nevažećom vrednošću dužina sadržaja" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Veličina slike je prevelika" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Preuzimanje slike premašilo je maksimalnu veličinu" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Udaljeni server vratio je prazan odgovor" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "Navedeni URL nije važeća slikovna datoteka" @@ -220,117 +220,121 @@ msgstr "Prijavljivanje na aplikaciju" msgid "Email" msgstr "E-Pošta" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Greška prilikom validacije ekstenzije" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metapodaci moraju biti \"python dict\" objekat" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Metapodaci dodatka" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "Polje metapodataka JSON, za korištenje eksternih dodataka" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Neispravno formatiran obrazac" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Naveden je ključ nepoznatog formata" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Nedostaje potreban ključ formata" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Polje za reference ne može biti prazno" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Referenca mora odgovarati traženom obrascu" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Broj reference je predugačak" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Nevažeći izvor" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Ime" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Opis (Opciono)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Putanja" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Dvostruka imena ne mogu postojati pod istom nadredjenom grupom" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Zabeleške (Opciono)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Podaci sa barkoda" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Podaci sa barkoda trećih lica" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Heš barkoda" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Jedinstveni hash barkoda" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Postojeći barkod pronađen" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Greška servera" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Server je zabležio grešku." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Mora biti važeći broj" msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Odaberite valutu među dostupnim opcijama" @@ -521,11 +525,11 @@ msgstr "Kineski (Uprošćeni)" msgid "Chinese (Traditional)" msgstr "Kineski (Tradicionalni)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "Nevažeća jedinica mere" msgid "Not a valid currency code" msgstr "Nevažeći kod valute" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Status naloga" @@ -546,23 +550,23 @@ msgstr "Status naloga" msgid "Parent Build" msgstr "Roditeljski proizvod" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "Uključi varijante" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "Uključi varijante" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "Uključi varijante" msgid "Part" msgstr "Deo" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Kategorija" @@ -593,7 +597,7 @@ msgstr "Kategorija" msgid "Ancestor Build" msgstr "Proizvod predaka" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Dodeljeno meni" @@ -601,11 +605,11 @@ msgstr "Dodeljeno meni" msgid "Assigned To" msgstr "Dodeljeno" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Kreirano pre" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Kreirano nakon" @@ -641,99 +645,99 @@ msgstr "Završeno pre" msgid "Completed after" msgstr "Završeno nakon" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "Ne uključuj stablo" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Proizvod mora biti poništen pre nego što se izbriše" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Potrošni materijal" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Opciono" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Sklapanje" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Praćeno" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Proverljivo" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Neizmirena narudžbina" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Alocirano" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Dostupno" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Po narudžbini" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Nalog za izradu" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Lokacija" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Reference naloga za pravljenje" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Referenca naloga za prodaju" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Lokacija izvora" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Lokacija odredišta" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Kod statusa izgradnje" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Kod serije" @@ -883,8 +887,8 @@ msgstr "Datum ciljanog završetka" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Ciljani datum za završetak izgradnje. Izgradnja će biti u prekoračenju nakon ovog datuma" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Datum završetka" @@ -900,7 +904,7 @@ msgstr "izdato od" msgid "User who issued this build order" msgstr "Korisnik koji je izdao nalog za izgradnju" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Prioritet ovog naloga za izgradnju" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Kod projekta" @@ -962,9 +966,9 @@ msgstr "Izlaz izgradnje se ne slaže sa Nalogom za izgradnju" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "Količina mora biti veća od nule" @@ -999,7 +1003,7 @@ msgstr "Objekat izgradnje" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Količina mora da bude 1 za zalihe koje su serijalizovane" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Alocirana količina ({q}) ne sme da bude veća od količine dostupnih zaliha ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Stavka zaliha je prealocirana" @@ -1057,8 +1061,8 @@ msgstr "Stavka zaliha je prealocirana" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Stavka zaliha" @@ -1082,7 +1086,7 @@ msgstr "Stavka zaliha odredišta" msgid "Build Level" msgstr "Nivo izgradnje" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Ime dela" @@ -1139,7 +1143,7 @@ msgstr "Automatski alociraj serijske brojeve" msgid "Automatically allocate required items with matching serial numbers" msgstr "Automatski alociraj tražene stavke sa odgovarajućim serijskim brojevima" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Sledeći serijski brojevi već postoje ili su neispravni" @@ -1272,7 +1276,7 @@ msgstr "Stavka porudžbine za izradu" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part mora da se referencira istom delu kao u nalogu za izgradnju" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "Stavka mora da bude u zalihama" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Deo dobavljača" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Dozvoli varijante" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "BOM stavka" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "U proizvodnji" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Spoljašnje zalihe" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Dostupne zalihe" @@ -1527,31 +1531,31 @@ msgstr "Prekoračeni nalog za izgradnju" msgid "Build order {bo} is now overdue" msgstr "Nalog za izgradnju {bo} je sada prekoračen" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "je link" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "je datoteka" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "Korisnik nema potrebne dozvole da bi izbrisao ove atačmente" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "Korisnik nema dozvolu da izbriše ovaj atačment" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "Lista odabira je zaključana" @@ -1571,8 +1575,8 @@ msgstr "Nisu obezbeđeni ispravni kodovi valuta" msgid "No plugin" msgstr "Nema dodataka" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "Tekstualni ključ mora da bude jedinstven" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Korisnik" @@ -1654,8 +1658,8 @@ msgstr "Korisnik" msgid "Price break quantity" msgstr "Prelomna količina cene" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Cena" @@ -1677,8 +1681,8 @@ msgstr "Ime ovog zahteva za izmenu stranice" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Aktivan" @@ -1686,7 +1690,7 @@ msgstr "Aktivan" msgid "Is this webhook active" msgstr "Da li je ovaj zahtev za izmenu aktivan?" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Token" @@ -1756,7 +1760,7 @@ msgstr "Naslov" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "Validni izbori za ovaj parametar (razdvojeni zapetom)" msgid "Selection list for this parameter" msgstr "Lista izbora za ovaj parametar" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Omogućen" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Šablon" @@ -2262,7 +2266,7 @@ msgstr "Datum i vreme skeniranja bar koda" msgid "URL endpoint which processed the barcode" msgstr "URL krajnja tačka kojaj je obradila bar kod" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Kontekst" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Ključ" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} poništeno" msgid "A order that is assigned to you was canceled" msgstr "Narudžbina koja je bila dodeljena vama je otkazana" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Stavke primljene" @@ -2524,7 +2528,7 @@ msgstr "Ime datoteke" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "Tip modela" @@ -2914,8 +2918,8 @@ msgstr "Podrazumevano je da su delovi šabloni" msgid "Parts can be assembled from other components by default" msgstr "Podrazumevano je da se delovi mogu sastavljati od drugih komponenti" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Komponenta" @@ -2931,7 +2935,7 @@ msgstr "Može da se kupi" msgid "Parts are purchaseable by default" msgstr "Podrazumevano je da se delovi mogu kupiti" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Može da se proda" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "Greške evidentiranja koje se dese prilikom generisanja izveštaja" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Veličina stranice" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "Nije dostavljen tip modela priloga" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "Nevažeći tip modela priloga" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "Minimalno mesta ne sme biti veće od maksimalno mesta" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "Maksimalno mesta ne sme biti manje od minimalno mesta" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Prazan domen nije dozvoljen." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Nevažeće ime domena: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "Vrednost mora biti napisana velikim slovima" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "Vrednost mora biti važeći identifikator promenljive" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "Dobavljač je aktivan" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Proizvođač" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Kompanija" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Email adresa kontakta" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Kontakt" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Adrese" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "Link za adresne informacije (eksterni)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Deo proizvođača" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Izaberi proizvođača" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "Broj dela proizvođača" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "Povezani delovi dobavljača moraju referencirati isti osnovni deo" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Dobavljač" @@ -4448,7 +4452,7 @@ msgstr "Dobavljač" msgid "Select supplier" msgstr "Izaberi dobavljača" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Jedinica za držanje dobavljačevih zaliha" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimalna naplata (npr. taksa za slaganje)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Pakovanje" @@ -4533,7 +4537,7 @@ msgstr "Podrazumevana valuta koja se koristi za ovog dobavljača" msgid "Company Name" msgstr "Naziv kompanije" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "Na zalihama" @@ -4722,7 +4726,7 @@ msgstr "Originalni podaci vrste" msgid "Errors" msgstr "Greške" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Važeće" @@ -4838,7 +4842,7 @@ msgstr "Broj kopija za štampanje od svakog natpisa" msgid "Connected" msgstr "Konektovano" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Nepoznato" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Grupa" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Referenca naloga" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "Izvanredno" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "Ima šifru projekta" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Kreirano do strane" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "Kreirano pre" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "Kreirano nakon" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "Krajnji datum pre" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "Krajnji datum nakon" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "Ima cenu" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "Završen pre" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "Završen nakon" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Nalog" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "Nalog završen" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Interni deo" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "Nalog na čekanju" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Završeno" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "Ima isporuku" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Nalog za kupovinu" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Nalog za kupovinu" msgid "Sales Order" msgstr "Nalog za prodaju" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "Nalog za vraćanje" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "Opis naloga (opciono)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Izaberi šifru projekta za ovaj nalog" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Link ka eksternoj stranici" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Ciljani datum" @@ -5184,487 +5188,487 @@ msgstr "Lice za kontakt za ovaj nalog" msgid "Company address for this order" msgstr "Adresa kompanije za ovaj nalog" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Referenca naloga" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Status" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Status naloga za kupovinu" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Kompanija od koje su stavke naručene" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Referenca dobavljača" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Referentni kod dobavljača naloga" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "primljeno od strane" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "Datum kada je nalog završen" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Odredište" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "Odredište za primljene stavke" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "Dobavljač dela se mora poklapati sa dobavljačem naloga za kupovinu" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "Stavka porudžbine se ne poklapa sa nalogom za kupovinu" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "Količina mora biti pozitivan broj" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Mušterija" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Kompanija kojoj se prodaju stavke" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "Status naloga za prodaju" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Referenca mušterije" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Referentni kod mušterijinog naloga" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Datum isporuke" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "isporučeno od strane" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "Nalog je već završen" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "Nalog je već otkazan" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Samo otvoren nalog može biti označen kao završen" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Nalog ne može biti završen jer ima nepotpunih isporuka" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "Nalog ne može biti završen jer ima nepotpunih alokacija" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "Nalog ne može biti završen jer ima nezavršenih stavki porudbžine" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Količina stavki" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Referenca stavke porudbžine" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Beleške stavke porudbžine" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Krajnji datum za ovu stavku porudbćine (ostaviti prazno za krajnji datum sa naloga)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Opis stavke porudžbine (opciono)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "Dodatni kontekst za ovu porudžbinu" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Cena jedinice" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "Stavka porudžbine naloga za kupovinu" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "Deo dobavljača se mora poklapati sa dobavljačem" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Deo dobavljača" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Primljeno" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Broj primljenih stavki" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Kupovna cena" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Kupovna cena jedinice" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "Dodatna porudbžina naloga za kupovinu" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "Stavka porudžbine naloga za prodaju" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "Samo delovi koji se mogu prodati mogu biti dodeljeni nalogu za prodaju" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Prodajna cena" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Prodajna cena jedinice" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Poslato" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Isporučena količina" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "Isporuka naloga za prodaju" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Datum isporuke" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Datum dostavljanja" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Datum dostavljanja isporuke" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Provereno od strane" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Korisnik koji je proverio ovu isporuku" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Isporuka" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Broj isporuke" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Broj praćenja" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Informacije o praćenju isporuke" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Broj računa" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Referentni broj za dodeljeni račun" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "Isporuka je već poslata" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "Isporuka nema alocirane stavke sa zaliha" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "Dodatne porudbžine naloga za prodaju" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "Alokacije naloga za prodaju" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "Stavka sa zaliha nije dodeljena" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "Ne mogu se alocirati stavke sa zaliha porudbžini sa drugačijim delom" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "Ne mogu se alocirati zalihe porudbžini bez dela" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Alocirana količina ne sme da pređe količinu zaliha" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Količina alokacije mora da bude veća od nule" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "Količina mora biti 1 za serijalizovane stavke sa zaliha" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "Nalog za prodaju se ne poklapa sa isporukom" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "Isporuka se ne poklapa sa nalogom za prodaju" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Porudbžina" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Referenca isporuke naloga za prodaju" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Stavka" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Izaberi stavku sa zaliha za alokaciju" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Unesi količinu za alokaciju zaliha" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "Referenca naloga za vraćanje" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Kompanija čije stavke su vraćene" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "Status naloga za vraćanje" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "Vrati stavku porudbžine" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "Stavka sa zaliha mora biti određena" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "Količina vraćanja je premašila količinu zaliha" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "Količina vraćanja mora biti veća od nule" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "Nevažeća količina za serijalizovane stavke sa zaliha" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Izaberi stavku za vraćanje od mušterije" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Primljeno datuma" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Ishod" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Ishod za ovu stavku porudžbine" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Trošak asociran sa popravkom ili vraćanjem ove stavke porudžbine" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "Doda" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "Kopiraj dodatne porudžbine" msgid "Copy extra line items from the original order" msgstr "Kopiraj dodatne stavke porudžbine sa originalnog naloga" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Kopiraj parametre" @@ -5784,11 +5788,11 @@ msgstr "Spoj stavke" msgid "Merge items with the same part, destination and target date into one line item" msgstr "Spoj stavke sa istim delom, odredištem i ciljanim datumom u jednu stavku porudžbine" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "Jedinica za praćenje zaliha" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Interni broj dela" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Unesi šifru ture za nadolazeće stavke sa zaliha" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Datum isteka" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "Označeno zvezdicom" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "Filtiraj po kategorijama označenim zvezdicom" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Dubina" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "Filtriraj po dubini kategorije" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "Vrhovni" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "Filtriraj po vrhovnim kategorijama" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "Kaskadno" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "Uključi pod-kategorije u filtriranim rezultatima" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "Nadređen" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "Filtriraj po nadređenoj kategoriji" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "Ne uključuj pod-kategorije pod specifičnom kategorijom" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "Ima rezultate" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "Je revizija" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "Ima revizije" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "Spisak materijala validan" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "Deo sklopa se može testirati" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "Deo komponente se može testirati" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "Koristi" @@ -6213,7 +6225,7 @@ msgstr "Podrazumevane ključne reči za delove ove kategorije" msgid "Icon" msgstr "Ikonica" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Ikonica (opciono)" @@ -6349,7 +6361,7 @@ msgstr "Ključne reči dela da bi se poboljšala vidljivost u rezultatima pretra msgid "Part category" msgstr "Kategorija dela" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "Interni broj dela" @@ -6358,7 +6370,7 @@ msgstr "Interni broj dela" msgid "Part revision or version number" msgstr "Revizija dela ili broj verzije" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Revizija" @@ -6382,7 +6394,7 @@ msgstr "Podrazumevani istek" msgid "Expiry time (in days) for stock items of this part" msgstr "Vreme isteka (u danima) za stavke sa zaliha ovog dela" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Minimalne zalihe" @@ -6390,7 +6402,7 @@ msgstr "Minimalne zalihe" msgid "Minimum allowed stock level" msgstr "Minimalni dozvoljen nivo zaliha" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "Pod-deo" msgid "Select part to be used in BOM" msgstr "Izaberi deo koji će biti korišćen u spisku materijala" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "Nadređena kategorija" msgid "Parent part category" msgstr "Nadređena kategorija dela" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Podkategorije" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "Rezultati" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "Broj rezultata napravljenih na osnovu ovog šablona" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Valuta kupovine za ovu stavku sa zaliha" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Originalni deo" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Izaberi originalni deo za duplikaciju" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Kopiraj sliku" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Kopiraj sliku sa originalnog dela" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Kopiraj spisak materijala" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Kopiraj spisak materijala sa originalnog dela" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Kopiraj parametarske podatke sa originalnog dela" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Kopiraj beleške" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "Kopiraj beleške sa originalnog dela" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Inicijalna količina zaliha" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Odredi inicijalnu količinu zaliha za ovaj deo. Ukoliko je količina nula, neće biti dodate zalihe." -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "Inicijalna lokacija zaliha" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "Odredi inicijalnu lokaciju zaliha za ovaj deo" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Izaberi dobavljača (ostavi prazno za preskakanje)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Izaberi proizvođača (ostavi prazno za preskakanje)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Broj dela proizvođača" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "Izabrana kompanija nije validan dobavljač" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "Izabrana kompanija nije validan proizvođač" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "Deo proizvođača koji se poklapa sa ovim brojem dela proizvođača već postoji" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "Deo dobavljača koji se opklapa sa ovim brojem dela dobavljača već postoji" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Naziv kategorije" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "Izrađivanje" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Stavke sa zaliha" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "Revizije" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Ukupne zalihe" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "Nealocirane zalihe" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "Varijante zaliha" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Dupliraj deo" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "Kopiraj inicijalne podatke od drugog dela" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Početne zalihe" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Kreiraj deo sa početnom količinom zaliha" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Informacije o dobavljaču" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Dodaj inicijalne informacije o dobavljaču za ovaj deo" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Kopiraj parametre kategorije" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "Kopiraj parametarske šablone sa izabrane kategorije dela" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Postojeća slika" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "Ime fajla postojeće slike dela" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "Fajl sa slikom ne postoji" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Validiraj ceo spisak materijala" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Može se izgraditi" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Minimalna cena" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Izmeni izračunatu vrednost za minimalnu cenu" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Minimalna valuta cene" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Maksimalna cena" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "Izmeni izračunatu vrednost maksimalne cene" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Maksimalna valuta cene" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Ažuriraj" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "Ažuriraj cene za ovaj deo" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Nija moguća konverzija iz dostavljen valute u {default_currency}" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "Minimalna cena ne sme biti veća od maksimalne cene" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "Maksimalna cena ne sme biti manja od minimalne cene" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "Izaberi nadređeni sklop" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "Izaberi komponentu dela" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "Izaberi deo sa kog će se kopirati spisak materijala" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Ukloni postojeće podatke" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Ukloni postojeće stavke sa spiska materijala pre kopiranja" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Uključi nasleđeno" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Uključi stavke sa spiska materijala koje su nasleđene od šablonskih delova" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Preskoči nevažeće vrste" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Omogući ovu opciju za preskakanje nevažećih vrsta" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Kopiraj zamenske delove" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "Kopiraj zamenske delove prilikom duplikacije stavki sa spiska materijala" @@ -7326,91 +7338,91 @@ msgstr "Nema određene akcije" msgid "No matching action found" msgstr "Nema poklapajuće akcije" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "Nema poklapanja za podatke sa bar koda" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Pronađeno poklapanje za podatke sa bar koda" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "Model nije podržan" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "Instanca modela nije pronađena" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "Bar kod se poklapa sa postojećom stavkom" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "Nema podudarajućih podataka o delovima" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "Nema pronađenih podudarajućih delova dobavljača" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "Više podudarajućih delova dobavljača pronađeno" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "Nema podudarajućeg plugina za podatke sa bar koda" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "Podudarajući deo dobavljača" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "Stavka je već primljena" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "Nijedan plugin se ne poklapa sa dobavljačevim bar kodom" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "Više pronađenih poklapajućih stavki porudžbine" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "Nema podudarajućih stavki porudbžine pronađenih" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "Nema dostavljenih naloga za prodaju" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "Bar kod se ne poklapa sa postojećom stavkom sa zaliha" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "Stavka sa zaliha se ne podudara sa stavkom porudbžine" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "Nedovoljno dostupnih stavki" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "Stavka alocirana nalogu za prodaju" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "Nema dovoljno informacija" @@ -7992,7 +8004,7 @@ msgstr "Border" msgid "Print a border around each label" msgstr "Štampa border oko svakog natpisa" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "Lendskejp" @@ -8481,136 +8493,136 @@ msgstr "Legal" msgid "Letter" msgstr "Letter" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "Šablonski fajl sa ovim imenom već postoji" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Ime šablona" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "Opis šablona" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "Broj revizija (auto-inkrement)" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "Priloži kao model uz štampanje" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "Sačuvaj izveštaj kao prilog uz uvezanu instancu modela prilikom štampanja" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Šablon imena fajlova" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "Šablon za generisanje imena fajlova" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "Šablon je omogućen" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "Tip ciljanog modela za šablon" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Filteri" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "Filteri upita nad šablonima (lista razdvojena zarezom ključ=vrednost parova)" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "Šablonski fajl" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "Veličina strane za PDF izveštaje" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "Renderuj izveštaj u landscape orijentaciji" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Širina (u milimetrima)" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Širina natpisa, u milimetrima" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Visina (u milimetrima)" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Visina natpisa, u milimetrima" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Isečak" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Izveštaj isečka fajla" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Opis isečka fajla" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Sredstvo" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Izveštaj fajla sredstva" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Opis fajla sredstva" @@ -8766,200 +8778,200 @@ msgstr "Nema rezultata" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "Slika nije pronađena" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "part_image tag zahteva instancu dela" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "company_image tag zahteva instancu kompanije" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "Filtriraj po dubini lokacije" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "Filtriraj po nadređenim lokacijama" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "Uključi podlokacije u filtriranim rezultatima" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "Nadređena lokacija" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "Filtriraj po nadređenoj lokaciji" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "Ime dela" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "Ime dela sadrži" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "Ime dela (regex)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "Interni deo broja" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "Interni deo broja sadrži (osetljivo na velika i mala slova)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "Interni broj dela (regex)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "Minimalne zalihe" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "Maksimalne zalihe" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Statusni kod" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Eksterna lokacija" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "Potrošeno od strane naloga za izradu" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "Instalirano u drugu stavku sa zaliha" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "Stablo dela" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "Ažurirano pre" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "Ažurirano nakon" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "Popis pre" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "Popis nakon" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "Datum isteka pre" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "Datum isteka nakon" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "Zastarelo" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "Količina je neophodna" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "Validan deo mora biti dosavljen" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "Dati dobavljač ne postoji" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Deo dobavljača ima definisanu veličinu pakovanja, ali fleg use_pack_size nije postavljen" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Serijski brojevi ne mogu biti dostavljeni za deo koji nije moguće pratiti" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "Izaberi vlasnika" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Stavke sa zaliha ne mogu biti direktno locirane u strukturnim lokacijama zaliha, ali mogu biti locirane u podređenim lokacijama." -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Eksterna" @@ -9101,7 +9113,7 @@ msgstr "Izaberi odgovarajući deo dobavljača za ovu stavku sa zaliha" msgid "Where is this stock item located?" msgstr "Gde je locirana ova stavka sa zaliha?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "Pakovanje u kom je ova stavka sa zaliha" @@ -9117,7 +9129,7 @@ msgstr "Da li je ova stavka instalirana u drugu stavku?" msgid "Serial number for this item" msgstr "Serijski broj za ovu stavku" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Šifra ture za ovu stavku sa zaliha" @@ -9234,7 +9246,7 @@ msgstr "Stavka sa zaliha je trenutno u produkciji" msgid "Serialized stock cannot be merged" msgstr "Serijalizovane zalihe se ne mogu spojiti" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Dupliraj stavke sa zaliha" @@ -9398,7 +9410,7 @@ msgstr "Unesi serijske brojeve za nove stavke" msgid "Supplier Part Number" msgstr "Dobavljački broj dela" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Isteklo" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Količina ne sme da pređe dostupnu količinu zaliha ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Odredišna lokacija zaliha" @@ -9501,127 +9513,127 @@ msgstr "Izaberi stavke kojoj će se promeniti status" msgid "No stock items selected" msgstr "Nije izabrana stavka" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Podlokacije" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "Lokacija nadređenih zaliha" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "Deo mora biti za prodaju" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "Stavka je alocirana nalogu za prodaju" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "Stavka je alocirana nalogu za izradu" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Mušterija kojoj će se dodeliti stavke sa zaliha" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "Izabrana kompanija nije mušterija" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Beleške dodeljivanja zaliha" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "Lista stavki mora biti dostavljena" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Beleške spajanja zaliha" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Dozvoli neslagajuće dobavljače" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Dozvoli spajanje stavki sa različitim delovima dobavljača" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Dozvoli neslagajući status" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Dozvoli spajanje stavki sa različitim statusnim kodovima" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "Bar dve stavke moraju biti dostavljene" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "Nema promena" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Vrednost primarnog ključa stavke" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "Stavka nije na zalihama" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Beleške transakcija zaliha" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "Dozvole" msgid "Important dates" msgstr "Značajni datumi" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "Token je opozvan" @@ -9927,163 +9939,163 @@ msgstr "Token je opozvan" msgid "Token has expired" msgstr "Token je istekao" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "API token" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "API tokeni" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Naziv tokena" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Prilagođen naziv tokena" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Datum isteka tokena" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Poslednji put aktivan" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "Poslednji put kada je token korišćen" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Opozvano" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Skup dozvola" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Pregledaj" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Dozvola za pregled stavki" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Dodaj" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Dozvola za dodavanje stavki" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Promeni" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Dozvole za izmenu stavki" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Obriši" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Dozvola za brisanje stavki" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po index 2dce19e92b..e9db8a0def 100644 --- a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API-slutpunkt hittades inte" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Användaren har inte behörighet att se denna modell" @@ -65,11 +65,11 @@ msgstr "Bekräfta e-postadress" msgid "You must type the same email each time." msgstr "Du måste ange samma e-post varje gång." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Den angivna primära e-postadressen är inte giltig." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Den angivna e-postdomänen är inte godkänd." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Kunde inte konvertera {original} till {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Ogiltigt antal angivet" @@ -105,22 +105,22 @@ msgstr "Ange datum" msgid "Invalid decimal value" msgstr "" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Anteckningar" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Värdet '{name}' visas inte i mönsterformat" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Det angivna värdet matchar inte det obligatoriska mönstret: " @@ -164,51 +164,51 @@ msgstr "Ta bort HTML-taggar från detta värde" msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Anslutningsfel" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Servern svarade med ogiltig statuskod" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Undantag inträffade" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Servern svarade med ogiltigt innehållslängdsvärde" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Bilden är för stor" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Nedladdning av bilder överskred maximal storlek" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Fjärrservern returnerade tomt svar" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "Angiven URL är inte en giltig bildfil" @@ -220,117 +220,121 @@ msgstr "Logga in på appen" msgid "Email" msgstr "E-postadress" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Du måste aktivera tvåfaktorsautentisering innan du kan göra något annat." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Fel vid validering av plugin" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metadata måste vara ett python dict objekt" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Metadata för plugin" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadata fält, för användning av externa plugins" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Felaktigt formaterat mönster" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Okänd formatnyckel angiven" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Obligatorisk formatnyckel saknas" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Textfältet kan inte lämnas tomt" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Referensen måste matcha obligatoriskt mönster" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Referensnumret är för stort" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Ogiltigt val" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Namn" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Beskrivning" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Beskrivning (valfritt)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Sökväg" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Markdown anteckningar (valfritt)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Streckkodsdata" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Tredje parts streckkodsdata" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Streckkodsdata" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Unik hash med streckkodsdata" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Befintlig streckkod hittades" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Serverfel" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Ett fel har loggats av servern." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Måste vara ett giltigt nummer" msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Välj valuta från tillgängliga alternativ" @@ -521,11 +525,11 @@ msgstr "Kinesiska (Förenklad)" msgid "Chinese (Traditional)" msgstr "Kinesiska (Traditionell)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "Ogiltig fysisk enhet" msgid "Not a valid currency code" msgstr "Inte en giltig valutakod" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Orderstatus" @@ -546,23 +550,23 @@ msgstr "Orderstatus" msgid "Parent Build" msgstr "Föregående tillverkning" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "Inkludera varianter" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "Inkludera varianter" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "Inkludera varianter" msgid "Part" msgstr "Del" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Kategori" @@ -593,7 +597,7 @@ msgstr "Kategori" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "" @@ -601,11 +605,11 @@ msgstr "" msgid "Assigned To" msgstr "Tilldelad till" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Skapad före" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Skapad efter" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Tillverkningen måste avbrytas innan den kan tas bort" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Valfri" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Spårad" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Testbar" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Allokerad" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Konsumerad" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Tillgänglig" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Byggorder" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Plats" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Tillverknings order referens" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Försäljningsorderreferens" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Källa Plats" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Destinationsplats" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Tillverkning statuskod" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Batchkod" @@ -883,8 +887,8 @@ msgstr "Datum för slutförande" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Måldatum för färdigställande. Tillverkningen kommer att förfallas efter detta datum." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Slutförandedatum" @@ -900,7 +904,7 @@ msgstr "Utfärdad av" msgid "User who issued this build order" msgstr "Användare som utfärdade denna tillverknings order" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Projektkod" @@ -962,9 +966,9 @@ msgstr "Byggutgång matchar inte bygg order" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "" @@ -999,7 +1003,7 @@ msgstr "Bygg objekt" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Antal måste vara 1 för serialiserat lager" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Tilldelad kvantitet ({q}) får inte överstiga tillgängligt lagersaldo ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Lagerposten är överallokerad" @@ -1057,8 +1061,8 @@ msgstr "Lagerposten är överallokerad" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Artikel i lager" @@ -1082,7 +1086,7 @@ msgstr "Destination lagervara" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Delnamn" @@ -1139,7 +1143,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Tillåt varianter" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "" @@ -1527,31 +1531,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "Är länk" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "Är fil" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Användare" @@ -1654,8 +1658,8 @@ msgstr "Användare" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Pris" @@ -1677,8 +1681,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Aktiv" @@ -1686,7 +1690,7 @@ msgstr "Aktiv" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "" @@ -1756,7 +1760,7 @@ msgstr "Titel" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Aktiverad" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Mall" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Sammanhang" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "E-posttrådar" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Nyckel" @@ -2430,7 +2434,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2524,7 +2528,7 @@ msgstr "Filnamn" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "Modelltyp" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Komponent" @@ -2931,7 +2935,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Sidstorlek" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Ogiltigt domännamn: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Tillverkare" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Företag" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Kontakt" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Adress" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "MPN" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Leverantör" @@ -4448,7 +4452,7 @@ msgstr "Leverantör" msgid "Select supplier" msgstr "Välj leverantör" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4533,7 +4537,7 @@ msgstr "" msgid "Company Name" msgstr "Företagsnamn" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "I lager" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "Fel" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Giltig" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "Ansluten" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Okänd" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Grupp" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "Har projektkod" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Skapad av" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "Skapad efter" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Intern del" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Slutförd" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "" msgid "Sales Order" msgstr "Försäljningsorder" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5151,7 +5155,7 @@ msgstr "Startdatum" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Måldatum" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Status" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Mål" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Kund" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Skickad" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Leveransdatum" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Kontrollerad av" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Fakturanummer" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Allokeringsmängden måste vara större än noll" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Rad" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Kopiera parametrar" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "SKU" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Djup" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "Har resultat" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "Är variant" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "Använder" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "Ikon" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Ikon (valfritt)" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "Delkategori" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "IPN" @@ -6358,7 +6370,7 @@ msgstr "IPN" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Revision" @@ -6382,7 +6394,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "" @@ -6390,7 +6402,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Underkategorier" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "Resultat" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Originaldel" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Kopiera bild" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "Kopiera test" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Kategorinamn" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "Revisioner" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Uppdatera" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Hoppa över ogiltiga rader" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "Ingen åtgärd specificerad" msgid "No matching action found" msgstr "Ingen matchande åtgärd hittades" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Mallnamn" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Filter" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "Mallfil" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Bredd [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Höjd [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8766,200 +8778,200 @@ msgstr "Inga resultat" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Statuskod" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Extern plats" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "Uppdaterad efter" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "Välj ägare" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "Ingen förändring" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "Behörigheter" msgid "Important dates" msgstr "" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Tokennamn" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Visa" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Lägg till" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Ändra" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Radera" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "Gäst" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "Språk" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "Tema" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "Visningsnamn" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "Användartyp" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "Organisation" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "Primär grupp" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po index 401ceecaf6..1f3c7d3e04 100644 --- a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "ไม่พบ API endpoint" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "" @@ -65,11 +65,11 @@ msgstr "การยืนยันอีเมล" msgid "You must type the same email each time." msgstr "" -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "" @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "ปริมาณสินค้าไม่ถูกต้อง" @@ -105,22 +105,22 @@ msgstr "ป้อนวันที่" msgid "Invalid decimal value" msgstr "" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "หมายเหตุ" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "" @@ -164,51 +164,51 @@ msgstr "" msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "การเชื่อมต่อขัดข้อง" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "ไฟล์รูปภาพมีขนาดใหญ่เกินไป" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "" @@ -220,117 +220,121 @@ msgstr "" msgid "Email" msgstr "อีเมล" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "ข้อมูลเมตาของปลั๊กอิน" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "ชื่อ" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "คำอธิบาย" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "ข้อมูลบาร์โค้ด" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "บาร์โค้ดนี้มีในระบบแล้ว" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "เกิดข้อผิดพลาดที่เซิร์ฟเวอร์" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "ต้องเป็นตัวเลข" msgid "Currency" msgstr "สกุลเงิน" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "" @@ -521,11 +525,11 @@ msgstr "" msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "" @@ -546,23 +550,23 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "" @@ -593,7 +597,7 @@ msgstr "" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "" @@ -601,11 +605,11 @@ msgstr "" msgid "Assigned To" msgstr "" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "สถานที่" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "" @@ -883,8 +887,8 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "" @@ -900,7 +904,7 @@ msgstr "ออกโดย" msgid "User who issued this build order" msgstr "" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "" @@ -962,9 +966,9 @@ msgstr "" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "จำนวนต้องมีค่ามากกว่า 0" @@ -999,7 +1003,7 @@ msgstr "" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "" @@ -1057,8 +1061,8 @@ msgstr "" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "" @@ -1082,7 +1086,7 @@ msgstr "" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "" @@ -1139,7 +1143,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "" @@ -1527,31 +1531,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "ผู้ใช้งาน" @@ -1654,8 +1658,8 @@ msgstr "ผู้ใช้งาน" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "" @@ -1677,8 +1681,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "" @@ -1686,7 +1690,7 @@ msgstr "" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "" @@ -1756,7 +1760,7 @@ msgstr "" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "" @@ -2430,7 +2434,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2524,7 +2528,7 @@ msgstr "ชื่อไฟล์" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "" @@ -2931,7 +2935,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "" @@ -4448,7 +4452,7 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4533,7 +4537,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "สำเร็จแล้ว" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "" msgid "Sales Order" msgstr "" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "สถานะ" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "จัดส่งแล้ว" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "" @@ -6382,7 +6394,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "" @@ -6390,7 +6402,7 @@ msgstr "" msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8766,200 +8778,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po index 4edcd9702b..2be00ab01a 100644 --- a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API uç noktası bulunamadı" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "Toplu işlem için öge listesi sağlanmalıdır" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Ögeler bir liste olarak sağlanmalıdır" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Geçersiz ögeler listesi sağlandı" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "Tüm filtre yalnızca true ile kullanılmalıdır" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "Sağlanan ölçüte uygun bir eşleşme yok" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "Değer verilmemiş" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "Bu alan eşsiz olmalı." -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Kullanıcının bu modeli görüntüleme izni yok" @@ -65,11 +65,11 @@ msgstr "E-posta adresi onayı" msgid "You must type the same email each time." msgstr "Her seferind eaynı e-posta adresini yazmalısınız." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Sağlanan e-posta adresi geçerli değil." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Sağlanan e-posta alanı onaylanmadı." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "{original} birimi {unit} birimine dönüştürülemedi" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Geçersiz veri sağlandı" @@ -105,22 +105,22 @@ msgstr "Tarih giriniz" msgid "Invalid decimal value" msgstr "Geçersiz ondalık değer" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Notlar" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "'{name}' değeri desen formatında yer almıyor" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Sağlanan değer gerekli kalıpla eşleşmiyor: " @@ -164,173 +164,177 @@ msgstr "Bu değerden HTML etiketlerini kaldır" msgid "Data contains prohibited markdown content" msgstr "Veriler yasaklanmış işaretleme içeriği içeriyor" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "Geçersiz URL: ana makina adı yok" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "Geçersiz URL: ana makina adı çözümlenemedi" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "URL özel veya ayrılmış bir IP adresini göstermektedir" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "Çok fazla yeniden yönlendirme" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Bağlantı hatası" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Sunucu geçersiz durum kodu ile cevap verdi" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "İstisna oluştu" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Sunucu geçersiz Content-Length değeriyle yanıt verdi" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Görsel boyutu çok büyük" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Görsel indirme maksimum boyutu aştı" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Uzak sunucu boş cevap döndü" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "Sağlanan URL geçerli bir görsel dosyası değil" #: InvenTree/magic_login.py:31 msgid "Log in to the app" -msgstr "Uygulamaya giriş yapın" +msgstr "Uygulamada oturum aç" #: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197 msgid "Email" msgstr "E-posta" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Başka bir şey yapmadan önce iki faktörlü kimlik doğrulamayı etkinleştirme gerekir." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Eklenti doğrulama sırasında hata oluştu" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metadata, bir python dict nesnesi olmalıdır" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Plugin Metaverileri" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "Harici eklentiler tarafından kullanım için JSON metadata alanı" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Yanlış biçimlendirilmiş desen" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Belirtilen bilinmeyen format anahtarı" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Gerekli format anahtarı eksik" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Referans alanı boş olamaz" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Referans {pattern} deseniyle mutlaka eşleşmeli" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Referans sayısı çok fazla" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Geçersiz seçim" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Adı" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Açıklama" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Açıklama (isteğe bağlı)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Yol" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Aynı kaynak altında birden fazla aynı isim kullanılamaz" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Markdown notları (isteğe bağlı)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Barkod Verisi" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Üçüncü parti barkod verisi" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Barkod Hash" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Barkod verisinin benzersiz hash'i" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Var olan barkod bulundu" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Sunucu Hatası" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Bir hafta sunucu tarafından kayıt edildi." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Geçerli bir numara olmalı" msgid "Currency" msgstr "Para birimi" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Mevcut seçeneklerden para birimini seçin" @@ -521,11 +525,11 @@ msgstr "Çince (Basitleştirilmiş)" msgid "Chinese (Traditional)" msgstr "Çince (Geleneksel)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "Güncelleme mevcut" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "InvenTree için güncelleme mevcut" @@ -537,7 +541,7 @@ msgstr "Geçersiz fiziksel birim" msgid "Not a valid currency code" msgstr "Geçerli bir para birimi kodu değil" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Sipariş Durumu" @@ -546,23 +550,23 @@ msgstr "Sipariş Durumu" msgid "Parent Build" msgstr "Üst Yapım İşi" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "Varyantları Dahil Et" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "Varyantları Dahil Et" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "Varyantları Dahil Et" msgid "Part" msgstr "Parça" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Kategori" @@ -593,7 +597,7 @@ msgstr "Kategori" msgid "Ancestor Build" msgstr "Kök Üretim" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Bana atandı" @@ -601,11 +605,11 @@ msgstr "Bana atandı" msgid "Assigned To" msgstr "Atanılan Kişi" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "Daha önce oluşturuldu" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "Sonra oluşturuldu" @@ -641,99 +645,99 @@ msgstr "Daha önce tamamlandı" msgid "Completed after" msgstr "Sonra tamamlandı" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "En yakın tarih" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "Maksimum Tarih" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "Ağacı Hariç Tut" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Üretim silinemeden önce iptal edilmelidir" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Sarf Malzemesi" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "İsteğe Bağlı" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Montaj" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "İzlenen" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Test Edilebilir" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "Sipariş Açık" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Tahsis Edildi" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Tüketildi" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Mevcut" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Siparişte" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "Üretim bulunamadı" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Üretim Emri" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Konum" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "Çıktı" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Çıktı stok kalemi ID'sine göre filtrele. Takılmamış üretim kalemlerini bulmak için ‘null’ kullan." @@ -773,9 +777,9 @@ msgstr "Hedef tarih başlangıç tarihinden sonra olmalıdır" msgid "Build Order Reference" msgstr "Üretim Emri Referansı" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Satış Emri Referansı" msgid "Sales Order to which this build is allocated" msgstr "Bu üretimin tahsis edildiği satış siparişi" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Kaynak Konum" @@ -821,7 +825,7 @@ msgstr "Harici Üretim" msgid "This build order is fulfilled externally" msgstr "Bu üretim emri harici olarak tamamlanmıştır" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Hedef Konum" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Üretim durum kodu" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Sıra numarası" @@ -883,8 +887,8 @@ msgstr "Hedef tamamlama tarihi" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Üretimin tamamlanması için hedef tarih. Bu tarihten sonra üretim gecikmiş olacak." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Tamamlama tarihi" @@ -900,7 +904,7 @@ msgstr "Düzenleyen" msgid "User who issued this build order" msgstr "Bu üretim emrini düzenleyen kullanıcı" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Bu üretim emrinin önceliği" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Proje Kodu" @@ -962,9 +966,9 @@ msgstr "Üretim çıktısı, üretim emri ile eşleşmiyor" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "Miktar sıfırdan büyük olmalıdır" @@ -999,7 +1003,7 @@ msgstr "Üretim nesnesi" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1034,7 +1038,7 @@ msgstr "Ana parça izlenebilir olarak işaretlendiğinden, üretim kalemi bir ü #: build/models.py:1906 msgid "Selected stock item does not match BOM line" -msgstr "Seçilen stok kalemi BOM satırı ile eşleşmiyor" +msgstr "Seçili stok kalemi BOM satırı ile eşleşmiyor" #: build/models.py:1925 msgid "Allocated quantity must be greater than zero" @@ -1049,7 +1053,7 @@ msgstr "Seri numaralı stok için miktar bir olmalı" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Tahsis edilen miktar ({q}) mevcut stok miktarını ({a}) aşmamalıdır" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Stok kalemi fazladan tahsis edilmiş" @@ -1057,8 +1061,8 @@ msgstr "Stok kalemi fazladan tahsis edilmiş" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Stok Kalemi" @@ -1082,7 +1086,7 @@ msgstr "Hedef stok kalemi" msgid "Build Level" msgstr "Üretim Seviyesi" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Parça Adı" @@ -1139,7 +1143,7 @@ msgstr "Seri Numaralarını Otomatik Tahsis Et" msgid "Automatically allocate required items with matching serial numbers" msgstr "Eşleşen seri numaralı gerekli kalemleri otomatik tahsis et" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Şu seri numaraları zaten varlar veya geçersizler" @@ -1158,7 +1162,7 @@ msgstr "Ayırmaları İptal Et" #: build/serializers.py:495 msgid "Discard any stock allocations for scrapped outputs" -msgstr "Hurdaya ayrılan çıktılar için yapılan tüm stok ayırmalarını iptal et" +msgstr "Hurdaya ayrılan çıktılar için yapılan tüm stok tahsislerini iptal et" #: build/serializers.py:500 msgid "Reason for scrapping build output(s)" @@ -1170,11 +1174,11 @@ msgstr "Tamamlanan üretim çıktıları içi konum" #: build/serializers.py:545 order/serializers.py:2575 msgid "Accept Incomplete Allocation" -msgstr "Tamamlanmamış Ayırmayı Onayla" +msgstr "Eksik Tahsisi Kabul Et" #: build/serializers.py:546 msgid "Complete outputs if stock has not been fully allocated" -msgstr "Stok henüz tamamen tahsis edilmemşse çıktıları tamamla" +msgstr "Stok henüz tamamen tahsis edilmemişse çıktıları tamamla" #: build/serializers.py:635 msgid "Consume Allocated Stock" @@ -1186,7 +1190,7 @@ msgstr "Bu üretim için zaten tahsis edilmiş olan tüm stokları tüket" #: build/serializers.py:642 msgid "Remove Incomplete Outputs" -msgstr "Tamamlanmamış Çıktıları Kaldır" +msgstr "Eksik Çıktıları Kaldır" #: build/serializers.py:643 msgid "Delete any build outputs which have not been completed" @@ -1230,7 +1234,7 @@ msgstr "Gerekli stok tamamen tahsis edilemedi" #: build/serializers.py:736 order/serializers.py:548 order/serializers.py:1746 msgid "Accept Incomplete" -msgstr "Tamamlanmamış Kabul et" +msgstr "Eksik Kabul et" #: build/serializers.py:738 msgid "Accept that the required number of build outputs have not been completed" @@ -1272,7 +1276,7 @@ msgstr "Üretim Satırı" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part üretim emri ile aynı parçayı göstermelidir" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "Kalem stokta olmalıdır" @@ -1291,7 +1295,7 @@ msgstr "İzlenmeyen parçaların tahsisi için üretim çıktısı belirtilemez" #: build/serializers.py:968 order/serializers.py:2015 order/serializers.py:2843 msgid "Allocation items must be provided" -msgstr "Ayrılma ögeleri sağlanmalıdır" +msgstr "Tahsis ögeleri belirtilmelidir" #: build/serializers.py:1032 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" @@ -1303,7 +1307,7 @@ msgstr "Konumu Hariç Tut" #: build/serializers.py:1042 msgid "Exclude stock items from this selected location" -msgstr "Bu seçilen konumdan stok kalemlerini hariç tut" +msgstr "Stok kalemlerini bu seçili konumdan hariç tut" #: build/serializers.py:1047 order/serializers.py:2087 msgid "Interchangeable Stock" @@ -1315,11 +1319,11 @@ msgstr "Birden fazla konumdaki stok kalemleri birbirinin yerine kullanılabilir" #: build/serializers.py:1053 msgid "Substitute Stock" -msgstr "Yedek Stok" +msgstr "Muadil Stok" #: build/serializers.py:1054 msgid "Allow allocation of substitute parts" -msgstr "Yedek parçaların ayrılmasına izin ver" +msgstr "Muadil parçaların tahsis edilmesine izin ver" #: build/serializers.py:1059 msgid "Optional Items" @@ -1347,7 +1351,7 @@ msgstr "Kalem Türü" #: build/serializers.py:1071 msgid "Select item type to auto-allocate" -msgstr "Otomatik tahsis edilecek ürün tipini seçin" +msgstr "Otomatik tahsis edilecek ürün türünü seçin" #: build/serializers.py:1077 order/serializers.py:2096 msgid "Stock Priority" @@ -1355,7 +1359,7 @@ msgstr "Stok Önceliği" #: build/serializers.py:1078 order/serializers.py:2097 msgid "Preferred order in which matching stock items are consumed" -msgstr "Eşleşen stok kalemlerinin tiketilmesinde tercih edilen sıra" +msgstr "Eşleşen stok kalemlerinin tüketilmesinde tercih edilen sıra" #: build/serializers.py:1086 msgid "Build Lines" @@ -1385,8 +1389,8 @@ msgstr "Kur" msgid "Build" msgstr "Yap" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Tedarikçi Parçası" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Varyantlara İzin Ver" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "ML Ögesi" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "Üretimde" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "Üretim için Planlandı" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Harici Stok" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Mevcut Stok" @@ -1527,31 +1531,31 @@ msgstr "Geciken Üretim Emri" msgid "Build order {bo} is now overdue" msgstr "{bo} üretim emri şimdi gecikti" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "Küçük Resim Var" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "Link Olanlar" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "Dosya Olanlar" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "Kullanıcının bu ekleri silmek için izni yok" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "Kullanıcının bu eki düzenleme izni yok" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "Kullanıcının bu eki silmek için izni yok" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "Seçim listesi kilitli" @@ -1571,8 +1575,8 @@ msgstr "Geçerli bir para birimi kodu sağlanmamış" msgid "No plugin" msgstr "Eklenti yok" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "Etiketler" @@ -1645,8 +1649,8 @@ msgstr "Anahtar dizesi benzersiz olmalı" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Kullanıcı" @@ -1654,8 +1658,8 @@ msgstr "Kullanıcı" msgid "Price break quantity" msgstr "Fiyat kademesi miktarı" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Fiyat" @@ -1677,8 +1681,8 @@ msgstr "Bu web kancası için ad" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Aktif" @@ -1686,7 +1690,7 @@ msgstr "Aktif" msgid "Is this webhook active" msgstr "Bu web kancası aktif mi" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Token" @@ -1756,7 +1760,7 @@ msgstr "Başlık" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2006,7 +2010,7 @@ msgstr "Anahtar, referans durumunun mantık anahtarlarından farklı olmalıdır #: common/models.py:2376 msgid "Logical key must be in the logical keys of the reference status" -msgstr "Mantık anahtarı, referans durumunun mantık anahtarları içinde olmalıdır" +msgstr "Mantıksal anahtar, referans durumunun mantıksal anahtarları içinde olmalıdır" #: common/models.py:2383 msgid "Name must be different from the names of the reference status" @@ -2172,7 +2176,7 @@ msgstr "Bu parametre için geçerli seçenekler (virgül ile ayrılmış)" msgid "Selection list for this parameter" msgstr "Bu parametre için seçim listesi" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Etkin" @@ -2204,8 +2208,8 @@ msgstr "Model ID" msgid "ID of the target model for this parameter" msgstr "Bu parametre için hedef modelin ID'si" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Şablon" @@ -2262,7 +2266,7 @@ msgstr "Barkod taramasının tarihi ve saati" msgid "URL endpoint which processed the barcode" msgstr "Barkodu işleyen URL uç noktası" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Bağlam" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "E-posta Konuları" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Anahtar" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} iptal edildi" msgid "A order that is assigned to you was canceled" msgstr "Size atanmış bir emir iptal edildi" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Teslim Alınan Kalemler" @@ -2524,9 +2528,9 @@ msgstr "Dosya adı" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" -msgstr "Model Tipi" +msgstr "Model Türü" #: common/serializers.py:837 msgid "User does not have permission to create or edit attachments for this model" @@ -2614,7 +2618,7 @@ msgstr "Süper kullanıcı afişini göster" #: common/setting/system.py:240 msgid "Show a warning banner in the UI when logged in as superuser" -msgstr "Süper kullanıcı olarak giriş yapınca arayüzde bir uyarı afişi göster" +msgstr "Süper kullanıcı olarak oturum açınca arayüzde bir uyarı afişi göster" #: common/setting/system.py:245 msgid "Show admin banner" @@ -2622,7 +2626,7 @@ msgstr "Yönetici afişi göster" #: common/setting/system.py:246 msgid "Show a warning banner in the UI when logged in as admin" -msgstr "Yönetici olarak giriş yapınca arayüzde bir uyarı afişi göster" +msgstr "Yönetici olarak oturum açınca arayüzde bir uyarı afişi göster" #: common/setting/system.py:251 company/models.py:147 company/models.py:148 msgid "Company name" @@ -2914,8 +2918,8 @@ msgstr "Parçaları varsayılan olan şablondur" msgid "Parts can be assembled from other components by default" msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Bileşen" @@ -2931,7 +2935,7 @@ msgstr "Satın Alınabilir" msgid "Parts are purchaseable by default" msgstr "Parçalar varsayılan olarak satın alınabilir" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Satılabilir" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "Raporlar üretirken oluşan hataları günlüğe kaydet" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Sayfa Boyutu" @@ -3202,11 +3206,11 @@ msgstr "Stok kalemleri için varsayılan parti kodları oluşturma şablonu" #: common/setting/system.py:736 msgid "Stock Expiry" -msgstr "Stok Sona Erme Tarihi" +msgstr "Stok Raf Ömrü" #: common/setting/system.py:737 msgid "Enable stock expiry functionality" -msgstr "Stokun sona erme işlevselliğini etkinleştir" +msgstr "Stokun raf ömrü özelliğini etkinleştir" #: common/setting/system.py:742 msgid "Sell Expired Stock" @@ -3258,7 +3262,7 @@ msgstr "Stok tablolarında takılı stok kalemlerini görüntüle" #: common/setting/system.py:781 msgid "Check BOM when installing items" -msgstr "Kalemlerin kurulumunu yaparken BOM'u kontrol et" +msgstr "Ögeleri takarken BOM'u kontrol et" #: common/setting/system.py:783 msgid "Installed stock items must exist in the BOM for the parent part" @@ -3430,11 +3434,11 @@ msgstr "Aktarım emri referans alanını üretmek için gereken desen" #: common/setting/system.py:947 msgid "Block Incomplete Item Tests" -msgstr "Tamamlanmamış Ürün Testlerini Engelle" +msgstr "Eksik Ürün Testlerini Engelle" #: common/setting/system.py:949 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" -msgstr "Gerekli ürün testleri tamamlanmamışsa, stok kalemlerinin satış siparişlerine tahsis edilmesini engelle" +msgstr "Gerekli ürün testleri eksik ise, stok kalemlerinin satış siparişlerine tahsis edilmesini engelle" #: common/setting/system.py:955 msgid "Purchase Order Reference Pattern" @@ -3474,7 +3478,7 @@ msgstr "Şifremi unuttum seçeneğini etkinleştir" #: common/setting/system.py:993 msgid "Enable password forgot function on the login pages" -msgstr "Giriş yapma sayfasında şifremi unuttum işlevini etkinleştir" +msgstr "Oturum açma sayfasında şifremi unuttum özelliğini etkinleştir" #: common/setting/system.py:998 msgid "Enable registration" @@ -3482,7 +3486,7 @@ msgstr "Kayıt olmayı etkinleştir" #: common/setting/system.py:999 msgid "Enable self-registration for users on the login pages" -msgstr "Giriş yapma sayfalarında kullanıcılar için kendini kaydetme işlevini etkinleştir" +msgstr "Oturum açma sayfalarında kullanıcılar için kendini kaydetme özelliğini etkinleştir" #: common/setting/system.py:1004 msgid "Enable SSO" @@ -3490,7 +3494,7 @@ msgstr "SSO Etkinleştir" #: common/setting/system.py:1005 msgid "Enable SSO on the login pages" -msgstr "Kullanıcı girişi sayfalarında SSO etkinleştir" +msgstr "Oturum açma sayfalarında SSO etkinleştir" #: common/setting/system.py:1010 msgid "Enable SSO registration" @@ -3498,7 +3502,7 @@ msgstr "SSO ile kayıt olmayı etkinleştir" #: common/setting/system.py:1012 msgid "Enable self-registration via SSO for users on the login pages" -msgstr "Giriş yapma sayfalarında kullanıcılar için SSO ile kendini kaydetmeyi etkinleştir" +msgstr "Oturum açma sayfalarında kullanıcılar için SSO ile kendini kaydetmeyi etkinleştir" #: common/setting/system.py:1018 msgid "Enable SSO group sync" @@ -4128,49 +4132,49 @@ msgstr "En Son Seviyede Ögeleri Görüntüle" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "Alt ögesi olmayan konumlar veya kategoriler için alt düzeyler yerine otomatik olarak ögeleri/parçaları göster" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "Tüm modeller" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "Ekli model türü sağlanamadı" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "Geçersiz ek modeli türü" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "Dosya boyutu {max_size} MB maksimum yükleme sınırını aşmaktadır" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "Geçersiz dosya adı" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "Minimum yer sayısı maksimum yer sayısından fazla olamaz" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "Maksimum yer sayısı minimum yer sayısından az olamaz" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Boş bir alan adına izin verilmez." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Geçersiz alan adı: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "Değer büyük harf olmalıdır" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "Değer geçerli bir değişken tanımlayıcısı olmalıdır" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "Tedarikçi Aktif" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Üretici" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Şirket" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "İletişim e-posta adresi" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "İletişim" @@ -4297,7 +4301,7 @@ msgstr "Vergi Numarası" msgid "Company Tax ID" msgstr "Şirket Vergi Numarası" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Adres" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "Adres bilgisine bağlantı (harici)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Üretici Parçası" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Üretici seçin" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "ÜPN" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "Bağlantılı üretici parçası aynı temel parçayı referans almalıdır" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Tedarikçi" @@ -4448,7 +4452,7 @@ msgstr "Tedarikçi" msgid "Select supplier" msgstr "Tedarikçi seçin" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Tedarikçi stok kodu" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimum ücret (örneğin stoklama ücreti)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Paketleme" @@ -4533,7 +4537,7 @@ msgstr "Bu tedarikçi için kullanılan varsayılan para birimi" msgid "Company Name" msgstr "Şirket Adı" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "Stokta" @@ -4643,11 +4647,11 @@ msgstr "Bazı zorunlu alanlar eşleştirilmemiştir" #: importer/models.py:413 msgid "Completed Row Count History" -msgstr "" +msgstr "Tamamlanan Satır Sayısı Geçmişi" #: importer/models.py:416 msgid "Row Count History" -msgstr "" +msgstr "Satır Sayısı Geçmişi" #: importer/models.py:439 msgid "ID" @@ -4679,16 +4683,16 @@ msgstr "Alan hedef modelde bulunmuyor" #: importer/models.py:545 msgid "Selected field is read-only" -msgstr "Seçilen alan salt okunurdur" +msgstr "Seçili alan salt okunurdur" #: importer/models.py:551 msgid "Lookup field can only be set for related (foreign-key) fields" -msgstr "" +msgstr "Arama alanı yalnızca ilişkili (yabancı anahtar) alanlar için ayarlanabilir" #: importer/models.py:559 #, python-brace-format msgid "Invalid lookup field. Valid options are: {options}" -msgstr "" +msgstr "Geçersiz arama alanı. Geçerli seçenekler şunlardır: {options}" #: importer/models.py:566 importer/models.py:653 msgid "Import Session" @@ -4704,11 +4708,11 @@ msgstr "Sütun" #: importer/models.py:578 msgid "Lookup Field" -msgstr "" +msgstr "Arama Alanı" #: importer/models.py:580 msgid "Database field to use for foreign-key lookup. Leave blank for automatic lookup." -msgstr "" +msgstr "Yabancı anahtar araması için kullanılacak veritabanı alanı. Otomatik arama için boş bırakın." #: importer/models.py:657 msgid "Row Index" @@ -4722,13 +4726,13 @@ msgstr "Orijinal satır verisi" msgid "Errors" msgstr "Hatalar" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Geçerli" #: importer/models.py:904 msgid "Multiple matches found for value - please ensure the value is unique, or select a specific lookup field" -msgstr "" +msgstr "Değer için birden fazla eşleşme bulundu – lütfen değerin benzersiz olduğundan emin olun veya belirli bir arama alanı seçin" #: importer/models.py:965 msgid "ID is required for updating existing records." @@ -4838,7 +4842,7 @@ msgstr "Her etiket için yazdırılacak kopya sayısı" msgid "Connected" msgstr "Bağlı" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Bilinmeyen" @@ -4942,7 +4946,7 @@ msgstr "Özelliğin anahtarı" msgid "Value of the property" msgstr "Özelliğin değeri" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Grup" @@ -4966,118 +4970,118 @@ msgstr "Maksimum İlerleme" msgid "Maximum value for progress type, required if type=progress" msgstr "İlerleme türünün maksimum değeri, tür=ilerleme ise gerekli" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Sipariş Referansı" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "Açık" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "Proje Kodu Var" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Oluşturan" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "Öncesinde Oluşturuldu" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "Sonrasında Oluşturuldu" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "Başlangıç Tarihi Var" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "Öncesi Başlangıç Tarihi" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "Sonrası Başlangıç Tarihi" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "Hedef Tarihi Var" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "Öncesi Hedef Tarih" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "Sonrası Hedef Tarih" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "Daha önce güncellendi" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "Güncellendi (den sonra)" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "Fiyatlandırılmış" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "Öncesinde Tamamlandı" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "Sonrasında Tamamlandı" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "Harici Üretim Emri" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Sipariş" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "Sipariş Tamamlandı" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Dahili Parça" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "Sipariş Bekliyor" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Tamamlandı" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "Sevkiyatı Var" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "Sevkiyat bulunamadı" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Satın Alma Siparişi" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Satın Alma Siparişi" msgid "Sales Order" msgstr "Satış Siparişi" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "İade Siparişi" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "Aktarım Emri" @@ -5121,7 +5125,7 @@ msgstr "Bu sipariş kilitli olduğundan değiştirilemez" #: order/models.py:414 msgid "Contact does not match selected company" -msgstr "İletişim bilgileri seçilen şirketle eşleşmiyor" +msgstr "Kişi, seçili şirket ile eşleşmiyor" #: order/models.py:421 msgid "Start date must be before target date" @@ -5129,17 +5133,17 @@ msgstr "Başlangıç tarihi hedef tarihinden önce olmalıdır" #: order/models.py:432 msgid "Address does not match selected company" -msgstr "Adres bilgileri seçilen şirketle eşleşmiyor" +msgstr "Adres, seçili şirket ile eşleşmiyor" #: order/models.py:488 msgid "Order description (optional)" msgstr "Açıklama (isteğe bağlı)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Bu sipariş için proje kodu seçin" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Harici sayfaya bağlantı" @@ -5151,7 +5155,7 @@ msgstr "Başlangıç ​​tarihi" msgid "Scheduled start date for this order" msgstr "Bu üretim emri için planlanan başlangıç tarihi" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Hedeflenen tarih" @@ -5184,487 +5188,487 @@ msgstr "Bu sipariş için ilgili kişi" msgid "Company address for this order" msgstr "Bu sipariş için şirket adresi" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Sipariş referansı" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Durum" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Satın alma siparişi durumu" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Ürünlerin sipariş edilmekte olduğu şirket" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Tedarikçi Referansı" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Tedarikçi siparişi referans kodu" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "teslim alan" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "Siparişin tamamlandığı tarih" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Hedef" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "Teslim alınan kalemler için varış yeri" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "Parça tedarikçisi PO tedarikçisi ile eşleşmelidir" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "Satır, satın alma siparişi ile eşleşmiyor" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "Satırda bağlantılı bir parça eksik" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "Miktar pozitif bir sayı olmalıdır" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "Sanal parçalara seri numaraları atanamaz" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "Her türlü stoka izin ver (seri numaralı veya seri numarasız)" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "Sadece seri numaralı stok" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "Sadece seri numarasız stok" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Müşteri" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Ürünlerin satılmakta olduğu şirket" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "Satış siparişi durumu" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Müşteri Referansı " -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Müşteri siparişi referans kodu" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Sevkiyat Tarihi" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "tarafından sevk edildi" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "Sipariş zaten tamamlandı" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "Sipariş zaten iptal edildi" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Yalnızca açık siparişler tamamlandı olarak işaretlenebilir" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" -msgstr "Tamamlanmamış sevkiyatlar olduğundan sipariş tamamlanamaz" +msgstr "Eksik sevkiyatlar olduğundan sipariş tamamlanamaz" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" -msgstr "Tamamlanmamış tahsisatlar olduğundan sipariş tamamlanamaz" +msgstr "Eksik tahsisler olduğu için sipariş tamamlanamıyor" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "Tamamlanmamış satırlar olduğundan sipariş tamamlanamaz" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "Bu sipariş kilitli olduğundan değiştirilemez" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Kalem miktarı" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "Satır Numarası" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "Bu ögenin satır numarası (isteğe bağlı)" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Satır referansı" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Satır notları" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Bu satır için hedef tarih (siparişin hedef tarihini kullanmak için boş bırakın)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Satır açıklaması (isteğe bağlı)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "Bu satır için ek bağlam" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Birim Fiyat" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "Satın Alma Siparişi Kalemi" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "Tedarikçi parçası tedarikçi ile eşleşmelidir" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "Üretim emri harici olarak işaretlenmelidir" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "Üretim emirleri yalnızca montaj parçalarına bağlanabilir" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "Üretim emri parçası satır parçası ile eşleşmelidir" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "Montaj parçaları için harici bir üretim emri gereklidir" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Tedarikçi parçası" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Teslim Alındı" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Teslim alınan miktar" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Alış Fiyatı" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Birim alış fiyatı" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "Bu kalem tarafından karşılanacak harici Üretim Emri" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "Ek Sipariş Kalemi" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "Satış Siparişi Kalemi" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "Yalnızca satışa uygun parçalar bir satış siparişine atanabilir" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Satış Fiyatı" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Birim satış fiyatı" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Sevk edildi" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Sevk edilen miktar" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "Satış Siparişi Sevkiyatı" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "Sevk adresi müşteri ile eşleşmelidir" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "Bu sevkiyatın sevk adresi" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Sevkiyat tarihi" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Teslimat Tarihi" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Sevkiyatın teslimat tarihi" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Kontrol Eden" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Bu sevkiyatı kontrol eden kullanıcılar" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Sevkiyat" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Sevkiyat numarası" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Takip Numarası" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Sevkiyat takip numarası" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Fatura Numarası" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Fatura referans numarası" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "Sevkiyat zaten sevk edildi" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "Sevkiyatın tahsis edilen stok kalemleri bulunmuyor" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "Sevkiyat tamamlanmadan önce kontrol edilmelidir" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "Ek Sipariş Kalemi" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "Satış Siparişi Tahsisatı" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "Stok kalemi henüz atanmadı" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "Farklı bir parçaya sahip satıra stok kalemi tahsis edilemez" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "Parça içermeyen bir satıra stok tahsis edilemez" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Tahsis miktarı stok miktarını aşamaz" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "Seri numaralı stok kalemi için miktar 1 olmalıdır" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "Satış siparişi sevkiyatla eşleşmiyor" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "Sevkiyat satış siparişiyle eşleşmiyor" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Satır" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Satış siparişinin sevkiyat referansı" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Kalem" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Tahsis edilecek stok kalemini seçin" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Stok tahsis miktarını girin" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "İade Siparişi referansı" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Ürünlerin iade edildiği şirket" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "İade siparişi durumu" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "İade Siparişi Satırı" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "Stok kalemi belirtilmelidir" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "İade miktarı stok miktarını aşıyor" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "İade miktarı sıfırdan büyük olmalıdır" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "Seri numaralı stok kalemi için geçersiz miktar" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Müşteriden iade edilecek ürünü seçin" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Teslim Alma Tarihi" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "Bu iade kaleminin teslim alındığı tarih" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Sonuç" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Bu satırın sonucu" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Bu kalem için iade veya onarımla ilgili maliyet" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "Ek Sipariş Kalemi" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "Aktarım Emri Referansı" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "Aktarım emri durumu" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "Aktarılan kalemlerin kaynağı" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "Aktarılan kalemlerin varış yeri" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "Stoku Tüket" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "Stokları hedef noktaya aktarmak yerine, tahsis edilen stok kaleminden aktarılan miktarı çıkararak \"tüket\"" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "Hedef konum belirlenene kadar emir tamamlanamaz" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "Tümüyle tahsis edilene kadar emir tamamlanamaz" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "Emir Satırını Aktar" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "aktarıldı" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "aktarılan miktar" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "Transfer Emri Tahsisatı" @@ -5692,7 +5696,7 @@ msgstr "Ek Kalemleri Kopyala" msgid "Copy extra line items from the original order" msgstr "Orijinal siparişten ek kalemleri kopyala" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Parametreleri Kopyala" @@ -5714,11 +5718,11 @@ msgstr "Tamamlanan Satırlar" #: order/serializers.py:132 msgid "Custom Status Key" -msgstr "" +msgstr "Özel Durum Anahtarı" #: order/serializers.py:133 msgid "Update order status to a custom value for this logical value" -msgstr "" +msgstr "Bu mantıksal değer için sipariş durumunu özel bir değere güncelle" #: order/serializers.py:199 msgid "Duplicate Order" @@ -5730,15 +5734,15 @@ msgstr "Bu siparişin kopyasını oluşturmak için seçenekleri belirtin" #: order/serializers.py:221 msgid "Custom status key must be an integer" -msgstr "" +msgstr "Özel durum anahtarı bir tamsayı olmalıdır" #: order/serializers.py:228 msgid "Invalid custom status key" -msgstr "" +msgstr "Geçersiz özel durum anahtarı" #: order/serializers.py:231 msgid "Invalid custom status key for this order status" -msgstr "" +msgstr "Bu sipariş durumu için geçersiz özel durum anahtarı" #: order/serializers.py:305 msgid "Invalid order ID" @@ -5784,11 +5788,11 @@ msgstr "Kalemleri Birleştir" msgid "Merge items with the same part, destination and target date into one line item" msgstr "Aynı parça, hedef ve hedef tarihe sahip kalemleri tek bir satırda birleştir" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "SKU" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Dahili Parça Numarası" @@ -5825,13 +5829,13 @@ msgid "Enter batch code for incoming stock items" msgstr "Gelen stok kalemleri için parti numarası girin" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" -msgstr "Son Kullanma Tarihi" +msgstr "Raf Ömrü Tarihi" #: order/serializers.py:911 msgid "Enter expiry date for incoming stock items" -msgstr "Gelen stok kalemleri için son kullanma tarihi girin" +msgstr "Gelen stok kalemleri için raf ömrü tarihi girin" #: order/serializers.py:919 msgid "Enter serial numbers for incoming stock items" @@ -5938,7 +5942,7 @@ msgstr "Stok kalemlerini bu konumdan hariç tut" #: order/serializers.py:2082 msgid "Assign allocations to this shipment" -msgstr "Tahsisatları bu sevkiyata ata" +msgstr "Tahsisleri bu sevkiyata ata" #: order/serializers.py:2089 msgid "Allow stock to be taken from multiple locations to fulfil a single line item" @@ -5950,7 +5954,7 @@ msgstr "Seri Numaralı Stok" #: order/serializers.py:2105 msgid "Control whether serialized stock items are included in auto-allocation" -msgstr "Otomatik tahsisata seri numaralı stok kalemlerinin dahil edilip edilmediğini kontrol et" +msgstr "Otomatik tahsise seri numaralı stok kalemlerinin dahil edilip edilmediğini kontrol et" #: order/serializers.py:2116 msgid "Limit allocation to these line items (leave blank to allocate all lines)" @@ -5986,11 +5990,11 @@ msgstr "Satır para birimi" #: order/serializers.py:2576 msgid "Allow order to complete with incomplete allocations" -msgstr "Üretimin tamamlanmamış tahsisatlarla tamamlanmasına izin ver" +msgstr "Üretimin eksik tahsisler ile tamamlanmasına izin ver" #: order/serializers.py:2586 msgid "Order has incomplete allocations" -msgstr "Üretimin tamamlanmamış tahsisatları var" +msgstr "Üretimin eksik tahsisleri var" #: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16 msgid "Lost" @@ -6056,123 +6060,131 @@ msgstr "Gecikmiş İade Siparişi" msgid "Return order {ro} is now overdue" msgstr "İade siparişi {ro} şimdi gecikti" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "Yıldızlı" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "Yıldızlı kategorilere göre filtrele" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Derinlik" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "Kategori derinliğine göre filtrele" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "Üst Seviye" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "Üst seviye kategorilere göre filtrele" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "Kademeli" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "Filtrelenmiş sonuçlara alt kategorileri dahil et" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "Üst" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "Üst kategoriye göre filtrele" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "Belirtilen kategorideki alt kategorileri hariç tut" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "Sonuçları Olanlar" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "Varyant mı" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "Revizyon mu" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "Revizyonu Olanlar" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "BOM Geçerli" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "Kategorileri Kademele" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "Etkin ise, verilen kategorinin alt kategorilerindeki ögeleri dahil et" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "Sayısal kategori ID veya 'null' sabitine göre filtrele" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "Montaj parçası etkin" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "Montaj parçası takip edilebilir" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "Montaj test edilebilir" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "Montaj parçası kilitlidir" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "Bileşen etkin" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "Bileşen takip edilebilir" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "Bileşen test edilebilir" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "Bileşen bir montaj parçası" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "Bileşen sanal" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "Stok mevcut" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "Kullanımlar" @@ -6213,7 +6225,7 @@ msgstr "Bu kategoridaki parçalar için varsayılan anahtar kelimeler" msgid "Icon" msgstr "Simge" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Simge (isteğe bağlı)" @@ -6349,7 +6361,7 @@ msgstr "Arama sonuçlarında görünürlüğü artırmak için parça anahtar ke msgid "Part category" msgstr "Parça kategorisi" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "DPN" @@ -6358,7 +6370,7 @@ msgstr "DPN" msgid "Part revision or version number" msgstr "Parça revizyon veya versiyon numarası" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Revizyon" @@ -6376,13 +6388,13 @@ msgstr "Bu kalem normalde nerede depolanır?" #: part/models.py:1227 msgid "Default Expiry" -msgstr "Varsayılan Son Kullanma" +msgstr "Varsayılan Raf Ömrü" #: part/models.py:1228 msgid "Expiry time (in days) for stock items of this part" -msgstr "Bu parçanın stok kalemleri için son kullanma süresi (gün olarak)" +msgstr "Bu parçanın stok kalemleri için raf ömrü süresi (gün olarak)" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Minimum Stok" @@ -6390,7 +6402,7 @@ msgstr "Minimum Stok" msgid "Minimum allowed stock level" msgstr "İzin verilen minimum stok düzeyi" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "Maksimum Stok" @@ -6759,7 +6771,7 @@ msgstr "Alt parça" msgid "Select part to be used in BOM" msgstr "BOM'da kullanılacak parçayı seçin" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "Miktar" @@ -6911,351 +6923,351 @@ msgstr "Üst Kategori" msgid "Parent part category" msgstr "Üst parça kategorisi" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Alt kategoriler" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "Sonuçlar" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "Bu şablon ile ilişkilendirilmiş sonuç sayısı" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Bu stok kaleminin alış para birimi" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "Dosya bir görsel değil" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Orijinal Parça" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Kopyalanacak orijinal parçayı seçin" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Görseli Kopyala" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Orijinal parçadan görseli kopyala" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "BOM'u Kopyala" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Orijinal parçadan ürün ağacını kopyala" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Orijinal parçadan parametreleri kopyala" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Notları Kopyala" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "Orijinal parçadan notları kopyala" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "Testleri Kopyala" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "Orijinal parçadan test şablonlarını kopyala" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Başlangıç Stok Miktarı" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Bu parça için başlangıç stok miktarını belirtin. Miktar sıfır ise, stok eklenmez." -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "Başlangıç Stok Konumu" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "Bu parça için başlangıç stok konumunu belirtin" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Tedarikçiyi seçin (veya atlamak için boş bırakın)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Üreticiyi seçin (veya atlamak için boş bırakın)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Üretici parça numarası" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" -msgstr "Seçilen şirket geçerli bir tedarikçi değildir" - -#: part/serializers.py:541 -msgid "Selected company is not a valid manufacturer" -msgstr "Seçilen şirket geçerli bir üretici değildir" +msgstr "Seçili şirket geçerli bir tedarikçi değildir" #: part/serializers.py:552 +msgid "Selected company is not a valid manufacturer" +msgstr "Seçili şirket geçerli bir üretici değildir" + +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "Bu MPN ile eşleşen üretici parçası zaten mevcut" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "Bu SKU ile tedarikçi parçası zaten mevcut" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Kategori Adı" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "Üretiliyor" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "Bu parçanın şu anda üretimde olan miktarı" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "Bu parçanın üretilmesi planlanan açık miktarı" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Stok Kalemleri" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "Revizyonlar" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Toplam Stok" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "Tahsis Edilmemiş Stok" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "Varyant Stoku" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Parçanın Kopyasını Oluştur" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "Başlangıç verisini diğer parçadan kopyala" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Başlangıç Stoku" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Başlangıç stok miktarı ile parça oluştur" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Tedarikçi Bilgileri" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Bu parça için ilk tedarikçi bilgilerini ekleyin" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Kategori Parametrelerini Kopyala" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" -msgstr "Seçilen parça kategorisinden parametre şablonlarını kopyala" +msgstr "Parametre şablonlarını seçili parça kategorisinden kopyala" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Mevcut Görsel" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "Mevcut parça görselinin dosya adı" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "Görsel dosyası mevcut değil" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Tüm ürün ağacını doğrula" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Üretebilir Miktar" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "Üretim Emirleri için Gerekli" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "Üretim Emirlerine Tahsis Edildi" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "Satış Siparişleri için Gerekli" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "Satış Siparişlerine Tahsis Edildi" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "Parça DPN" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "Parça Açıklaması" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "Stok sayımı bilgisi oluşturmak üzere bir parça (ve varsa varyantlarını) seçin" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "Kategorideki (ve alt kategorilerdeki) tüm parçaları dahil etmek için bir kategori seçin" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "Konumda (ve alt konumlarda) stoğu bulunan tüm parçaları dahil etmek için bir konum seçin" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "Stok Sayımı Kayıtları Oluşturun" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" -msgstr "Seçili parçalar için stok sayımı girdilerini kaydedin" +msgstr "Seçili parçalar için stok sayımı girdilerini kaydet" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "Rapor Oluştur" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" -msgstr "Seçili parçalar için stok sayımı raporu oluşturun" +msgstr "Seçili parçalar için bir stok sayımı raporu oluştur" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Minimum Fiyat" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Minimum fiyat için hesaplanan değeri geçersiz kıl" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Minimum fiyat para birimi" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Maksimum Fiyat" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "Maksimum fiyat için hesaplanan değeri geçersiz kıl" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Maksimum fiyat para birimi" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Güncelle" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "Bu parçanın fiyatlandırmasını güncelle" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Sağlanan para birimlerinden {default_currency} para birimine dönüştürülemedi" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "Minimum fiyat maksimum fiyattan yüksek olamaz" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "Maksimum fiyat minimum fiyattan düşük olamaz" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "Bu öge için gereken miktar (birim içerebilir)" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "Üst montajı seçin" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "Bileşeni seçin" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "Geçersiz miktar biçimi" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "BOM'u kopyalanacak parçayı seçin" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Mevcut Verileri Temizle" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Kopyalamadan önce mevcut BOM kalemlerini temizle" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Devralınanı Dahil Et" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Şablon parçalardan devralınan BOM kalemlerini dahil et" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Geçersiz Satırları Atla" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Geçersiz satırları atlamak için bu seçeneği etkinleştir" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Muadil Parçaları Kopyala" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "BOM kalemlerinin kopyasını oluştururken muadil parçaları kopyala" @@ -7274,16 +7286,16 @@ msgstr "Eskimiş stok bildirimi" #: part/tasks.py:78 msgid "You have 1 stock item approaching its expiry date" -msgstr "Geçerlilik tarihi yaklaşan 1 adet stok kaleminiz var" +msgstr "Raf ömrünü doldurmak üzere olan 1 adet stok kaleminiz var" #: part/tasks.py:80 #, python-brace-format msgid "You have {item_count} stock items approaching their expiry dates" -msgstr "Geçerlilik tarihleri yaklaşan {item_count} adet stok kaleminiz var" +msgstr "Raf ömrünü doldurmak üzere olan {item_count} adet stok kaleminiz var" #: part/tasks.py:89 msgid "No expiry date" -msgstr "Geçerlilik tarihi yok" +msgstr "Raf ömrü yok" #: part/tasks.py:96 msgid "Expired {abs(days_diff)} days ago" @@ -7326,91 +7338,91 @@ msgstr "İşlem belirtilmedi" msgid "No matching action found" msgstr "Eşleşen eylem bulunamadı" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "Barkod verisi için eşleşme bulunamadı" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Barkod verisi için eşleşme bulundu" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "Model desteklenmiyor" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "Model örneği bulunamadı" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "Barkod mevcut kalemle eşleşiyor" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "Eşleşen parça verisi bulunamadı" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "Eşleşen tedarikçi parçası verisi bulunamadı" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "Birden çok eşleşen tedarikçi parçası bulundu" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "Barkod verisi için eşleşen eklenti bulunamadı" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "Eşleşen tedarikçi parçası" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "Ürün kalemi zaten teslim alındı" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "Satın alma siparişi bulundu\\rEşleşen Tedarikçi Parçası Yok" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "Tedarikçi Parçası Bulundu\\rEşleşen Satın Alma Siparişi Yok" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "Tedarikçi barkodu için uygun eklenti bulunamadı" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "Birden çok eşleşen satır bulundu" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "Eşleşen satır bulunamadı" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "Satış siparişi sağlanmadı" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "Barkod mevcut bir stok kalemiyle eşleşmiyor" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "Stok kalemi satır kalemiyle eşleşmiyor" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "Mevcut stok yetersiz" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "Stok kalemi satış siparişine tahsis edilmiştir" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "Yetersiz bilgi" @@ -7992,7 +8004,7 @@ msgstr "Kenarlık" msgid "Print a border around each label" msgstr "Her etiketin etrafına kenarlık ekle" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "Yatay" @@ -8481,136 +8493,136 @@ msgstr "Yasal" msgid "Letter" msgstr "Harf" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "Aynı isimde bir şablon zaten mevcut" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Şablon adı" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "Şablon açıklaması" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "Revizyon numarası (otomatik artar)" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "Yazdırmada Modele Ekle" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "Yazdırırken rapor çıktısını bağlantılı model örneğine ek olarak kaydet" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Dosya Adı Deseni" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "Dosya adları oluşturmak için desen" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "Şablon etkinleştirildi" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "Şablon için hedef model türü" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Filtreler" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "Şablon sorgu filtreleri (virgülle ayrılmış anahtar=değer çiftleri listesi)" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "Şablon dosyası" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "PDF raporları için sayfa boyutu" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "Raporu yatay yönde işle" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "Birleştir" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "Seçili ögeler için tek bir rapor oluştur" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "{self.name} şablonundan oluşturulan rapor" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "Şablon sözdizimi hatası" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "Rapor işleme hatası" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "Rapor oluşturma hatası" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "Rapor çıktılarını birleştirme hatası" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Genişlik [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Etiket genişliği mm olarak belirtilmeli" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Yükseklik [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Etiket yüksekliği mm olarak belirtilmeli" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "Etiket yazdırma hatası" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Parçacık" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Rapor parçacık dosyası" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Parçacık dosyası açıklaması" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Kaynak Dosyası" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Rapor kaynak dosyası" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Kaynak dosyası açıklaması" @@ -8766,200 +8778,200 @@ msgstr "Sonuç yok" msgid "Transferred" msgstr "Aktarıldı" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "Geçersiz ortam dosya yolu" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "Geçersiz statik dosya yolu" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "Varlık dosyası bulunamadı" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "Görsel dosyası bulunumadı" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "Görüntü dosyası belirtilmedi" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "part_image etiketi bir parça örneği gerektirir" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "company_image etiketi bir şirket örneği gerektirir" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "Konum derinliğine göre filtrele" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "Üst seviye konumlara göre filtrele" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "Filtrelenmiş sonuçlara alt konumları dahil et" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "Üst Konum" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "Üst konuma göre filtrele" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "Parça adı (büyük/küçük harf duyarlı değildir)" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "Parça adı şunu içerir (büyük/küçük harf duyarlı değildir)" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "Parça adı (regex)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "Parça IPN (büyük/küçük harf duyarlı değildir)" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "Parça IPN şunu içerir (büyük/küçük harf duyarlı değildir)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "Parça IPN (regex)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "Minimum stok" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "Maksimum stok" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Durum Kodu" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Harici Konum" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "Üretim Emrine göre Tüketilenler" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" -msgstr "Başka bir stok kalemine bağlı" +msgstr "Başka bir stok kalemine takılı" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "Parça Ağacı" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "Daha önce güncellendi" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "Güncellendi (den sonra)" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "Stok Sayımı (-dan önce)" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "Stok Sayımı (-dan sonra)" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "Stok Sayım Tarihi Olanlar" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" -msgstr "Son kullanma tarihi öncesi" +msgstr "Raf ömrü şu tarihten önce" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" -msgstr "Son kullanma tarihi sonrası" +msgstr "Raf ömrü şu tarihten sonra" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "Bozuk" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "Bu stok kalemini ve bağlı tüm alt kalemleri hariç tutmak için bir PK girin" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "Konumları alt konumlara uygula" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "Açıksa belirtilen konumun alt konumlarındaki öğeleri de dahil eder" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "Sayısal konum ID'si veya \"null\" değeriyle filtreleyin" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "Miktar gereklidir" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "Geçerli bir parça girilmelidir" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "Belirtilen tedarikçi parçası bulunamadı" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Tedarikçi parçası için paket boyutu tanımlanmış, ancak ‘use_pack_size’ seçeneği etkin değil" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Takibi olmayan bir parça için seri numarası verilemez" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "Takılıyı Dahil Et" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "Aktifse verilen stok kaleminin altına takılı öğelerin test sonuçları da dahil edilir" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "Sayısal Stok Kalemi ID’sine göre Filtrele" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "Belirtilen ID {id} ile bir stok kalemi bulunamadı" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "Varyantları Dahil Et" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "(-den sonra) sil" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "Önce" @@ -8995,7 +9007,7 @@ msgstr "Sahibi Seçin" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Stok kalemleri yapısal stok konumlarına doğrudan yerleştirilemez; ancak alt konumlara yerleştirilebilir." -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Harici" @@ -9033,7 +9045,7 @@ msgstr "Önce en büyük miktar" #: stock/models.py:416 msgid "Soonest expiry date first" -msgstr "Önce en yakın son kullanma tarihi" +msgstr "Önce en yakın raf ömrü" #: stock/models.py:559 msgid "Serialized stock items cannot be deleted" @@ -9101,7 +9113,7 @@ msgstr "Bu stok kalemiyle eşleşen bir tedarikçi parçası seçin" msgid "Where is this stock item located?" msgstr "Bu stok kalemi nerede bulunur?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "Bu stok kaleminin ambalajı şu şekilde saklanmaktadır" @@ -9117,7 +9129,7 @@ msgstr "Bu öge başka bir ögeye takılı mı?" msgid "Serial number for this item" msgstr "Bu öge için seri numarası" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Bu stok kalemine ait parti kodu" @@ -9155,7 +9167,7 @@ msgstr "Hedef satış siparişi" #: stock/models.py:1214 msgid "Expiry date for stock item. Stock will be considered expired after this date" -msgstr "Stok kalemi için son kullanma tarihi. Bu tarihten sonra stok süresi dolmuş kabul edilir" +msgstr "Stok kalemi için raf ömrü tarihi. Bu tarihten sonra stok raf ömrünü doldurmuş kabul edilir" #: stock/models.py:1234 msgid "Date that this stock item was created" @@ -9220,7 +9232,7 @@ msgstr "Stok kalemi başka bir stok kalemine takılıdır" #: stock/models.py:2166 msgid "Stock item contains other items" -msgstr "Bu öge, başka ögeler de içeriyor" +msgstr "Stok kalemi başka kalemleri de içermektedir" #: stock/models.py:2169 msgid "Stock item has been assigned to a customer" @@ -9234,7 +9246,7 @@ msgstr "Stok kalemi şu anda üretim aşamasındadır" msgid "Serialized stock cannot be merged" msgstr "Seri numaralı stok birleştirilemez" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Yinelenen stok kalemleri" @@ -9398,7 +9410,7 @@ msgstr "Yeni kalemler için seri numaraları gir" msgid "Supplier Part Number" msgstr "Tedarikçi Parça Numarası" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Süresi dolmuş" @@ -9428,8 +9440,8 @@ msgstr "Stok kalemi belirtilmedi" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Miktar, mevcut stok miktarını ({q}) aşmamalıdır" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Hedef stok konumu" @@ -9447,7 +9459,7 @@ msgstr "Takılacak stok kalemini seçin" #: stock/serializers.py:840 msgid "Quantity to Install" -msgstr "Miktar" +msgstr "Takılacak Miktar" #: stock/serializers.py:841 msgid "Enter the quantity of items to install" @@ -9467,7 +9479,7 @@ msgstr "Stok kalemi mevcut değil" #: stock/serializers.py:873 msgid "Selected part is not in the Bill of Materials" -msgstr "Seçilen parça malzeme listesinde bulunamadı" +msgstr "Seçili parça ürün ağacında bulunamadı" #: stock/serializers.py:886 msgid "Quantity to install must not exceed available quantity" @@ -9483,7 +9495,7 @@ msgstr "Stok kaleminin dönüştürüleceği parçayı seçin" #: stock/serializers.py:972 msgid "Selected part is not a valid option for conversion" -msgstr "Seçilen parça dönüştürülmeye uygun değil" +msgstr "Seçili parça dönüştürme için geçerli bir seçenek değil" #: stock/serializers.py:989 msgid "Cannot convert stock item with assigned SupplierPart" @@ -9501,127 +9513,127 @@ msgstr "Durumu değiştirilecek stok kalemlerini seçin" msgid "No stock items selected" msgstr "Hiçbir stok kalemi seçilmedi" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Alt konumlar" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "Stok Kalemlerini Sil" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "Bu konumda barındırılan tüm stok kalemlerini sil" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "Alt Konumları Sil" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "Bu konumda barındırılan tüm alt konumları sil" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "Üst stok konumu" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "Parça satılabilir olmalıdır" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "Ürün bir satış siparişine tahsis edilmiştir" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "Kalem, bir transfer emrine tahsis edilmiştir" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "Ürün bir üretim emrine tahsis edilmiştir" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Stok kalemlerini atamak için müşteri" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" -msgstr "Seçilen şirket bir müşteri değil" +msgstr "Seçili şirket bir müşteri değil" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Stok tahsis notları" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "Bir stok kalemleri listesi girilmelidir" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Stok birleştirme notları" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Farklı tedarikçilere izin ver" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Farklı tedarikçi parçalarına sahip stokları birleştirmeye izin ver" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Farklı durumlara sahip kalemlere izin ver" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Farklı durum kodlarına sahip stokları birleştirmeye izin ver" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "En az iki stok kalemi girilmelidir" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "Değişiklik Yok" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Stok Kalemi birincil anahtar (PK) değeri" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "Stok kalemi mevcut stokta yok" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "Stok kalemi zaten stokta" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "Miktar negatif olamaz" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Stok aktarım notları" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "Sayılan kalemler için stok konumunu belirle (isteğe bağlı)" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "Mevcut stokla birleştir" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "Mümkünse iade edilen ürünleri mevcut stoklarla birleştir" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "Sıradaki Seri Numarası" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "Önceki Seri Numarası" @@ -9775,7 +9787,7 @@ msgstr "Kimlik Doğrulaması Başarısız" #: templates/403_csrf.html:12 msgid "You have been logged out from InvenTree." -msgstr "InvenTree hesabınızdan çıkış yaptınız." +msgstr "InvenTree oturumunuzu kapattınız." #: templates/404.html:6 templates/404.html:10 msgid "Page Not Found" @@ -9889,11 +9901,11 @@ msgstr "Bu e-postayı almanızın nedeni, bu parçaya veya parçanın dahil oldu #: templates/email/stale_stock_notification.html:10 msgid "The following stock items are approaching their expiry dates:" -msgstr "Aşağıdaki stok kalemlerinin son kullanma tarihleri yaklaşıyor:" +msgstr "Aşağıdaki stok kalemlerinin raf ömrü dolmak üzere:" #: templates/email/stale_stock_notification.html:23 msgid "Days Until Expiry" -msgstr "Son Kullanmaya Kalan Gün" +msgstr "Raf Ömrü Bitimine Kalan Günler" #: templates/email/stale_stock_notification.html:57 msgid "You are receiving this email because you are subscribed to notifications for these parts" @@ -9919,7 +9931,7 @@ msgstr "Yetkiler" msgid "Important dates" msgstr "Önemli tarihler" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "Anahtar geçerliliği iptal edildi" @@ -9927,163 +9939,163 @@ msgstr "Anahtar geçerliliği iptal edildi" msgid "Token has expired" msgstr "Anahtarın süresi doldu" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "API Anahtarı" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "API Anahtarları" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Anahtar Adı" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Özel anahtar adı" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" -msgstr "Anahtarın son kullanma tarihi" +msgstr "Anahtar geçerlilik tarihi" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Son Görülme" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "Anahtarın en son kullanıldığı tarih" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "İptal Edildi" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "İzinleri ayarla" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Görünüm" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Parçayı görüntüleme izni" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Ekle" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Parça ekleme izni" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Değiştir" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Parçaları düzenleme izni" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Sil" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Parçaları silme izni" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "Bot" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "Dahili" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "Konuk" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "Dil" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "Kullanıcının tercih ettiği dil" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "Tema" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "JSON formatında web kullanıcı arayüzü ayarları - lütfen manuel olarak düzenlemeyin!" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "Kartlar" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "JSON formatında pano kartları ayarları - lütfen manuel olarak düzenlemeyin!" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "Görünen Ad" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "Kullanıcının görünen adı" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "Konumu" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "Ana unvanı veya pozisyonu" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "Kullanıcı durum mesajı" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "Kullanıcı konum bilgisi" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "Kullanıcı, sistemi aktif kullanıyor" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "Kullanıcının tercih edilen iletişim bilgileri" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "Kullanıcı Türü" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "Bu, hangi tür kullanıcı?" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "Organizasyon" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "Kullanıcının ana organizasyonu/ilişkisi" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "Birincil Grup" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "Kullanıcının birincil grubu" @@ -10105,7 +10117,7 @@ msgstr "Satış Siparişleri" #: users/ruleset.py:37 msgid "Return Orders" -msgstr "İade Emirleri" +msgstr "İade Siparişleri" #: users/ruleset.py:38 msgid "Transfer Orders" @@ -10169,11 +10181,11 @@ msgstr "Bu alanı sadece bir yönetici değiştirebilir" #: users/serializers.py:379 msgid "Password" -msgstr "Parola" +msgstr "Şifre" #: users/serializers.py:380 msgid "Password for the user" -msgstr "Kullanıcının parolası" +msgstr "Kullanıcı için şifre" #: users/serializers.py:386 msgid "Override warning" @@ -10201,7 +10213,7 @@ msgstr "Kullanıcı hesabınız oluşturulmuştur." #: users/serializers.py:491 msgid "Please use the password reset function to login" -msgstr "Giriş yapmak için lütfen şifre sıfırlama fonksiyonunu kullanınız" +msgstr "Oturum açmak için lütfen şifre sıfırlama özelliğini kullanın" #: users/serializers.py:497 msgid "Welcome to InvenTree" diff --git a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po index fd63c74624..9b1486de18 100644 --- a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "Кінцева точка API не знайдена" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "Сутності необхідно надати списком" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "Надано неправильний список сутностей" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "Немає сутностей що відповідають наданим критеріям" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "У користувача немає дозволу на перегляд цієї моделі" @@ -65,11 +65,11 @@ msgstr "Підтвердження адреси електронної пошт msgid "You must type the same email each time." msgstr "Ви повинні використовувати щоразу однаковий email." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Вказана основна адреса електронної пошти недійсна." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Наданий домен електронної пошти не затверджено." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Не вдалося перетворити {original} на {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Невірна кількість" @@ -105,22 +105,22 @@ msgstr "Введіть дату" msgid "Invalid decimal value" msgstr "Неправильне десяткове значення" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Нотатки" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Значення '{name}' не відповідає шаблону формату" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Надане значення не відповідає обов'язковому шаблону: " @@ -164,51 +164,51 @@ msgstr "Видаліть HTML тег з цього значення" msgid "Data contains prohibited markdown content" msgstr "Дані містять заборонений вміст у форматі Markdown" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Помилка підключення" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Сервер відправив некоректний код статусу" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Відбулося виключення" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Сервер повернув невірне значення Content-Length" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Розмір зображення занадто великий" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Розмір зображення перевищує максимально дозволений розмір" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Віддалений сервер повернув пусту відповідь" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "" @@ -220,117 +220,121 @@ msgstr "Авторизуватися в додатку" msgid "Email" msgstr "Електронна пошта" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "Необхідно увімкнути двофакторну автентифікацію, перед тим як робити будь-що інше." -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Назва" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Опис" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Опис (опціонально)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Шлях" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Примітки в Markdown (опціонально)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Помилка сервера" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "" msgid "Currency" msgstr "" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "" @@ -521,11 +525,11 @@ msgstr "Китайська (спрощена)" msgid "Chinese (Traditional)" msgstr "Китайська (Традиційна)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "" @@ -546,23 +550,23 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "Деталь" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "" @@ -593,7 +597,7 @@ msgstr "" msgid "Ancestor Build" msgstr "" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "" @@ -601,11 +605,11 @@ msgstr "" msgid "Assigned To" msgstr "" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Розхідний матеріал" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Збірка" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Тестуємо" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Доступно" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Місце" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "" @@ -883,8 +887,8 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "" @@ -900,7 +904,7 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "" @@ -962,9 +966,9 @@ msgstr "" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "" @@ -999,7 +1003,7 @@ msgstr "" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "" @@ -1057,8 +1061,8 @@ msgstr "" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "" @@ -1082,7 +1086,7 @@ msgstr "" msgid "Build Level" msgstr "" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "" @@ -1139,7 +1143,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1272,7 +1276,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Дозволити варіанти" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "У виробництві" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "" @@ -1527,31 +1531,31 @@ msgstr "" msgid "Build order {bo} is now overdue" msgstr "" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "" msgid "No plugin" msgstr "" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Користувач" @@ -1654,8 +1658,8 @@ msgstr "Користувач" msgid "Price break quantity" msgstr "" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Ціна" @@ -1677,8 +1681,8 @@ msgstr "" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "" @@ -1686,7 +1690,7 @@ msgstr "" msgid "Is this webhook active" msgstr "" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "" @@ -1756,7 +1760,7 @@ msgstr "Назва" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "" msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Шаблон" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "" @@ -2430,7 +2434,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "" @@ -2524,7 +2528,7 @@ msgstr "" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Компонент" @@ -2931,7 +2935,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Доступний для продажу" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Виробник" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Позиція виробника" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "" @@ -4448,7 +4452,7 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Мінімальний платіж (напр. комісія за збереження)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "" @@ -4533,7 +4537,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "В наявності" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Дійсно" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Внутрішній компонент" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "" msgid "Sales Order" msgstr "" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "" @@ -5184,487 +5188,487 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "" -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "Глибина" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "Батьківський елемент" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "Фільтр за батьківською категорією" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "" msgid "Icon" msgstr "" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "" @@ -6349,7 +6361,7 @@ msgstr "" msgid "Part category" msgstr "" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Ревізія" @@ -6382,7 +6394,7 @@ msgstr "" msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Мінімальний запас" @@ -6390,7 +6402,7 @@ msgstr "Мінімальний запас" msgid "Minimum allowed stock level" msgstr "Мінімально дозволений рівень запасів" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "" msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "Результати" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Виробничий номер позиції" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Початковий запас" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Наявне зображення" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Мінімальна ціна" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Максимальна ціна" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "" @@ -7326,91 +7338,91 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "" @@ -7992,7 +8004,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "" @@ -8481,136 +8493,136 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "" @@ -8766,200 +8778,200 @@ msgstr "" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "" @@ -9101,7 +9113,7 @@ msgstr "" msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "" @@ -9117,7 +9129,7 @@ msgstr "" msgid "Serial number for this item" msgstr "" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "" @@ -9234,7 +9246,7 @@ msgstr "" msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "" @@ -9398,7 +9410,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "" @@ -9501,127 +9513,127 @@ msgstr "" msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "" @@ -9927,163 +9939,163 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po index 242a3481aa..236cb86277 100644 --- a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "API endpoint không tồn tại" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "Không có dữ liệu được cung cấp" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "Người dùng không được phân quyền xem mẫu này" @@ -65,11 +65,11 @@ msgstr "Xác nhận địa chỉ email" msgid "You must type the same email each time." msgstr "Bạn phải nhập cùng một email mỗi lần." -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "Địa chỉ email chính đã cung cấp không hợp lệ." -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "Miền email được cung cấp không được phê duyệt." @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "Không thể chuyển đổi {original} sang {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "Số lượng cung cấp không hợp lệ" @@ -105,22 +105,22 @@ msgstr "Nhập ngày" msgid "Invalid decimal value" msgstr "" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "Ghi chú" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Giá trị '{name}' không xuất hiện ở định dạng mẫu" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "Giá trị được cung cấp không khớp với mẫu bắt buộc: " @@ -164,51 +164,51 @@ msgstr "Xóa thẻ HTML từ giá trị này" msgid "Data contains prohibited markdown content" msgstr "" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "Lỗi kết nối" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "Máy chủ phản hồi với mã trạng thái không hợp lệ" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "Xảy ra Exception" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "Máy chủ đã phản hồi với giá trị Content-Length không hợp lệ" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "Hình ảnh quá lớn" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "Tải xuống hình ảnh vượt quá kích thước tối đa" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "Máy chủ trả về phản hồi trống" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "URL được cung cấp không phải là tệp hình ảnh hợp lệ" @@ -220,117 +220,121 @@ msgstr "" msgid "Email" msgstr "Email" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "Lỗi xác thực plugin" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Siêu dữ liệu phải là đối tượng từ điển của python" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "Phụ trợ siêu dữ liệu" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "Trường siêu dữ liệu JSON, được sử dụng bởi phụ trợ bên ngoài" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "Mẫu được định dạng không thích hợp" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "Khóa định dạng không rõ ràng đã được chỉ định" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "Thiếu khóa định dạng cần thiết" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "Trường tham chiếu không thể rỗng" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "Tham chiếu phải phù hợp với mẫu yêu cầu" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "Số tham chiếu quá lớn" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "Lựa chọn sai" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "Tên" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "Mô tả" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "Mô tả (tùy chọn)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "Đường dẫn" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "Tên trùng lặp không thể tồn tại trong cùng cấp thư mục" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Ghi chú markdown (không bắt buộc)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "Dữ liệu mã vạch" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "Dữ liệu mã vạch của bên thứ ba" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "Dữ liệu băm mã vạch" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "Chuỗi băm duy nhất của dữ liệu mã vạch" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "Mã vạch đã tồn tại" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "Lỗi máy chủ" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "Lỗi đã được ghi lại bởi máy chủ." -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "Phải là một số hợp lệ" msgid "Currency" msgstr "Tiền tệ" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "Chọn tiền tệ trong các tùy chọn đang có" @@ -521,11 +525,11 @@ msgstr "Tiếng Trung (Giản thể)" msgid "Chinese (Traditional)" msgstr "Tiếng Trung (Phồn thể)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "" @@ -537,7 +541,7 @@ msgstr "Đơn vị vật lý không hợp lệ" msgid "Not a valid currency code" msgstr "Mã tiền tệ không hợp lệ" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "Trạng thái đặt hàng" @@ -546,23 +550,23 @@ msgstr "Trạng thái đặt hàng" msgid "Parent Build" msgstr "Phiên bản cha" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "" msgid "Part" msgstr "Nguyên liệu" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "Danh mục" @@ -593,7 +597,7 @@ msgstr "Danh mục" msgid "Ancestor Build" msgstr "Xây dựng nguồn gốc" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "Đã gán cho tôi" @@ -601,11 +605,11 @@ msgstr "Đã gán cho tôi" msgid "Assigned To" msgstr "Đã gán cho" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "" @@ -641,99 +645,99 @@ msgstr "" msgid "Completed after" msgstr "" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "Bạn dựng phải được hủy bỏ trước khi có thể xóa được" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "Vật tư tiêu hao" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "Tuỳ chọn" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "Lắp ráp" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "Đã theo dõi" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "Có thể kiểm tra" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "Đã cấp phát" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Đã dùng" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Có sẵn" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Bật đơn hàng" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Tạo đơn hàng" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "Địa điểm" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -773,9 +777,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Tham chiếu đơn đặt bản dựng" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "Tham chiếu đơn đặt bản dựng" msgid "Sales Order to which this build is allocated" msgstr "" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "Địa điểm nguồn" @@ -821,7 +825,7 @@ msgstr "" msgid "This build order is fulfilled externally" msgstr "" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "Địa điểm đích" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "Mã trạng thái bản dựng" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "Mã lô hàng" @@ -883,8 +887,8 @@ msgstr "Ngày hoàn thành mục tiêu" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Ngày mục tiêu để hoàn thành bản dựng. Bản dựng sẽ bị quá hạn sau ngày này." -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "Ngày hoàn thành" @@ -900,7 +904,7 @@ msgstr "Cấp bởi" msgid "User who issued this build order" msgstr "Người dùng người đã được phân công cho đơn đặt bản dựng này" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "Độ quan trọng của đơn đặt bản dựng" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "Mã dự án" @@ -962,9 +966,9 @@ msgstr "Đầu ra bản dựng không phù hợp với đơn đặt bản dựng #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "Số lượng phải lớn hơn 0" @@ -999,7 +1003,7 @@ msgstr "Dựng đối tượng" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "Số lượng phải là 1 cho kho sê ri" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Số lượng được phân bổ ({q}) không thể vượt quá số lượng có trong kho ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "Kho hàng đã bị phân bổ quá đà" @@ -1057,8 +1061,8 @@ msgstr "Kho hàng đã bị phân bổ quá đà" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "Kho hàng" @@ -1082,7 +1086,7 @@ msgstr "Kho hàng đích" msgid "Build Level" msgstr "Tạo cấp" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "Tên sản phẩm" @@ -1139,7 +1143,7 @@ msgstr "Số sêri tự cấp" msgid "Automatically allocate required items with matching serial numbers" msgstr "Tự động cấp số seri phù hợp cho hàng hóa được yêu cầu" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "Số sêri sau đây đã tồn tại hoặc không hợp lệ" @@ -1272,7 +1276,7 @@ msgstr "Mục chi tiết bản dựng" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part phải trỏ đến phần tương tự của đơn đặt bản dựng" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "Hàng hóa phải trong kho" @@ -1385,8 +1389,8 @@ msgstr "" msgid "Build" msgstr "" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "Sản phẩm nhà cung cấp" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "Cho phép biến thể" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "Mục BOM" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "Đang sản xuất" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "Kho ngoài" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "Số hàng tồn" @@ -1527,31 +1531,31 @@ msgstr "Đơn đặt bản dựng quá hạn" msgid "Build order {bo} is now overdue" msgstr "Đặt hàng bản dựng {bo} đang quá hạn" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "Đường dẫn" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "File" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "Không có quyền xoá file đính kèm" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "Không có quyền xoá file đính kèm" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "" @@ -1571,8 +1575,8 @@ msgstr "Mã tiền tệ không đúng" msgid "No plugin" msgstr "Không phần mở rộng" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "Chuỗi khóa phải duy nhất" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "Người dùng" @@ -1654,8 +1658,8 @@ msgstr "Người dùng" msgid "Price break quantity" msgstr "Số lượng giá phá vỡ" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "Giá" @@ -1677,8 +1681,8 @@ msgstr "Tên của webhook này" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "Hoạt động" @@ -1686,7 +1690,7 @@ msgstr "Hoạt động" msgid "Is this webhook active" msgstr "Webhook có hoạt động không" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "Chữ ký số" @@ -1756,7 +1760,7 @@ msgstr "Tiêu đề" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "Lựa chọn hợp lệ từ tham số này (ngăn cách bằng dấu ph msgid "Selection list for this parameter" msgstr "" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "Đã bật" @@ -2204,8 +2208,8 @@ msgstr "" msgid "ID of the target model for this parameter" msgstr "" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "Mẫu" @@ -2262,7 +2266,7 @@ msgstr "" msgid "URL endpoint which processed the barcode" msgstr "" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "Ngữ cảnh" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "Khóa" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} đã bị hủy" msgid "A order that is assigned to you was canceled" msgstr "Một đơn đặt từng được phân công cho bạn đã bị hủy bỏ" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "Mục đã nhận" @@ -2524,7 +2528,7 @@ msgstr "Tên tập tin" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "" @@ -2914,8 +2918,8 @@ msgstr "Sản phẩm là mẫu bởi mặc định" msgid "Parts can be assembled from other components by default" msgstr "Sản phẩm có thể lắp giáp từ thành phần khác theo mặc định" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "Thành phần" @@ -2931,7 +2935,7 @@ msgstr "Có thể mua" msgid "Parts are purchaseable by default" msgstr "Sản phẩm mặc định có thể mua được" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "Có thể bán" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "Khổ giấy" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "Tên miền rỗng là không được phép." -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Tên miền không hợp lệ: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "Nhà sản xuất" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "Doanh nghiêp" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "Địa chỉ email liên hệ" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "Liên hệ" @@ -4297,7 +4301,7 @@ msgstr "" msgid "Company Tax ID" msgstr "" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "Địa chỉ" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "Liên kết thông tin địa chỉ (bên ngoài)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "Sản phẩm nhà sản xuất" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "Chọn nhà sản xuất" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "Sản phẩm nhà sản xuất đã liên kết phải tham chiếu với sản phẩm cơ bản tương tự" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "Nhà cung cấp" @@ -4448,7 +4452,7 @@ msgstr "Nhà cung cấp" msgid "Select supplier" msgstr "Chọn nhà cung cấp" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "Đơn vị quản lý kho nhà cung cấp" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Thu phí tối thiểu (vd: phí kho bãi)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "Đóng gói" @@ -4533,7 +4537,7 @@ msgstr "Tiền tệ mặc định được sử dụng cho nhà cung cấp này" msgid "Company Name" msgstr "" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "Còn hàng" @@ -4722,7 +4726,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "Hợp lệ" @@ -4838,7 +4842,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "Không rõ" @@ -4942,7 +4946,7 @@ msgstr "" msgid "Value of the property" msgstr "" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "Nhóm" @@ -4966,118 +4970,118 @@ msgstr "" msgid "Maximum value for progress type, required if type=progress" msgstr "" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "Tham chiếu đơn đặt" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "Tạo bởi" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "Đặt hàng" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "Sản phẩm nội bộ" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "Đã hoàn thành" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "Đơn hàng" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "Đơn hàng" msgid "Sales Order" msgstr "Đơn đặt hàng" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "Đơn hàng trả lại" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "" msgid "Order description (optional)" msgstr "Mô tả đơn đặt (tùy chọn)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "Mã dự án đã chọn cho đơn đặt hàng này" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "Liên kết đến trang bên ngoài" @@ -5151,7 +5155,7 @@ msgstr "" msgid "Scheduled start date for this order" msgstr "" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "Ngày mục tiêu" @@ -5184,487 +5188,487 @@ msgstr "Đầu mối liên hệ của đơn đặt này" msgid "Company address for this order" msgstr "Địa chỉ công ty cho đơn đặt này" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "Mã đặt hàng" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "Trạng thái" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "Trạng thái đơn đặt mua" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "Doanh nghiệp từ những hàng hóa đang được đặt mua" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "Tham chiếu nhà cung cấp" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "Mã tham chiếu đơn đặt nhà cung cấp" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "nhận bởi" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "Ngày đặt hàng đã được hoàn thiện" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "Đích đến" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "Nhà cung cấp sản phẩm phải trùng với nhà cung cấp PO" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "Mục dòng không phù hợp với đơn đặt mua" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "Số lượng phải là số dương" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "Khách hàng" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "Doanh nghiệp từ những hàng hóa đang được bán" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "Tham chiếu khách hàng " -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "Mã tham chiếu đơn đặt của khách hàng" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "Ngày giao hàng" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "vận chuyển bằng" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "Những đơn hàng đang mở thì sẽ được đánh dấu là hoàn thành" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Đơn hàng không thể hoàn thành được vì vận chuyển chưa xong" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "Đơn hàng không thể hoàn thành được vì những khoản riêng chưa xong" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "Số lượng mặt hàng" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "Tham chiếu khoản riêng" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "Ghi chú khoản riêng" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Ngày mục tiêu cho khoản riêng này (để trống để sử dụng ngày mục tiêu từ đơn đặt)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "Mô tả khoản riêng (tùy chọn)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "Ngữ cảnh bổ sung" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "Đơn giá" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "Sản phẩm nhà cung cấp phải phù hợp với nhà cung cung cấp" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "Sản phẩm nhà cung cấp" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "Đã nhận" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "Số mục đã nhận" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "Giá mua" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "Giá đơn vị mua" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "Chỉ có thể gán sản phẩm có thể bán vào đơn đặt bán hàng" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "Giá bán" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "Giá bán đơn vị" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "Đã chuyển" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "Số lượng đã vận chuyển" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "Ngày vận chuyển" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "Ngày giao hàng" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "Ngày giao hàng của vận chuyển" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "Kiểm tra bởi" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "Người dùng đã kiểm tra vận chuyển này" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "Vận chuyển" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "Mã vận chuyển" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "Số theo dõi" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "Thông tin theo dõi vận chuyển" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "Mã hóa đơn" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "Số tham chiếu liên kết với hóa đơn" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "Vận đơn đã được gửi đi" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "Vận đơn chưa có hàng hóa được phân bổ" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "Hàng trong kho chưa được giao" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "Không thể phân bổ hàng hóa vào cùng với dòng với sản phẩm khác" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "Không thể phân bổ hàng hóa vào một dòng mà không có sản phẩm nào" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Số lượng phân bổ không thể vượt quá số lượng của kho" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "Số lượng phân bổ phải lớn hơn 0" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "Số lượng phải là 1 cho hàng hóa sêri" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "Đơn bán hàng không phù hợp với vận đơn" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "Vận đơn không phù hợp với đơn bán hàng" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "Dòng" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "Tham chiếu vận đơn của đơn hàng bán" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "Hàng hóa" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "Chọn hàng trong kho để phân bổ" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "Nhập số lượng phân kho" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "Tham chiếu đơn hàng trả lại" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "Công ty có hàng hóa sẽ được trả lại" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "Trạng thái đơn hàng trả lại" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "Chọn hàng hóa để trả lại từ khách hàng" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "Ngày nhận được" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "Kết quả" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "Kết quả cho hàng hóa dòng này" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "Chi phí gắn với hàng trả lại hoặc sửa chữa cho dòng hàng hóa này" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "" msgid "Copy extra line items from the original order" msgstr "" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "Sao chép thông số" @@ -5784,11 +5788,11 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "Mã sản phẩm nội bộ" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "Nhập mã lô cho hàng trong kho đang đến" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "Ngày hết hạn" @@ -6056,123 +6060,131 @@ msgstr "" msgid "Return order {ro} is now overdue" msgstr "" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "" @@ -6213,7 +6225,7 @@ msgstr "Từ khóa mặc định cho sản phẩm trong danh mục này" msgid "Icon" msgstr "Biểu tượng" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "Biểu tượng (tùy chọn)" @@ -6349,7 +6361,7 @@ msgstr "Từ khóa sản phẩm để cải thiện sự hiện diện trong k msgid "Part category" msgstr "Danh mục sản phẩm" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "" @@ -6358,7 +6370,7 @@ msgstr "" msgid "Part revision or version number" msgstr "Số phiên bản hoặc bản duyệt lại sản phẩm" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "Phiên bản" @@ -6382,7 +6394,7 @@ msgstr "Hết hạn mặc định" msgid "Expiry time (in days) for stock items of this part" msgstr "Thời gian hết hạn (theo ngày) để nhập kho hàng hóa cho sản phẩm này" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "Kho tối thiểu" @@ -6390,7 +6402,7 @@ msgstr "Kho tối thiểu" msgid "Minimum allowed stock level" msgstr "Cấp độ kho tối thiểu được phép" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "Sản phẩm phụ" msgid "Select part to be used in BOM" msgstr "Chọn sản phẩm được dùng trong BOM" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "" msgid "Parent part category" msgstr "" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "Phụ mục" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "Loại tiền mua hàng của hàng hóa này" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "Sản phẩm gốc" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "Chọn sản phẩm gốc để nhân bản" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "Sao chép ảnh" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "Sao chép hình ảnh từ sản phẩm gốc" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "Sao chép BOM" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "Sao chép định mức nguyên vật liệu từ sản phẩm gốc" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "Sao chép thông tin tham số từ sản phẩm gốc" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "Sao chép ghi chú" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "Sao chép ghi chú từ sản phẩm gốc" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "Số liệu tồn kho ban đầu" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Chỉ ra số lượng tồn kho ban đầu cho sản phẩm. Nếu điền là không, không thêm kho nào." -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "Vị trí kho ban đầu" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "Chỉ định vị trí kho ban đầu cho sản phẩm này" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "Chọn nhà cung cấp (hoặc để trống để bỏ qua)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "Chọn nhà sản xuất (hoặc để trống để bỏ qua)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "Mã số nhà sản xuất" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "Công ty đã chọn không phải là nhà cung ứng hợp lệ" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "Công ty đã chọn không phải là nhà sản xuất hợp lệ" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "Mã số nhà sản xuất khớp với MPN này đã tồn tại" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "Mã số nhà cung cấp khớp với SKU này đã tồn tại" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "Tên danh mục" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "Đang dựng" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "Hàng trong kho" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "Tổng số lượng" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "Nhân bản sản phẩm" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "Sao chép dữ liệu ban đầu từ sản phẩm khác" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "Số liệu kho ban đầu" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "Tạo sản phẩm với số lượng tồn kho ban đầu" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "Thông tin nhà cung cấp" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "Thêm thông tin nhà cung cấp ban đầu cho sản phẩm này" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "Sao chép thông số nhóm hàng" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "Sao chép mẫu tham số từ nhóm sản phẩm được chọn" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "Ảnh hiện có" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "Tên tệp của ảnh sản phẩm hiện hữu" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "Tệp hình ảnh không tồn tại" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "Xác minh toàn bộ hóa đơn vật liệu" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "Có thể dựng" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "Giá thấp nhất" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "Giá trị tính toán ghi đè cho giá tối thiểu" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "Tiền tế giá tối thiểu" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "Giá cao nhất" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "Giá trị tính toán ghi đè cho giá tối đa" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "Tiền tế giá tối đa" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "Cập nhật" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "Cập nhật giá cho sản phẩm này" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Không thể chuyển đổi từ tiền tệ đã cung cấp cho {default_currency}" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "Giá tối thiểu không được lớn hơn giá tối đa" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "Giá tối đa không được nhỏ hơn giá tối thiểu" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "Chọn sản phẩm để sao chép định mức nguyên vật liệu" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "Xóa dữ liệu đã tồn tại" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "Xóa mục BOM đã tồn tại trước khi sao chép" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "Bao gồm thừa hưởng" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "Bao gồm mục BOM được thừa hưởng từ sản phẩm mẫu" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "Bỏ qua dòng không hợp lệ" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "Bật tùy chọn này để bỏ qua dòng không hợp lệ" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "Sao chép sản phẩm thay thế" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "Sao chép sản phẩm thay thế khi nhân bản hàng hóa BOM" @@ -7326,91 +7338,91 @@ msgstr "Chưa chỉ ra hành động cụ thể" msgid "No matching action found" msgstr "Không tìm thấy chức năng phù hợp" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "Không tìm thấy dữ liệu mã vạch phù hợp" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "Đã tìm thấy dữ liệu mã vạch phù hợp" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "Mã vạch phù hợp với hàng hóa hiện có" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "Không tìm thấy thông tin sản phẩm phù hợp" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "Không tìm thấy sản phẩm nhà cung cấp phù hợp" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "Tìm thấy nhiều sản phẩm nhà cung cấp phù hợp" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "Sản phẩm nhà cung cấp phù hợp" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "Hàng hóa này đã được nhận" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "Kho không đủ hạn mức khả dụng" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "Không đủ thông tin" @@ -7992,7 +8004,7 @@ msgstr "Viền" msgid "Print a border around each label" msgstr "In một viền xung quanh từng nhãn" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "Ngang" @@ -8481,136 +8493,136 @@ msgstr "Pháp lý" msgid "Letter" msgstr "Thư" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "Tên mẫu" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "Mẫu tên tệp" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "Bộ lọc" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "Khổ giấy cho báo cáo PDF" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "Tạo báo cáo theo hướng ngang" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "Chiều rộng [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "Chiều rộng nhãn, tính theo mm" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "Chiều cao [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "Chiều cao nhãn, tính theo mm" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "Mẫu trích" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "Tệp báo cáo mẫu" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "Mô tả tệp báo cáo mẫu" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "Tài sản" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "Tệp báo cáo tài sản" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "Mô tả tệp báo cáo tài sản" @@ -8766,200 +8778,200 @@ msgstr "Không có kết quả" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "Không tìm thấy tệp hình ảnh" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "thẻ part_image yêu cầu 1 thực thể sản phẩm" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "thẻ company_image yêu cầu một thực thể doanh nghiệp" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "Mã trạng thái" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "Địa điểm bên ngoài" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "Cây sản phẩm" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "Ngày hết hạn trước đó" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "Ngày hết hạn sau đó" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "Ế" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "Bắt buộc nhập số lượng" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "Phải cung cấp sản phẩm hợp lệ" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "Sản phẩm nhà cung cấp đã đưa không tồn tại" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Sản phẩm nhà cung cấp có kích thước đóng gói được định nghĩa nhưng cờ use_pack_size chưa được thiết lập" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Số sê-ri không thê được cung cấp cho sản phẩm không thể theo dõi" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "" @@ -8995,7 +9007,7 @@ msgstr "Chọn chủ sở hữu" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Không thể đưa trực tiếp hàng trong kho vào bên trong vị trí kho hàng có cấu trúc, nhưng có thể đặt vào kho con." -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "Bên ngoài" @@ -9101,7 +9113,7 @@ msgstr "Chọn sản phẩm nhà cung cấp khớp với hàng hóa trong kho n msgid "Where is this stock item located?" msgstr "Hàng trong kho này được đặt ở đâu?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "Đóng gói hàng hóa này được lưu trữ lại" @@ -9117,7 +9129,7 @@ msgstr "Mục này đã được cài đặt trong mục khác?" msgid "Serial number for this item" msgstr "Số sê ri cho mục này" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "Mã lô cho hàng trong kho này" @@ -9234,7 +9246,7 @@ msgstr "Hàng trong kho hiện đang sản xuất" msgid "Serialized stock cannot be merged" msgstr "Không thể hợp nhất kho nối tiếp" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "Mặt hàng trùng lặp" @@ -9398,7 +9410,7 @@ msgstr "Điền số sêri cho hàng hóa mới" msgid "Supplier Part Number" msgstr "Số hiệu hàng hoá nhà cung cấp" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "Đã hết hạn" @@ -9428,8 +9440,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Số lượng phải không vượt quá số lượng trong kho đang có ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "Vị trí kho đích" @@ -9501,127 +9513,127 @@ msgstr "Chọn mặt hàng để đổi trạng thái" msgid "No stock items selected" msgstr "Không có mặt hàng nào được chọn" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "Kho phụ" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "Sản phẩm phải có thể bán được" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "Hàng hóa được phân bổ đến một đơn hàng bán" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "Hàng hóa được phân bổ đến một đơn đặt bản dựng" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "Khách hàng được gán vào các mặt hàng" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "Công ty đã chọn không phải là khách hàng" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "Ghi chú phân bổ kho" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "Phải cung cấp danh sách mặt hàng" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "Ghi chú gộp kho" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "Cho phép nhiều nhà cung không khớp" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "Cho phép mặt hàng cùng sản phẩm nhà cung cấp khác phải được gộp" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "Cho phép trạng thái không khớp" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "Cho phép mặt hàng với mã trạng thái khác nhau để gộp lại" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "Cần cung cấp ít nhất hai mặt hàng" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "Giá trị khóa chính mặt hàng" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "Ghi chú giao dịch kho" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "" @@ -9919,7 +9931,7 @@ msgstr "Quyền" msgid "Important dates" msgstr "Ngày quan trọng" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "Mã thông báo đã bị thu hồi" @@ -9927,163 +9939,163 @@ msgstr "Mã thông báo đã bị thu hồi" msgid "Token has expired" msgstr "Mã thông báo đã hết hạn" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "Mã thông báo API" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "Mã thông báo API" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "Tên mã thông báo" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "Tên tùy chỉnh mã thông báo" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "Ngày hết hạn mã thông báo" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "Xem lần cuối" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "Lần cuối mã thông báo được sử dụng" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "Đã thu hồi" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "Quyền hạn đã đặt" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "Xem" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "Quyền để xem mục" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "Thêm" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "Quyền để thêm mục" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "Đổi" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "Quyển để sửa mục" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "Xóa" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "Quyền để xóa mục" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "" diff --git a/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po index 29452758b7..baffe26bae 100644 --- a/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "未找到 API 端点" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "批量操作必须提供物料清单" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "必须以列表形式提供项目" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "提供了无效的单位" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "所有过滤器只能使用true" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "没有符合所供条件的项目" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "未提供数据" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "此字段的值必须是唯一的。" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "用户没有权限查阅当前模型。" @@ -65,11 +65,11 @@ msgstr "邮箱地址已确认" msgid "You must type the same email each time." msgstr "您必须每次输入相同的电子邮件。" -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "提供的主电子邮件地址无效。" -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "提供的邮箱域名未被批准。" @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "不能将 {original} 转换到 {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "提供的数量无效" @@ -105,22 +105,22 @@ msgstr "输入日期" msgid "Invalid decimal value" msgstr "无效的数值" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "备注" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "值' {name}' 未出现在模式格式中" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "提供的值与所需模式不匹配:" @@ -164,51 +164,51 @@ msgstr "从这个值中删除 HTML 标签" msgid "Data contains prohibited markdown content" msgstr "数据包含禁止的 markdown 内容" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "无效URL:没有主机名" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "无效URL:无法解析的主机名" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "URL指向私有或保留IP地址" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "太多重定向" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "连接错误" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "服务器响应状态码无效" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "发生异常" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "服务器响应的内容长度值无效" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "图片尺寸过大" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "图片下载超出最大尺寸" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "远程服务器返回了空响应" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "提供的 URL 不是一个有效的图片文件" @@ -220,117 +220,121 @@ msgstr "登录应用程序" msgid "Email" msgstr "电子邮件" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "您必须启用双重身份验证才能进行后续操作。" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "运行插件验证时出错" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "元数据必须是 Python dict 对象" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "插件元数据" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "供外部插件使用的JSON元数据字段" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "格式错误" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "使用了未知的格式键值" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "缺少必需的格式键值" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "参考字段不能为空" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "参考字段必须符合指定格式" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "参考编号过大" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "无效选项" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "名称" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "描述" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "描述(选填)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "路径" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "同一父级下不能存在重复名称" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Markdown备注(选填)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "条码数据" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "第三方条码数据" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "条码哈希值" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "条码数据的唯一哈希值" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "检测到已存在条码" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "服务器错误" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "服务器记录了一个错误。" -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "必须是有效数字" msgid "Currency" msgstr "货币" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "从可用选项中选择货币" @@ -521,11 +525,11 @@ msgstr "中文 (简体)" msgid "Chinese (Traditional)" msgstr "中文 (繁体)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "有可用更新" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "InvenTree有可用更新" @@ -537,7 +541,7 @@ msgstr "无效的物理单位" msgid "Not a valid currency code" msgstr "无效的货币代码" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "订单状态" @@ -546,23 +550,23 @@ msgstr "订单状态" msgid "Parent Build" msgstr "父级生产订单" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "包含变体" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "包含变体" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "包含变体" msgid "Part" msgstr "零件" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "类别" @@ -593,7 +597,7 @@ msgstr "类别" msgid "Ancestor Build" msgstr "可测试部分" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "分配给我" @@ -601,11 +605,11 @@ msgstr "分配给我" msgid "Assigned To" msgstr "负责人" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "创建时间早于" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "创建时间晚于" @@ -641,99 +645,99 @@ msgstr "完成日期早于" msgid "Completed after" msgstr "完成日期晚于" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "最小日期" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "最大日期" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "排除树" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "生产订单必须取消后才能删除" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "耗材" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "可选项" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "装配件" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "可追溯" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "需检测" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "未结算订单" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "已分配" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "已消耗" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "可用数量" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "已订购" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "未找到版本" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "生产订单" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "库存位置" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "产出" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "按产出库存项ID筛选,使用“null”查找未安装的生产项。" @@ -773,9 +777,9 @@ msgstr "目标日期必须在开始日期之后" msgid "Build Order Reference" msgstr "生产订单编号" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "销售订单编号" msgid "Sales Order to which this build is allocated" msgstr "该生产订单关联的销售订单" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "源库位" @@ -821,7 +825,7 @@ msgstr "外协生产" msgid "This build order is fulfilled externally" msgstr "该生产订单由外部供应商完成" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "目标库位" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "生产状态代码" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "批号" @@ -883,8 +887,8 @@ msgstr "计划完成日期" msgid "Target date for build completion. Build will be overdue after this date." msgstr "生产订单的计划完成时间,逾期后系统将标记为超期。" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "完成日期" @@ -900,7 +904,7 @@ msgstr "发起人" msgid "User who issued this build order" msgstr "创建该生产订单的用户" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "此生产订单的优先级" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "项目编号" @@ -962,9 +966,9 @@ msgstr "产出与生产订单不匹配" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "数量必须大于零" @@ -999,7 +1003,7 @@ msgstr "生产对象" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "序列化物料的数量必须为1" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "库存品项超额分配" @@ -1057,8 +1061,8 @@ msgstr "库存品项超额分配" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "库存项" @@ -1082,7 +1086,7 @@ msgstr "目标库存项" msgid "Build Level" msgstr "生产等级" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "零件名称" @@ -1139,7 +1143,7 @@ msgstr "自动分配序列号" msgid "Automatically allocate required items with matching serial numbers" msgstr "自动为所需项目分配对应的序列号" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "以下序列号已存在或无效" @@ -1272,7 +1276,7 @@ msgstr "生产行项目" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part 必须与生产订单零件相同" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "项目必须在库存中" @@ -1385,8 +1389,8 @@ msgstr "安裝到" msgid "Build" msgstr "生产" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "供应商零件" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "允许变体" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "物料清单项" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "生产中" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "生产计划" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "外部库存" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "可用库存" @@ -1527,31 +1531,31 @@ msgstr "逾期的生产订单" msgid "Build order {bo} is now overdue" msgstr "生产订单 {bo} 现已逾期" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "是否链接" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "是否为文件" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "用户没有权限删除此附件" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "用户没有编辑此附件的权限" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "用户没有权限删除此附件" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "选择列表已锁定" @@ -1571,8 +1575,8 @@ msgstr "未提供有效的货币代码" msgid "No plugin" msgstr "暂无插件" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "标签" @@ -1645,8 +1649,8 @@ msgstr "键字符串必须是唯一的" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "使用者" @@ -1654,8 +1658,8 @@ msgstr "使用者" msgid "Price break quantity" msgstr "批发价数量" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "价格" @@ -1677,8 +1681,8 @@ msgstr "此网络钩子的名称" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "激活" @@ -1686,7 +1690,7 @@ msgstr "激活" msgid "Is this webhook active" msgstr "网络钩子是否已启用" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "令牌" @@ -1756,7 +1760,7 @@ msgstr "标题" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "此参数的有效选择 (逗号分隔)" msgid "Selection list for this parameter" msgstr "此参数的选择列表" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "已启用" @@ -2204,8 +2208,8 @@ msgstr "型号ID" msgid "ID of the target model for this parameter" msgstr "此参数的目标模型的 ID" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "模板" @@ -2262,7 +2266,7 @@ msgstr "扫描条形码的日期和时间" msgid "URL endpoint which processed the barcode" msgstr "处理条码的 URL 端点" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "上下文" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "邮件主题" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "键" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} 已取消" msgid "A order that is assigned to you was canceled" msgstr "分配给您的订单已取消" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "收到的物品" @@ -2524,7 +2528,7 @@ msgstr "文件名" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "模型类型" @@ -2914,8 +2918,8 @@ msgstr "零件默认为模板" msgid "Parts can be assembled from other components by default" msgstr "默认情况下,元件可由其他零件组装而成" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "组件" @@ -2931,7 +2935,7 @@ msgstr "可购买" msgid "Parts are purchaseable by default" msgstr "默认情况下可购买零件" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "可销售" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "记录生成报告时出现的错误" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "页面大小" @@ -4130,49 +4134,49 @@ msgstr "最终级别的展示项目" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "对于没有子项的位置或类别,自动默认显示项目/零件,而不是子级别" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "全部型号" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "未提供附件型号" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "附件模型类型无效" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "最小位置不能大于最大位置" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "最大名额不能小于最小名额" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "不允许空域。" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "无效的域名: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "值必须大写" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "值必须是一个有效的变量标识符" @@ -4201,12 +4205,12 @@ msgid "Supplier is Active" msgstr "供应商已激活" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "制造商" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "公司" @@ -4247,7 +4251,7 @@ msgid "Contact email address" msgstr "联系人电子邮箱地址" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "联系人" @@ -4299,7 +4303,7 @@ msgstr "税号" msgid "Company Tax ID" msgstr "公司税号" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "地址" @@ -4392,7 +4396,7 @@ msgid "Link to address information (external)" msgstr "链接地址信息 (外部)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "制造商零件" @@ -4410,7 +4414,7 @@ msgid "Select manufacturer" msgstr "选择制造商" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "制造商零件编号" @@ -4439,10 +4443,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "链接的制造商零件必须引用相同的基础零件" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "供应商" @@ -4450,7 +4454,7 @@ msgstr "供应商" msgid "Select supplier" msgstr "选择供应商" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "供应商库存管理单位" @@ -4487,7 +4491,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "最低费用(例如库存费)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "打包" @@ -4535,7 +4539,7 @@ msgstr "此供应商使用的默认货币" msgid "Company Name" msgstr "公司名称" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "有库存" @@ -4724,7 +4728,7 @@ msgstr "原始行数据" msgid "Errors" msgstr "错误" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "有效" @@ -4840,7 +4844,7 @@ msgstr "每个标签要打印的份数" msgid "Connected" msgstr "已连接" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "未知" @@ -4944,7 +4948,7 @@ msgstr "属性键" msgid "Value of the property" msgstr "属性值" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "组" @@ -4968,118 +4972,118 @@ msgstr "最大进度" msgid "Maximum value for progress type, required if type=progress" msgstr "进度类型的最大值。当 type=progress 时为必填项" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "订单参考" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "未完成" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "有项目编码" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "创建人" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "创建时间早于" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "创建时间晚于" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "有开始日期" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "开始日期早于" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "开始日期晚于" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "有目标日期" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "目标日期早于" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "目标日期晚于" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "更新时间早于" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "更新时间晚于" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "有定价" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "完成时间早于" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "完成时间晚于" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "外部生产订单" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "订单" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "订单完成" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "内部零件" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "订单待定" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "已完成" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "有配送" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "未找到发货记录" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "采购订单" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5087,14 +5091,14 @@ msgstr "采购订单" msgid "Sales Order" msgstr "销售订单" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "退货订单" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5137,11 +5141,11 @@ msgstr "地址与所选公司不匹配" msgid "Order description (optional)" msgstr "订单描述 (可选)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "为此订单选择项目编码" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "链接到外部页面" @@ -5153,7 +5157,7 @@ msgstr "开始日期" msgid "Scheduled start date for this order" msgstr "本订单的预定开始日期" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "预计日期" @@ -5186,487 +5190,487 @@ msgstr "此订单的联系人" msgid "Company address for this order" msgstr "此订单的公司地址" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "订单参考" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "狀態" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "采购订单状态" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "订购物品的公司" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "供应商参考" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "供应商订单参考代码" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "接收人" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "订单完成日期" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "目的地" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "接收物品的目标" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "零件供应商必须与采购订单供应商匹配" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "行项目与采购订单不匹配" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "行项目缺少关联零件" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "数量必须是正数" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "序列号不能分配给虚拟件" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "客户" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "出售物品的公司" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "销售订单状态" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "客户参考 " -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "客户订单参考代码" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "发货日期" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "发货人" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "订单已完成" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "订单已取消" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "只有未结订单才能标记为已完成" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "由于发货不完整,订单无法完成" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "由于缺货,订单无法完成" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "订单无法完成,因为行项目不完整" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "订单已锁定,不可修改" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "项目数量" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "行号" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "此项目的行号(可选)" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "行项目参考" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "行项目注释" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "此行项目的目标日期 (留空以使用订单中的目标日期)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "行项目描述 (可选)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "此行的附加上下文" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "单位价格" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "采购订单行项目" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "供应商零件必须与供应商匹配" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "生产订单必须标记为外部" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "生产订单仅可关联至装配零件" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "生产订单零件必须与行项目零件一致" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "装配零件需要外部生产订单" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "供应商零件" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "已接收" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "收到的物品数量" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "采购价格" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "每单位的采购价格" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "外部生产订单需由此行项目履行" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "采购订单附加行" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "销售订单行项目" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "只有可销售的零件才能分配给销售订单" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "售出价格" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "单位售出价格" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "已配送" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "发货数量" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "销售订单发货" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "收货地址必须与该客户的资料一致" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "本次发货的收货地址" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "发货日期" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "送达日期" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "装运交货日期" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "审核人" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "检查此装运的用户" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "配送" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "配送单号" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "跟踪单号" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "配送跟踪信息" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "发票编号" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "相关发票的参考号" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "货物已发出" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "发货没有分配库存项目" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "货件必须先经核对,方可标记为完成" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "销售订单加行" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "销售订单分配" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "库存项目尚未分配" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "无法将库存项目分配给具有不同零件的行" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "无法将库存分配给没有零件的生产线" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "分配数量不能超过库存数量" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "分配的数量必须大于零" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "序列化库存项目的数量必须为1" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "销售订单与发货不匹配" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "发货与销售订单不匹配" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "行" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "销售订单发货参考" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "项目" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "选择要分配的库存项目" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "输入库存分配数量" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "退货订单参考" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "退回物品的公司" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "退货订单状态" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "退货订单行项目" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "必须指定库存项" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "退回数量超过库存数量" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "退回数量必须大于零" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "序列化库存项的数量无效" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "选择要从客户处退回的商品" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "接收日期" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "收到此退货的日期" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "结果" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "该行项目的结果" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "与此行项目的退货或维修相关的成本" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "退货订单附加行" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5694,7 +5698,7 @@ msgstr "复制额外行" msgid "Copy extra line items from the original order" msgstr "从原始订单复制额外的行项目" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "复制参数" @@ -5786,11 +5790,11 @@ msgstr "合并项目" msgid "Merge items with the same part, destination and target date into one line item" msgstr "将具有相同零件、目的地和目标日期的项目合并到一个行项目中" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "库存量单位" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "内部零件编号" @@ -5827,7 +5831,7 @@ msgid "Enter batch code for incoming stock items" msgstr "输入入库项目的批号" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "有效期至" @@ -6058,123 +6062,131 @@ msgstr "逾期退货订单" msgid "Return order {ro} is now overdue" msgstr "退货订单 {ro} 现已逾期" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "已加星标" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "按星标类别筛选" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "深度" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "按类别深度筛选" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "顶级" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "按顶级类别筛选" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "级联" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "在筛选结果中包含子类别" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "父类" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "按父类别筛选" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "排除指定类别下的子类别" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "有结果" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "是变体" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "是修订版本" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "有修订版本" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "物料清单合规" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "级联分类" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "如果为真,则包含给定分类下的所有子分类中的项目" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "按数字分类ID或字面值 \"null\" 进行筛选" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "装配零件已启用" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "装配零件可追踪" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "装配部份是可测试的" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "装配零件已锁定" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "元器件已激活" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "该零部件可追溯" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "组件部份是可测试的" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "该零部件是一个装配件" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "该零部件为虚拟件" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "有可用库存" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "使用" @@ -6215,7 +6227,7 @@ msgstr "此类别零件的默认关键字" msgid "Icon" msgstr "图标" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "图标(可选)" @@ -6351,7 +6363,7 @@ msgstr "提高搜索结果可见性的零件关键字" msgid "Part category" msgstr "零件类别" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "内部零件号 IPN" @@ -6360,7 +6372,7 @@ msgstr "内部零件号 IPN" msgid "Part revision or version number" msgstr "零件修订版本或版本号" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "版本" @@ -6384,7 +6396,7 @@ msgstr "默认到期" msgid "Expiry time (in days) for stock items of this part" msgstr "此零件库存项的过期时间 (天)" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "最低库存" @@ -6392,7 +6404,7 @@ msgstr "最低库存" msgid "Minimum allowed stock level" msgstr "允许的最小库存量" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "最大库存" @@ -6761,7 +6773,7 @@ msgstr "子零件" msgid "Select part to be used in BOM" msgstr "选择要用于物料清单的零件" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "数量" @@ -6913,351 +6925,351 @@ msgstr "上级类别" msgid "Parent part category" msgstr "上级零件类别" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "子类别" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "结果" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "根据该模板记录的结果数量" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "购买此库存项的货币" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "文件不是一个图片" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "原始零件" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "选择要复制的原始零件" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "复制图片" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "从原零件复制图片" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "复制物料清单" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "从原始零件复制材料清单" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "从原始零件复制参数数据" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "复制备注" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "从原始零件复制备注" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "复制测试" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "从原始零件复制测试模板" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "初始化库存数量" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "指定此零件的初始库存数量。如果数量为零,则不添加任何库存。" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "初始化库存地点" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "初始化指定此零件的库存地点" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "选择供应商(或为空以跳过)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "选择制造商(或为空)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "制造商零件号" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "所选公司不是一个有效的供应商" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "所选公司不是一个有效的制造商" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "与此制造商零件编号 (MPN) 的相匹配的制造商零件已存在" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "匹配此库存单位 (SKU) 的供应商零件已存在" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "类别名称" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "正在生产" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "目前正在生产的零件数量" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "此零件计划待产数量" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "库存项" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "修订" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "库存总量" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "未分配的库存" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "变体库存" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "重复零件" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "从另一个零件复制初始数据" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "初始库存" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "创建具有初始库存数量的零件" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "供应商信息" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "添加此零件的初始供应商信息" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "复制类别参数" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "从选择的零件复制参数模版" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "现有的图片" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "现有零件图片的文件名" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "图片不存在" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "验证整个物料清单" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "可以创建" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "生产订单必填项" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "分配到生产订单" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "销售订单必填项" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "分配到销售订单" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "内部零件号" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "零件描述" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "选择一个物料,以生成该物料(及其所有变型物料)的盘点信息" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "选择一个分类,以包含该分类(及其子分类)下的所有物料" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "选择一个库位,以包含该库位(含子库位)中有库存的所有物料" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "生成盘点条目" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "保存所选物料的盘点条目" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "生成报告" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "为所选物料生成盘点报告" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "最低价格" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "覆盖已计算的最低价格值" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "最低价格货币" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "最高价格" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "覆盖已计算的最高价格值" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "最高价格货币" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "更新" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "更新这个零件的价格" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "无法将所提供的货币转换为 {default_currency}" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "最低价格不能高于最高价格。" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "最高价格不能低于最低价格" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "此商品所需数量(可包含单位)" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "选择父装配" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "选择零部件" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "无效的数量格式" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "选择要复制物料清单的零件" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "移除现有数据" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "复制前删除现有的物料清单项目" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "包含继承的" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "包含从模板零件继承的物料清单项目" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "跳过无效行" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "启用此选项以跳过无效行" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "复制替代品零件" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "复制物料清单项目时复制替代品零件" @@ -7328,91 +7340,91 @@ msgstr "未指定操作" msgid "No matching action found" msgstr "未找到指定操作" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "未找到匹配条形码数据" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "找到匹配条形码数据" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "不支持模型" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "找不到模型实例" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "条形码匹配现有项目" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "没有找到匹配的零件数据" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "没有找到匹配的供应商零件" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "找到多个匹配的供应商零件" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "没有找到匹配条形码数据的插件" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "匹配的供应商零件" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "项目已被接收" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "没有匹配供应商条形码的插件" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "找到多个匹配的行项目" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "未找到匹配的行项目" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "未提供销售订单" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "条形码与现有的库存项不匹配" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "库存项与行项目不匹配" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "可用库存不足" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "库存项已分配到销售订单" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "没有足够的信息" @@ -7994,7 +8006,7 @@ msgstr "边框" msgid "Print a border around each label" msgstr "打印每个标签的边框" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "横屏模式" @@ -8483,136 +8495,136 @@ msgstr "法律" msgid "Letter" msgstr "字母" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "已存在具有此名称的模板" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "模版名称" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "模板说明" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "修订编号 (自动增量)" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "打印时附加到模型" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "打印时将报告输出保存为附件与链接模型实例" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "文件名样式" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "生成文件名模式" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "模板已启用" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "模版的目标模型类型" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "筛选器" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "模版查询筛选器 (逗号分隔的键值对列表)" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "模板包文件" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "PDF 报告的页面大小" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "横向渲染报告" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "合并" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "针对选定项目生成独立报" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "基于模板 {self.name} 生成的报告" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "模板语法错误" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "报告渲染错误" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "报告生成错误" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "报告合并输出错误" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "宽度 [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "标签宽度,以毫米为单位。" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "高度 [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "标签高度,以毫米为单位。" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "标签打印错误" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "代码片段" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "报告代码片段文件" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "代码片段文件描述" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "资产" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "报告资产文件" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "资产文件描述" @@ -8768,200 +8780,200 @@ msgstr "没有结果" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "无效的媒体文件路径" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "无效的静态文件路径" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "未找到资源文件" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "找不到图片文件" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "未指定图片文件" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "parpart_image 标签需要一个零件实例" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "公司_图片标签需要一个公司实例" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "按位置深度筛选" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "按顶级位置筛选" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "在筛选结果中包含子地点" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "上级地点" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "按上级位置筛选" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "零件名称 (不区分大小写)" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "零件名称包含 (不区分大小写)" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "零件名称 (正则表达式)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "内部零件号 (不区分大小写)" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "内部零件号 (不区分大小写)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "内部零件号 (正则表达式)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "最低库存" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "最大库存" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "状态代码" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "外部地点" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "被生产订单消耗" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "安装于其他库存项中" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "零件树" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "更新时间早于" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "更新时间晚于" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "盘点时间早于" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "盘点时间晚于" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "过期日期前" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "过期日期后" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "过期" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "提供库存项的主键(PK)以排除该项及其所有子项" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "级联位置" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "若为真,则包含给定位置的所有子位置中的项目" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "按数字位置ID或字母“null”筛选" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "请先输入数量" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "必须提供有效的零件" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "给定的供应商零件不存在" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "供应商零件有定义的包装大小,但 use_pack_size 标志未设置" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "不能为不可跟踪的零件提供序列号" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "包含已安装项" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "如果为真,则包含给定库存项下已安装组件的测试结果" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "按数字库存项ID进行筛选" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "ID 为 {id} 的库存项不存在" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "包含零件变体" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "日期晚于" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "日期早于" @@ -8997,7 +9009,7 @@ msgstr "选择所有者" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "库存项可能不直接位于结构库存地点,但可能位于其子地点。" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "外部" @@ -9103,7 +9115,7 @@ msgstr "为此库存项目选择匹配的供应商零件" msgid "Where is this stock item located?" msgstr "这个库存物品在哪里?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "包装此库存物品存储在" @@ -9119,7 +9131,7 @@ msgstr "此项目是否安装在另一个项目中?" msgid "Serial number for this item" msgstr "此项目的序列号" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "此库存项的批号" @@ -9236,7 +9248,7 @@ msgstr "库存项目前正在生产" msgid "Serialized stock cannot be merged" msgstr "序列化的库存不能合并" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "复制库存项" @@ -9400,7 +9412,7 @@ msgstr "输入新项目的序列号" msgid "Supplier Part Number" msgstr "供应商零件编号" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "已过期" @@ -9430,8 +9442,8 @@ msgstr "未提供库存项" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "数量不得超过现有库存量 ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "目标库存位置" @@ -9503,127 +9515,127 @@ msgstr "选择要更改状态的库存项目" msgid "No stock items selected" msgstr "未选择库存商品" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "子位置" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "上级库存地点" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "零件必须可销售" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "物料已分配到销售订单" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "项目被分配到生产订单中" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "客户分配库存项目" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "所选公司不是客户" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "库存分配说明" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "必须提供库存物品清单" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "库存合并说明" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "允许不匹配的供应商" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "允许合并具有不同供应商零件的库存项目" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "允许不匹配的状态" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "允许合并具有不同状态代码的库存项目" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "必须提供至少两件库存物品" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "无更改" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "库存项主键值" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "库存项无现货" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "库存项已有现货" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "数量不得为负" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "库存交易记录" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "合并至现有库存" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "若可行,将退回项目合并至现有库存项" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "下一个序列号" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "上一个序列号" @@ -9921,7 +9933,7 @@ msgstr "权限" msgid "Important dates" msgstr "重要日期" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "令牌已被撤销" @@ -9929,163 +9941,163 @@ msgstr "令牌已被撤销" msgid "Token has expired" msgstr "令牌已过期" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "API 令牌" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "API 令牌" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "令牌名称" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "自定义令牌名称" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "令牌过期日期" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "最近一次在线" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "最近使用令牌的时间" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "撤销" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "权限设置" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "查看" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "查看项目的权限" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "添加" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "添加项目的权限" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "更改" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "编辑项目的权限" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "删除" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "删除项目的权限" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "机器人" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "内部" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "访客" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "语言" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "用户首选语言" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "主题" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "Web界面设置为 JSON - 不要手动编辑!" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "小部件" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "设置面板小部件为 JSON - 不要手动编辑!" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "显示名称" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "用户自定义的显示名称" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "职位" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "主要职务或职位" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "用户状态信息" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "用户地址信息" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "用户正在积极使用系统" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "用户首选联系信息" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "用户类型" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "请选择用户类型?" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "组织" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "用户主要组织/附属关系" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "主组" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "用户主组" diff --git a/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po index e1461fa4fa..4c4ceb6763 100644 --- a/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-17 22:11+0000\n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"PO-Revision-Date: 2026-06-24 00:49\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 250\n" -#: InvenTree/api.py:368 +#: InvenTree/api.py:369 msgid "API endpoint not found" msgstr "未找到 API 端點" -#: InvenTree/api.py:441 +#: InvenTree/api.py:442 msgid "List of items must be provided for bulk operation" msgstr "必須提供項目清單以進行大量操作" -#: InvenTree/api.py:448 +#: InvenTree/api.py:449 msgid "Items must be provided as a list" msgstr "項目必須以列表形式提供" -#: InvenTree/api.py:456 +#: InvenTree/api.py:457 msgid "Invalid items list provided" msgstr "提供了無效的單位" -#: InvenTree/api.py:461 +#: InvenTree/api.py:462 msgid "All filter must only be used with true" msgstr "all 篩選器只能在值為 true 時使用" -#: InvenTree/api.py:466 +#: InvenTree/api.py:467 msgid "No items match the provided criteria" msgstr "沒有項目符合所提供的條件" -#: InvenTree/api.py:490 +#: InvenTree/api.py:491 msgid "No data provided" msgstr "未提供資料" -#: InvenTree/api.py:506 +#: InvenTree/api.py:507 msgid "This field must be unique." msgstr "此欄位須唯一值。" -#: InvenTree/api.py:835 +#: InvenTree/api.py:836 InvenTree/models.py:1345 msgid "User does not have permission to view this model" msgstr "用户沒有權限查閲當前模型。" @@ -65,11 +65,11 @@ msgstr "郵箱地址已確認" msgid "You must type the same email each time." msgstr "您必須每次輸入相同的電子郵件。" -#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139 +#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142 msgid "The provided primary email address is not valid." msgstr "提供的主電子郵件地址無效。" -#: InvenTree/auth_overrides.py:145 +#: InvenTree/auth_overrides.py:148 msgid "The provided email domain is not approved." msgstr "提供的郵箱域名未被批准。" @@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}" msgstr "不能將 {original} 轉換到 {unit}" #: InvenTree/conversion.py:289 InvenTree/conversion.py:303 -#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092 +#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093 #: part/models.py:3999 msgid "Invalid quantity provided" msgstr "提供的數量無效" @@ -105,22 +105,22 @@ msgstr "輸入日期" msgid "Invalid decimal value" msgstr "無效的十進位數值" -#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499 +#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499 #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 -#: order/models.py:2037 +#: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 #: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 -#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440 -#: stock/serializers.py:1529 stock/serializers.py:1728 +#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 +#: stock/serializers.py:1540 stock/serializers.py:1739 msgid "Notes" msgstr "備註" -#: InvenTree/format.py:166 +#: InvenTree/format.py:159 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "值' {name}' 未出現在模式格式中" -#: InvenTree/format.py:177 +#: InvenTree/format.py:170 msgid "Provided value does not match required pattern: " msgstr "提供的值與所需模式不匹配:" @@ -164,51 +164,51 @@ msgstr "從這個值中刪除 HTML 標籤" msgid "Data contains prohibited markdown content" msgstr "資料包含被禁止的 Markdown 內容" -#: InvenTree/helpers_model.py:109 +#: InvenTree/helpers_model.py:104 msgid "Invalid URL: no hostname" msgstr "無效的 URL:沒有主機名稱" -#: InvenTree/helpers_model.py:114 +#: InvenTree/helpers_model.py:109 msgid "Invalid URL: hostname could not be resolved" msgstr "無效的 URL:無法解析主機名稱" -#: InvenTree/helpers_model.py:120 +#: InvenTree/helpers_model.py:115 msgid "URL points to a private or reserved IP address" msgstr "URL 指向私有或保留的 IP 地址" -#: InvenTree/helpers_model.py:197 +#: InvenTree/helpers_model.py:192 msgid "Too many redirects" msgstr "重新導向次數過多" -#: InvenTree/helpers_model.py:202 +#: InvenTree/helpers_model.py:197 msgid "Connection error" msgstr "連接錯誤" -#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216 +#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211 msgid "Server responded with invalid status code" msgstr "服務器響應狀態碼無效" -#: InvenTree/helpers_model.py:212 +#: InvenTree/helpers_model.py:207 msgid "Exception occurred" msgstr "發生異常" -#: InvenTree/helpers_model.py:222 +#: InvenTree/helpers_model.py:217 msgid "Server responded with invalid Content-Length value" msgstr "服務器響應的內容長度值無效" -#: InvenTree/helpers_model.py:225 +#: InvenTree/helpers_model.py:220 msgid "Image size is too large" msgstr "圖片尺寸過大" -#: InvenTree/helpers_model.py:237 +#: InvenTree/helpers_model.py:232 msgid "Image download exceeded maximum size" msgstr "圖片下載超出最大尺寸" -#: InvenTree/helpers_model.py:242 +#: InvenTree/helpers_model.py:237 msgid "Remote server returned empty response" msgstr "遠程服務器返回了空響應" -#: InvenTree/helpers_model.py:250 +#: InvenTree/helpers_model.py:245 msgid "Supplied URL is not a valid image file" msgstr "提供的 URL 不是一個有效的圖片文件" @@ -220,117 +220,121 @@ msgstr "登入此應用程式" msgid "Email" msgstr "電子郵件" -#: InvenTree/middleware.py:192 +#: InvenTree/middleware.py:126 +msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly." +msgstr "" + +#: InvenTree/middleware.py:218 msgid "You must enable two-factor authentication before doing anything else." msgstr "在進行任何其他操作前,必須先啟用雙因素驗證。" -#: InvenTree/models.py:128 +#: InvenTree/models.py:129 msgid "Error running plugin validation" msgstr "驗證外掛程式時發生錯誤" -#: InvenTree/models.py:210 +#: InvenTree/models.py:211 msgid "Metadata must be a python dict object" msgstr "Metadata必須是一個Python Dictionary物件" -#: InvenTree/models.py:216 +#: InvenTree/models.py:217 msgid "Plugin Metadata" msgstr "外掛程式Metadata" -#: InvenTree/models.py:217 +#: InvenTree/models.py:218 msgid "JSON metadata field, for use by external plugins" msgstr "外掛程式使用的JSON Metadata欄位" -#: InvenTree/models.py:400 +#: InvenTree/models.py:401 msgid "Improperly formatted pattern" msgstr "格式錯誤" -#: InvenTree/models.py:407 +#: InvenTree/models.py:408 msgid "Unknown format key specified" msgstr "指定了不明的格式鍵值" -#: InvenTree/models.py:413 +#: InvenTree/models.py:414 msgid "Missing required format key" msgstr "缺少必須的格式鍵值" -#: InvenTree/models.py:424 +#: InvenTree/models.py:425 msgid "Reference field cannot be empty" msgstr "參考欄位不能空白" -#: InvenTree/models.py:432 +#: InvenTree/models.py:433 msgid "Reference must match required pattern" msgstr "參考欄位並須符合格式" -#: InvenTree/models.py:463 +#: InvenTree/models.py:464 msgid "Reference number is too large" msgstr "參考編號過大" -#: InvenTree/models.py:918 +#: InvenTree/models.py:919 msgid "Invalid choice" msgstr "無效的選項" -#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870 +#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870 #: common/models.py:2303 common/models.py:2428 common/models.py:2725 #: common/serializers.py:672 generic/states/serializers.py:20 #: machine/models.py:25 part/models.py:1106 plugin/models.py:54 -#: report/models.py:221 stock/models.py:87 +#: report/models.py:222 stock/models.py:87 msgid "Name" msgstr "名稱" -#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180 +#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180 #: common/models.py:2435 common/models.py:2576 common/models.py:2740 #: company/models.py:559 company/models.py:815 order/models.py:487 -#: order/models.py:2082 part/models.py:1129 report/models.py:227 -#: report/models.py:858 report/models.py:884 +#: order/models.py:2084 part/models.py:1129 report/models.py:228 +#: report/models.py:872 report/models.py:898 #: report/templates/report/inventree_build_order_report.html:117 #: stock/models.py:93 msgid "Description" msgstr "描述" -#: InvenTree/models.py:1046 stock/models.py:94 +#: InvenTree/models.py:1047 stock/models.py:94 msgid "Description (optional)" msgstr "描述(選填)" -#: InvenTree/models.py:1061 common/models.py:3050 +#: InvenTree/models.py:1062 common/models.py:3050 msgid "Path" msgstr "路徑" -#: InvenTree/models.py:1166 +#: InvenTree/models.py:1167 msgid "Duplicate names cannot exist under the same parent" msgstr "同一個上層元件下不能有重複的名字" -#: InvenTree/models.py:1250 +#: InvenTree/models.py:1251 msgid "Markdown notes (optional)" msgstr "Markdown 註記(選填)" -#: InvenTree/models.py:1300 +#: InvenTree/models.py:1301 msgid "Barcode Data" msgstr "條碼資料" -#: InvenTree/models.py:1301 +#: InvenTree/models.py:1302 msgid "Third party barcode data" msgstr "第三方條碼資料" -#: InvenTree/models.py:1307 +#: InvenTree/models.py:1308 msgid "Barcode Hash" msgstr "條碼雜湊值" -#: InvenTree/models.py:1308 +#: InvenTree/models.py:1309 msgid "Unique hash of barcode data" msgstr "條碼資料的唯一雜湊值" -#: InvenTree/models.py:1389 +#: InvenTree/models.py:1398 msgid "Existing barcode found" msgstr "發現現有條碼" -#: InvenTree/models.py:1489 +#: InvenTree/models.py:1498 msgid "Server Error" msgstr "伺服器錯誤" -#: InvenTree/models.py:1490 +#: InvenTree/models.py:1499 msgid "An error has been logged by the server." msgstr "伺服器紀錄了一個錯誤。" -#: InvenTree/models.py:1532 common/models.py:1781 +#: InvenTree/models.py:1541 common/models.py:1781 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -345,7 +349,7 @@ msgstr "必須是有效的數字" msgid "Currency" msgstr "貨幣" -#: InvenTree/serializers.py:408 part/serializers.py:1407 +#: InvenTree/serializers.py:408 part/serializers.py:1418 msgid "Select currency from available options" msgstr "從可用選項中選擇貨幣" @@ -521,11 +525,11 @@ msgstr "中文 (簡體)" msgid "Chinese (Traditional)" msgstr "中文 (繁體)" -#: InvenTree/tasks.py:668 +#: InvenTree/tasks.py:677 msgid "Update Available" msgstr "有可用更新" -#: InvenTree/tasks.py:669 +#: InvenTree/tasks.py:678 msgid "An update for InvenTree is available" msgstr "有新的 InvenTree 更新可用" @@ -537,7 +541,7 @@ msgstr "無效的物理單位" msgid "Not a valid currency code" msgstr "無效的貨幣代碼" -#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444 +#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442 #: order/serializers.py:128 msgid "Order Status" msgstr "訂單狀態" @@ -546,23 +550,23 @@ msgstr "訂單狀態" msgid "Parent Build" msgstr "上層生產工單" -#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791 -#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029 -#: stock/api.py:579 +#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 +#: stock/api.py:593 msgid "Include Variants" msgstr "包含變體" -#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 -#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250 -#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199 -#: order/models.py:2214 order/models.py:2382 order/models.py:2383 -#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156 -#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529 +#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 +#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197 +#: order/models.py:2216 order/models.py:2384 order/models.py:2385 +#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170 +#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529 #: part/models.py:3587 part/models.py:3608 part/models.py:3630 #: part/models.py:3771 part/models.py:4093 part/models.py:4520 -#: part/serializers.py:1356 part/serializers.py:2020 +#: part/serializers.py:1367 part/serializers.py:2031 #: report/templates/report/inventree_bill_of_materials_report.html:110 #: report/templates/report/inventree_bill_of_materials_report.html:137 #: report/templates/report/inventree_build_order_report.html:109 @@ -572,7 +576,7 @@ msgstr "包含變體" #: report/templates/report/inventree_sales_order_shipment_report.html:28 #: report/templates/report/inventree_stock_location_report.html:102 #: report/templates/report/inventree_transfer_order_report.html:25 -#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121 +#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121 #: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610 #: stock/serializers.py:958 templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -583,9 +587,9 @@ msgstr "包含變體" msgid "Part" msgstr "零件" -#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987 -#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658 -#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879 +#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001 +#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658 +#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893 msgid "Category" msgstr "類別" @@ -593,7 +597,7 @@ msgstr "類別" msgid "Ancestor Build" msgstr "可測試部分" -#: build/api.py:155 order/api.py:138 +#: build/api.py:155 order/api.py:136 msgid "Assigned to me" msgstr "分配給我" @@ -601,11 +605,11 @@ msgstr "分配給我" msgid "Assigned To" msgstr "負責人" -#: build/api.py:205 stock/api.py:922 +#: build/api.py:205 stock/api.py:936 msgid "Created before" msgstr "建立於之前" -#: build/api.py:209 stock/api.py:926 +#: build/api.py:209 stock/api.py:940 msgid "Created after" msgstr "建立於之後" @@ -641,99 +645,99 @@ msgstr "完成於之前" msgid "Completed after" msgstr "完成於之後" -#: build/api.py:252 order/api.py:243 +#: build/api.py:252 order/api.py:241 msgid "Min Date" msgstr "最小日期" -#: build/api.py:275 order/api.py:262 +#: build/api.py:275 order/api.py:260 msgid "Max Date" msgstr "最大日期" -#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988 +#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002 msgid "Exclude Tree" msgstr "排除樹" -#: build/api.py:418 +#: build/api.py:416 msgid "Build must be cancelled before it can be deleted" msgstr "工單必須被取消才能被刪除" -#: build/api.py:462 build/serializers.py:1379 part/models.py:4135 +#: build/api.py:460 build/serializers.py:1379 part/models.py:4135 msgid "Consumable" msgstr "耗材" -#: build/api.py:465 build/serializers.py:1382 part/models.py:4129 +#: build/api.py:463 build/serializers.py:1382 part/models.py:4129 msgid "Optional" msgstr "非必須項目" -#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476 -#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762 -#: stock/api.py:645 +#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476 +#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773 +#: stock/api.py:659 msgid "Assembly" msgstr "裝配" -#: build/api.py:471 +#: build/api.py:469 msgid "Tracked" msgstr "追蹤中" -#: build/api.py:474 build/serializers.py:1385 part/models.py:1279 +#: build/api.py:472 build/serializers.py:1385 part/models.py:1279 msgid "Testable" msgstr "可測試" -#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263 +#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261 msgid "Order Outstanding" msgstr "訂單未完成" -#: build/api.py:494 build/serializers.py:1481 order/api.py:971 -#: order/api.py:2222 +#: build/api.py:492 build/serializers.py:1481 order/api.py:969 +#: order/api.py:2220 msgid "Allocated" msgstr "已分配" -#: build/api.py:503 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "已消耗" -#: build/api.py:512 company/models.py:879 company/serializers.py:403 +#: build/api.py:510 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "可用數量" -#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400 -#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889 -#: part/serializers.py:1217 part/serializers.py:1800 +#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 +#: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "已訂購" -#: build/api.py:704 +#: build/api.py:702 msgid "Build not found" msgstr "找不到生產記錄" -#: build/api.py:1063 build/models.py:120 order/models.py:2247 +#: build/api.py:1061 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "生產工單" -#: build/api.py:1077 build/api.py:1081 build/serializers.py:374 +#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 -#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302 -#: order/api.py:2081 order/api.py:2086 order/serializers.py:886 -#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376 -#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622 -#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522 -#: stock/serializers.py:1757 stock/serializers.py:1861 -#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18 -#: users/models.py:547 +#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 +#: order/api.py:2079 order/api.py:2084 order/serializers.py:886 +#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 +#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 +#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 +#: stock/serializers.py:1768 stock/serializers.py:1872 +#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: users/models.py:545 msgid "Location" msgstr "地點" -#: build/api.py:1089 part/serializers.py:1401 +#: build/api.py:1087 part/serializers.py:1412 msgid "Output" msgstr "產出" -#: build/api.py:1091 +#: build/api.py:1089 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "依產出庫存項目 ID 篩選。使用 'null' 尋找未安裝的生產項目。" @@ -773,9 +777,9 @@ msgstr "目標日期必須晚於開始日期" msgid "Build Order Reference" msgstr "生產工單代號" -#: build/models.py:259 build/serializers.py:1376 order/models.py:696 -#: order/models.py:1427 order/models.py:2030 order/models.py:2988 -#: order/models.py:3437 part/models.py:4175 +#: build/models.py:259 build/serializers.py:1376 order/models.py:697 +#: order/models.py:1429 order/models.py:2032 order/models.py:2991 +#: order/models.py:3440 part/models.py:4175 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:35 #: report/templates/report/inventree_return_order_report.html:26 @@ -804,7 +808,7 @@ msgstr "銷售訂單代號" msgid "Sales Order to which this build is allocated" msgstr "分配此生產的銷售訂單" -#: build/models.py:302 build/serializers.py:1030 order/models.py:3457 +#: build/models.py:302 build/serializers.py:1030 order/models.py:3460 #: order/serializers.py:2061 msgid "Source Location" msgstr "來源倉儲地點" @@ -821,7 +825,7 @@ msgstr "外部生產" msgid "This build order is fulfilled externally" msgstr "此生產工單由外部履行" -#: build/models.py:320 order/models.py:3467 +#: build/models.py:320 order/models.py:3470 msgid "Destination Location" msgstr "目標倉儲地點" @@ -854,7 +858,7 @@ msgid "Build status code" msgstr "生產狀態代碼" #: build/models.py:356 build/serializers.py:361 order/serializers.py:902 -#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695 +#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706 msgid "Batch Code" msgstr "批號" @@ -883,8 +887,8 @@ msgstr "目標完成日期" msgid "Target date for build completion. Build will be overdue after this date." msgstr "生產的預計完成日期。若超過此日期則工單會逾期。" -#: build/models.py:384 order/models.py:744 order/models.py:3027 -#: order/models.py:3486 +#: build/models.py:384 order/models.py:745 order/models.py:3030 +#: order/models.py:3489 msgid "Completion Date" msgstr "完成日期" @@ -900,7 +904,7 @@ msgstr "發布者" msgid "User who issued this build order" msgstr "發布此生產工單的使用者" -#: build/models.py:419 common/models.py:189 order/api.py:188 +#: build/models.py:419 common/models.py:189 order/api.py:186 #: order/models.py:556 part/models.py:1359 #: report/templates/report/inventree_build_order_report.html:158 msgid "Responsible" @@ -928,7 +932,7 @@ msgid "Priority of this build order" msgstr "此生產工單的優先程度" #: build/models.py:443 common/models.py:159 common/models.py:173 -#: order/api.py:174 order/models.py:496 order/models.py:2062 +#: order/api.py:172 order/models.py:496 order/models.py:2064 msgid "Project Code" msgstr "專案代碼" @@ -962,9 +966,9 @@ msgstr "產出與生產訂單不匹配" #: build/models.py:1050 build/models.py:1156 build/serializers.py:287 #: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695 -#: order/models.py:794 order/serializers.py:672 order/serializers.py:897 +#: order/models.py:795 order/serializers.py:672 order/serializers.py:897 #: part/models.py:3983 stock/models.py:992 stock/models.py:1489 -#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684 +#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695 msgid "Quantity must be greater than zero" msgstr "數量必須大於零" @@ -999,7 +1003,7 @@ msgstr "生產對象" #: build/models.py:1732 build/models.py:2057 build/serializers.py:273 #: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373 -#: order/models.py:2002 order/models.py:2871 order/models.py:3911 +#: order/models.py:2004 order/models.py:2873 order/models.py:3914 #: order/serializers.py:1841 order/serializers.py:2407 #: order/serializers.py:2978 part/models.py:3543 part/models.py:4123 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1049,7 +1053,7 @@ msgstr "有序號的品項數量必須為1" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "分配的數量({q})不能超過可用的庫存數量({a})" -#: build/models.py:1958 order/models.py:2820 order/models.py:3875 +#: build/models.py:1958 order/models.py:2822 order/models.py:3878 msgid "Stock item is over-allocated" msgstr "庫存品項超額分配" @@ -1057,8 +1061,8 @@ msgstr "庫存品項超額分配" #: order/serializers.py:1669 order/serializers.py:1690 #: order/serializers.py:2764 order/serializers.py:2785 #: report/templates/report/inventree_sales_order_shipment_report.html:29 -#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103 -#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490 +#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103 +#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501 msgid "Stock Item" msgstr "庫存品項" @@ -1082,7 +1086,7 @@ msgstr "目的庫存品項" msgid "Build Level" msgstr "構建等級" -#: build/serializers.py:136 part/serializers.py:1303 +#: build/serializers.py:136 part/serializers.py:1314 msgid "Part Name" msgstr "零件名稱" @@ -1139,7 +1143,7 @@ msgstr "自動分配序號" msgid "Automatically allocate required items with matching serial numbers" msgstr "自動為需要項目分配對應的序號" -#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216 +#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230 #: stock/models.py:2013 msgid "The following serial numbers already exist or are invalid" msgstr "序號已存在或無效" @@ -1272,7 +1276,7 @@ msgstr "生產行項目" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part 必須與生產訂單零件相同" -#: build/serializers.py:887 stock/serializers.py:1387 +#: build/serializers.py:887 stock/serializers.py:1398 msgid "Item must be in stock" msgstr "商品必須有庫存" @@ -1385,8 +1389,8 @@ msgstr "安裝至" msgid "Build" msgstr "生產" -#: build/serializers.py:1257 company/models.py:637 order/api.py:330 -#: order/api.py:335 order/api.py:562 order/serializers.py:664 +#: build/serializers.py:1257 company/models.py:637 order/api.py:328 +#: order/api.py:333 order/api.py:560 order/serializers.py:664 #: stock/models.py:1088 stock/serializers.py:589 msgid "Supplier Part" msgstr "供應商零件" @@ -1416,24 +1420,24 @@ msgid "Allow Variants" msgstr "允許變體" #: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862 -#: part/models.py:4512 stock/api.py:892 +#: part/models.py:4512 stock/api.py:906 msgid "BOM Item" msgstr "物料清單項" #: build/serializers.py:1484 order/serializers.py:1389 -#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804 +#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815 msgid "In Production" msgstr "生產中" -#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225 +#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236 msgid "Scheduled to Build" msgstr "排程生產中" -#: build/serializers.py:1489 part/serializers.py:913 +#: build/serializers.py:1489 part/serializers.py:924 msgid "External Stock" msgstr "外部庫存" -#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867 +#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878 msgid "Available Stock" msgstr "可用庫存" @@ -1527,31 +1531,31 @@ msgstr "逾期的生產訂單" msgid "Build order {bo} is now overdue" msgstr "生產訂單 {bo} 現已逾期" -#: common/api.py:766 +#: common/api.py:764 msgid "Has Thumbnail" msgstr "" -#: common/api.py:775 +#: common/api.py:773 msgid "Is Link" msgstr "是否鏈接" -#: common/api.py:783 +#: common/api.py:781 msgid "Is File" msgstr "是否為文件" -#: common/api.py:832 +#: common/api.py:828 msgid "User does not have permission to delete these attachments" msgstr "用户沒有權限刪除此附件" -#: common/api.py:845 +#: common/api.py:841 msgid "User does not have permission to edit this attachment" msgstr "" -#: common/api.py:871 +#: common/api.py:867 msgid "User does not have permission to delete this attachment" msgstr "用户沒有權限刪除此附件" -#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057 +#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057 msgid "Selection list is locked" msgstr "選擇列表已鎖定" @@ -1571,8 +1575,8 @@ msgstr "未提供有效的貨幣代碼" msgid "No plugin" msgstr "暫無插件" -#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376 -#: stock/api.py:1046 +#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377 +#: stock/api.py:1060 msgid "Tags" msgstr "" @@ -1645,8 +1649,8 @@ msgstr "鍵字符串必須是唯一的" #: common/models.py:2140 common/models.py:2141 common/models.py:3038 #: importer/models.py:101 part/models.py:3637 part/models.py:3665 #: plugin/models.py:392 plugin/models.py:393 -#: report/templates/report/inventree_test_report.html:105 users/models.py:124 -#: users/models.py:499 +#: report/templates/report/inventree_test_report.html:105 users/models.py:122 +#: users/models.py:497 msgid "User" msgstr "使用者" @@ -1654,8 +1658,8 @@ msgstr "使用者" msgid "Price break quantity" msgstr "批發價數量" -#: common/models.py:1381 company/serializers.py:304 order/models.py:2099 -#: order/models.py:3324 +#: common/models.py:1381 company/serializers.py:304 order/models.py:2101 +#: order/models.py:3327 msgid "Price" msgstr "價格" @@ -1677,8 +1681,8 @@ msgstr "此網絡鈎子的名稱" #: common/models.py:1448 common/models.py:2448 common/models.py:2583 #: company/models.py:194 company/models.py:783 machine/models.py:40 -#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193 -#: users/models.py:552 users/serializers.py:339 users/serializers.py:431 +#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191 +#: users/models.py:550 users/serializers.py:339 users/serializers.py:431 msgid "Active" msgstr "激活" @@ -1686,7 +1690,7 @@ msgstr "激活" msgid "Is this webhook active" msgstr "網絡鈎子是否已啓用" -#: common/models.py:1464 users/models.py:172 +#: common/models.py:1464 users/models.py:170 msgid "Token" msgstr "令牌" @@ -1756,7 +1760,7 @@ msgstr "標題" #: common/models.py:1755 common/models.py:2123 company/models.py:188 #: company/models.py:479 company/models.py:550 company/models.py:806 -#: order/models.py:502 order/models.py:2043 order/models.py:2619 +#: order/models.py:502 order/models.py:2045 order/models.py:2621 #: part/models.py:1180 #: report/templates/report/inventree_build_order_report.html:164 msgid "Link" @@ -2172,7 +2176,7 @@ msgstr "此參數的有效選擇 (逗號分隔)" msgid "Selection list for this parameter" msgstr "此參數的選擇清單" -#: common/models.py:2770 part/models.py:3797 report/models.py:296 +#: common/models.py:2770 part/models.py:3797 report/models.py:297 msgid "Enabled" msgstr "已啓用" @@ -2204,8 +2208,8 @@ msgstr "模型 ID" msgid "ID of the target model for this parameter" msgstr "此參數的目標模型 ID" -#: common/models.py:2979 common/setting/system.py:470 report/models.py:382 -#: report/models.py:703 report/serializers.py:117 report/serializers.py:158 +#: common/models.py:2979 common/setting/system.py:470 report/models.py:383 +#: report/models.py:717 report/serializers.py:117 report/serializers.py:158 #: stock/serializers.py:246 msgid "Template" msgstr "模板" @@ -2262,7 +2266,7 @@ msgstr "掃描條碼的日期和時間" msgid "URL endpoint which processed the barcode" msgstr "處理條碼的 URL 終點" -#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93 +#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93 msgid "Context" msgstr "上下文" @@ -2384,7 +2388,7 @@ msgid "Email Threads" msgstr "電子郵件討論串" #: common/models.py:3366 generic/states/serializers.py:16 -#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113 +#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111 msgid "Key" msgstr "鍵" @@ -2430,7 +2434,7 @@ msgstr "{verbose_name} 已取消" msgid "A order that is assigned to you was canceled" msgstr "分配給您的訂單已取消" -#: common/notifications.py:73 common/notifications.py:80 order/api.py:613 +#: common/notifications.py:73 common/notifications.py:80 order/api.py:611 msgid "Items Received" msgstr "收到的物品" @@ -2524,7 +2528,7 @@ msgstr "檔案名稱" #: common/serializers.py:809 common/serializers.py:876 #: common/serializers.py:952 importer/models.py:90 report/api.py:42 -#: report/models.py:302 report/serializers.py:71 +#: report/models.py:303 report/serializers.py:71 msgid "Model Type" msgstr "模型類型" @@ -2914,8 +2918,8 @@ msgstr "零件默認為模板" msgid "Parts can be assembled from other components by default" msgstr "默認情況下,元件可由其他零件組裝而成" -#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771 -#: part/serializers.py:1779 +#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782 +#: part/serializers.py:1790 msgid "Component" msgstr "組件" @@ -2931,7 +2935,7 @@ msgstr "可購買" msgid "Parts are purchaseable by default" msgstr "默認情況下可購買零件" -#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649 +#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663 msgid "Salable" msgstr "可銷售" @@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports" msgstr "記錄生成報告時出現的錯誤" #: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30 -#: report/models.py:390 +#: report/models.py:391 msgid "Page Size" msgstr "頁面大小" @@ -4128,49 +4132,49 @@ msgstr "" msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children" msgstr "" -#: common/validators.py:39 +#: common/validators.py:40 msgid "All models" msgstr "所有模型" -#: common/validators.py:64 +#: common/validators.py:65 msgid "No attachment model type provided" msgstr "未提供附件型號" -#: common/validators.py:70 +#: common/validators.py:71 msgid "Invalid attachment model type" msgstr "附件模型類型無效" -#: common/validators.py:86 +#: common/validators.py:87 #, python-brace-format msgid "File size exceeds maximum upload limit of {max_size} MB" msgstr "" -#: common/validators.py:92 +#: common/validators.py:93 msgid "Invalid file name" msgstr "" -#: common/validators.py:126 +#: common/validators.py:127 msgid "Minimum places cannot be greater than maximum places" msgstr "最小位置不能大於最大位置" -#: common/validators.py:138 +#: common/validators.py:139 msgid "Maximum places cannot be less than minimum places" msgstr "最大名額不能小於最小名額" -#: common/validators.py:149 +#: common/validators.py:150 msgid "An empty domain is not allowed." msgstr "不允許空域。" -#: common/validators.py:151 +#: common/validators.py:152 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "無效的域名: {domain}" -#: common/validators.py:167 +#: common/validators.py:168 msgid "Value must be uppercase" msgstr "值必須為大寫" -#: common/validators.py:173 +#: common/validators.py:174 msgid "Value must be a valid variable identifier" msgstr "值必須為有效的變數識別符" @@ -4199,12 +4203,12 @@ msgid "Supplier is Active" msgstr "供應商已激活" #: company/api.py:284 company/models.py:536 company/serializers.py:452 -#: part/serializers.py:514 +#: part/serializers.py:525 msgid "Manufacturer" msgstr "製造商" #: company/api.py:291 company/models.py:124 company/models.py:404 -#: stock/api.py:910 +#: stock/api.py:924 msgid "Company" msgstr "公司" @@ -4245,7 +4249,7 @@ msgid "Contact email address" msgstr "聯繫人電子郵箱地址" #: company/models.py:181 company/models.py:311 order/models.py:565 -#: users/models.py:559 +#: users/models.py:557 msgid "Contact" msgstr "聯繫人" @@ -4297,7 +4301,7 @@ msgstr "稅籍編號" msgid "Company Tax ID" msgstr "公司稅籍編號" -#: company/models.py:350 order/models.py:575 order/models.py:2564 +#: company/models.py:350 order/models.py:575 order/models.py:2566 msgid "Address" msgstr "地址" @@ -4390,7 +4394,7 @@ msgid "Link to address information (external)" msgstr "鏈接地址信息 (外部)" #: company/models.py:508 company/models.py:799 company/serializers.py:480 -#: stock/api.py:567 +#: stock/api.py:581 msgid "Manufacturer Part" msgstr "製造商零件" @@ -4408,7 +4412,7 @@ msgid "Select manufacturer" msgstr "選擇製造商" #: company/models.py:543 company/serializers.py:491 order/serializers.py:783 -#: part/serializers.py:524 +#: part/serializers.py:535 msgid "MPN" msgstr "製造商零件編號" @@ -4437,10 +4441,10 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "鏈接的製造商零件必須引用相同的基礎零件" #: company/models.py:771 company/serializers.py:439 company/serializers.py:474 -#: order/models.py:716 part/serializers.py:498 +#: order/models.py:717 part/serializers.py:509 #: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27 #: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27 -#: stock/api.py:573 templates/email/overdue_purchase_order.html:16 +#: stock/api.py:587 templates/email/overdue_purchase_order.html:16 msgid "Supplier" msgstr "供應商" @@ -4448,7 +4452,7 @@ msgstr "供應商" msgid "Select supplier" msgstr "選擇供應商" -#: company/models.py:778 part/serializers.py:509 +#: company/models.py:778 part/serializers.py:520 msgid "Supplier stock keeping unit" msgstr "供應商庫存管理單位" @@ -4485,7 +4489,7 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "最低費用(例如庫存費)" #: company/models.py:840 order/serializers.py:928 stock/models.py:1108 -#: stock/serializers.py:1710 +#: stock/serializers.py:1721 msgid "Packaging" msgstr "打包" @@ -4533,7 +4537,7 @@ msgstr "此供應商使用的默認貨幣" msgid "Company Name" msgstr "公司名稱" -#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449 +#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449 msgid "In Stock" msgstr "有庫存" @@ -4722,7 +4726,7 @@ msgstr "原始行數據" msgid "Errors" msgstr "錯誤" -#: importer/models.py:667 part/serializers.py:1179 +#: importer/models.py:667 part/serializers.py:1190 msgid "Valid" msgstr "有效" @@ -4838,7 +4842,7 @@ msgstr "每個標籤要打印的份數" msgid "Connected" msgstr "已連接" -#: machine/machine_types/label_printer.py:232 order/api.py:2425 +#: machine/machine_types/label_printer.py:232 order/api.py:2423 msgid "Unknown" msgstr "未知" @@ -4942,7 +4946,7 @@ msgstr "屬性鍵值" msgid "Value of the property" msgstr "屬性值" -#: machine/serializers.py:30 users/models.py:236 +#: machine/serializers.py:30 users/models.py:234 msgid "Group" msgstr "組" @@ -4966,118 +4970,118 @@ msgstr "最大進度" msgid "Maximum value for progress type, required if type=progress" msgstr "進度類型的最大值,當 type=progress 時為必填" -#: order/api.py:134 +#: order/api.py:132 msgid "Order Reference" msgstr "訂單參考" -#: order/api.py:162 order/api.py:1270 order/api.py:2062 +#: order/api.py:160 order/api.py:1268 order/api.py:2060 msgid "Outstanding" msgstr "未完成" -#: order/api.py:178 +#: order/api.py:176 msgid "Has Project Code" msgstr "有項目編碼" -#: order/api.py:192 order/models.py:533 +#: order/api.py:190 order/models.py:533 msgid "Created By" msgstr "創建人" -#: order/api.py:196 +#: order/api.py:194 msgid "Created Before" msgstr "建立時間早於" -#: order/api.py:200 +#: order/api.py:198 msgid "Created After" msgstr "建立時間晚於" -#: order/api.py:204 +#: order/api.py:202 msgid "Has Start Date" msgstr "具有開始日期" -#: order/api.py:212 +#: order/api.py:210 msgid "Start Date Before" msgstr "開始日期早於" -#: order/api.py:216 +#: order/api.py:214 msgid "Start Date After" msgstr "開始日期晚於" -#: order/api.py:220 +#: order/api.py:218 msgid "Has Target Date" msgstr "具有目標日期" -#: order/api.py:228 +#: order/api.py:226 msgid "Target Date Before" msgstr "目標日期早於" -#: order/api.py:232 +#: order/api.py:230 msgid "Target Date After" msgstr "目標日期晚於" -#: order/api.py:236 +#: order/api.py:234 msgid "Updated Before" msgstr "更新之前" -#: order/api.py:240 +#: order/api.py:238 msgid "Updated After" msgstr "更新之後" -#: order/api.py:293 +#: order/api.py:291 msgid "Has Pricing" msgstr "有定價" -#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880 +#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878 msgid "Completed Before" msgstr "完成時間早於" -#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884 +#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882 msgid "Completed After" msgstr "完成時間晚於" -#: order/api.py:356 order/api.py:360 +#: order/api.py:354 order/api.py:358 msgid "External Build Order" msgstr "外部生產工單" -#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025 -#: order/api.py:2184 order/models.py:2195 order/models.py:2321 -#: order/models.py:2373 order/models.py:2555 order/models.py:2751 -#: order/models.py:3280 order/models.py:3346 order/models.py:3754 +#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023 +#: order/api.py:2182 order/models.py:2197 order/models.py:2323 +#: order/models.py:2375 order/models.py:2557 order/models.py:2753 +#: order/models.py:3283 order/models.py:3349 order/models.py:3757 msgid "Order" msgstr "訂單" -#: order/api.py:549 order/api.py:1001 order/api.py:2252 +#: order/api.py:547 order/api.py:999 order/api.py:2250 msgid "Order Complete" msgstr "訂單完成" -#: order/api.py:581 order/api.py:585 order/serializers.py:794 +#: order/api.py:579 order/api.py:583 order/serializers.py:794 msgid "Internal Part" msgstr "內部零件" -#: order/api.py:603 +#: order/api.py:601 msgid "Order Pending" msgstr "訂單待定" -#: order/api.py:986 order/api.py:2237 +#: order/api.py:984 order/api.py:2235 msgid "Completed" msgstr "已完成" -#: order/api.py:1286 +#: order/api.py:1284 msgid "Has Shipment" msgstr "已出貨" -#: order/api.py:1504 +#: order/api.py:1502 msgid "Shipment not found" msgstr "找不到發貨紀錄" -#: order/api.py:2417 order/models.py:632 order/models.py:2196 -#: order/models.py:2322 +#: order/api.py:2415 order/models.py:632 order/models.py:2198 +#: order/models.py:2324 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15 msgid "Purchase Order" msgstr "採購訂單" -#: order/api.py:2419 order/models.py:1365 order/models.py:2374 -#: order/models.py:2556 order/models.py:2752 +#: order/api.py:2417 order/models.py:1366 order/models.py:2376 +#: order/models.py:2558 order/models.py:2754 #: report/templates/report/inventree_build_order_report.html:135 #: report/templates/report/inventree_sales_order_report.html:14 #: report/templates/report/inventree_sales_order_shipment_report.html:15 @@ -5085,14 +5089,14 @@ msgstr "採購訂單" msgid "Sales Order" msgstr "銷售訂單" -#: order/api.py:2421 order/models.py:2923 order/models.py:3281 -#: order/models.py:3347 +#: order/api.py:2419 order/models.py:2925 order/models.py:3284 +#: order/models.py:3350 #: report/templates/report/inventree_return_order_report.html:13 #: templates/email/overdue_return_order.html:15 msgid "Return Order" msgstr "退貨訂單" -#: order/api.py:2423 order/models.py:3369 order/models.py:3755 +#: order/api.py:2421 order/models.py:3372 order/models.py:3758 #: report/templates/report/inventree_transfer_order_report.html:12 msgid "Transfer Order" msgstr "" @@ -5135,11 +5139,11 @@ msgstr "地址不符合選定的公司" msgid "Order description (optional)" msgstr "訂單描述 (可選)" -#: order/models.py:497 order/models.py:2063 +#: order/models.py:497 order/models.py:2065 msgid "Select project code for this order" msgstr "為此訂單選擇項目編碼" -#: order/models.py:503 order/models.py:2044 order/models.py:2620 +#: order/models.py:503 order/models.py:2046 order/models.py:2622 msgid "Link to external page" msgstr "鏈接到外部頁面" @@ -5151,7 +5155,7 @@ msgstr "開始日期" msgid "Scheduled start date for this order" msgstr "此訂單的預定開始日期" -#: order/models.py:517 order/models.py:2051 order/serializers.py:348 +#: order/models.py:517 order/models.py:2053 order/serializers.py:348 #: report/templates/report/inventree_build_order_report.html:125 msgid "Target Date" msgstr "預計日期" @@ -5184,487 +5188,487 @@ msgstr "此訂單的聯繫人" msgid "Company address for this order" msgstr "此訂單的公司地址" -#: order/models.py:697 order/models.py:1428 +#: order/models.py:698 order/models.py:1430 msgid "Order reference" msgstr "訂單參考" -#: order/models.py:706 order/models.py:1452 order/models.py:3013 -#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540 +#: order/models.py:707 order/models.py:1454 order/models.py:3016 +#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538 msgid "Status" msgstr "狀態" -#: order/models.py:707 +#: order/models.py:708 msgid "Purchase order status" msgstr "採購訂單狀態" -#: order/models.py:717 +#: order/models.py:718 msgid "Company from which the items are being ordered" msgstr "訂購物品的公司" -#: order/models.py:728 +#: order/models.py:729 msgid "Supplier Reference" msgstr "供應商參考" -#: order/models.py:729 +#: order/models.py:730 msgid "Supplier order reference code" msgstr "供應商訂單參考代碼" -#: order/models.py:738 +#: order/models.py:739 msgid "received by" msgstr "接收人" -#: order/models.py:745 order/models.py:3028 order/models.py:3487 +#: order/models.py:746 order/models.py:3031 order/models.py:3490 msgid "Date order was completed" msgstr "訂單完成日期" -#: order/models.py:754 order/models.py:2254 +#: order/models.py:755 order/models.py:2256 msgid "Destination" msgstr "目的地" -#: order/models.py:755 order/models.py:2258 +#: order/models.py:756 order/models.py:2260 msgid "Destination for received items" msgstr "收到項目的存放目的地" -#: order/models.py:801 +#: order/models.py:802 msgid "Part supplier must match PO supplier" msgstr "零件供應商必須與採購訂單供應商匹配" -#: order/models.py:1071 +#: order/models.py:1072 msgid "Line item does not match purchase order" msgstr "行項目與採購訂單不匹配" -#: order/models.py:1074 +#: order/models.py:1075 msgid "Line item is missing a linked part" msgstr "行項目缺少關聯零件" -#: order/models.py:1088 +#: order/models.py:1089 msgid "Quantity must be a positive number" msgstr "數量必須是正數" -#: order/models.py:1122 +#: order/models.py:1123 msgid "Serial numbers cannot be assigned to virtual parts" msgstr "序號無法分配給虛擬零件" -#: order/models.py:1346 +#: order/models.py:1347 msgid "Allow any stock (serialized or unserialized)" msgstr "" -#: order/models.py:1347 +#: order/models.py:1348 msgid "Serialized stock only" msgstr "" -#: order/models.py:1348 +#: order/models.py:1349 msgid "Unserialized stock only" msgstr "" -#: order/models.py:1439 order/models.py:3000 stock/models.py:1130 -#: stock/models.py:1131 stock/serializers.py:1426 +#: order/models.py:1441 order/models.py:3003 stock/models.py:1130 +#: stock/models.py:1131 stock/serializers.py:1437 #: templates/email/overdue_return_order.html:16 #: templates/email/overdue_sales_order.html:16 msgid "Customer" msgstr "客户" -#: order/models.py:1440 +#: order/models.py:1442 msgid "Company to which the items are being sold" msgstr "出售物品的公司" -#: order/models.py:1453 +#: order/models.py:1455 msgid "Sales order status" msgstr "銷售訂單狀態" -#: order/models.py:1459 order/models.py:3020 +#: order/models.py:1461 order/models.py:3023 msgid "Customer Reference " msgstr "客户參考 " -#: order/models.py:1460 order/models.py:3021 +#: order/models.py:1462 order/models.py:3024 msgid "Customer order reference code" msgstr "客户訂單參考代碼" -#: order/models.py:1464 order/models.py:2572 +#: order/models.py:1466 order/models.py:2574 msgid "Shipment Date" msgstr "發貨日期" -#: order/models.py:1473 +#: order/models.py:1475 msgid "shipped by" msgstr "發貨人" -#: order/models.py:1648 order/models.py:3530 +#: order/models.py:1650 order/models.py:3533 msgid "Order is already complete" msgstr "訂單已完成" -#: order/models.py:1651 order/models.py:3533 +#: order/models.py:1653 order/models.py:3536 msgid "Order is already cancelled" msgstr "訂單已取消" -#: order/models.py:1655 +#: order/models.py:1657 msgid "Only an open order can be marked as complete" msgstr "只有未結訂單才能標記為已完成" -#: order/models.py:1659 +#: order/models.py:1661 msgid "Order cannot be completed as there are incomplete shipments" msgstr "由於發貨不完整,訂單無法完成" -#: order/models.py:1664 +#: order/models.py:1666 msgid "Order cannot be completed as there are incomplete allocations" msgstr "訂單無法完成,因為仍有未完成的分配" -#: order/models.py:1673 +#: order/models.py:1675 msgid "Order cannot be completed as there are incomplete line items" msgstr "訂單無法完成,因為行項目不完整" -#: order/models.py:1970 order/models.py:1995 +#: order/models.py:1972 order/models.py:1997 msgid "The order is locked and cannot be modified" msgstr "此訂單已鎖定,無法修改" -#: order/models.py:2003 +#: order/models.py:2005 msgid "Item quantity" msgstr "項目數量" -#: order/models.py:2021 +#: order/models.py:2023 msgid "Line Number" msgstr "行號" -#: order/models.py:2022 +#: order/models.py:2024 msgid "Line number for this item (optional)" msgstr "此項目的行號 (選填)" -#: order/models.py:2031 +#: order/models.py:2033 msgid "Line item reference" msgstr "行項目參考" -#: order/models.py:2038 +#: order/models.py:2040 msgid "Line item notes" msgstr "行項目註釋" -#: order/models.py:2053 +#: order/models.py:2055 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "此行項目的目標日期 (留空以使用訂單中的目標日期)" -#: order/models.py:2083 +#: order/models.py:2085 msgid "Line item description (optional)" msgstr "行項目描述 (可選)" -#: order/models.py:2090 +#: order/models.py:2092 msgid "Additional context for this line" msgstr "此行的附加上下文" -#: order/models.py:2100 +#: order/models.py:2102 msgid "Unit price" msgstr "單位價格" -#: order/models.py:2119 +#: order/models.py:2121 msgid "Purchase Order Line Item" msgstr "採購訂單行項目" -#: order/models.py:2148 +#: order/models.py:2150 msgid "Supplier part must match supplier" msgstr "供應商零件必須與供應商匹配" -#: order/models.py:2156 +#: order/models.py:2158 msgid "Build order must be marked as external" msgstr "生產工單必須標記為外部" -#: order/models.py:2163 +#: order/models.py:2165 msgid "Build orders can only be linked to assembly parts" msgstr "生產工單只能連結到組裝零件" -#: order/models.py:2169 +#: order/models.py:2171 msgid "Build order part must match line item part" msgstr "生產工單的零件必須與行項目的零件一致" -#: order/models.py:2179 +#: order/models.py:2181 msgid "An external build order is required for assembly parts" msgstr "" -#: order/models.py:2215 +#: order/models.py:2217 msgid "Supplier part" msgstr "供應商零件" -#: order/models.py:2222 +#: order/models.py:2224 msgid "Received" msgstr "已接收" -#: order/models.py:2223 +#: order/models.py:2225 msgid "Number of items received" msgstr "收到的物品數量" -#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669 +#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669 msgid "Purchase Price" msgstr "採購價格" -#: order/models.py:2232 +#: order/models.py:2234 msgid "Unit purchase price" msgstr "每單位的採購價格" -#: order/models.py:2248 +#: order/models.py:2250 msgid "External Build Order to be fulfilled by this line item" msgstr "由此行項目履行的外部生產工單" -#: order/models.py:2310 +#: order/models.py:2312 msgid "Purchase Order Extra Line" msgstr "採購訂單附加行" -#: order/models.py:2339 +#: order/models.py:2341 msgid "Sales Order Line Item" msgstr "銷售訂單行項目" -#: order/models.py:2366 +#: order/models.py:2368 msgid "Only salable parts can be assigned to a sales order" msgstr "只有可銷售的零件才能分配給銷售訂單" -#: order/models.py:2392 +#: order/models.py:2394 msgid "Sale Price" msgstr "售出價格" -#: order/models.py:2393 +#: order/models.py:2395 msgid "Unit sale price" msgstr "單位售出價格" -#: order/models.py:2402 order/status_codes.py:50 +#: order/models.py:2404 order/status_codes.py:50 msgid "Shipped" msgstr "已配送" -#: order/models.py:2403 +#: order/models.py:2405 msgid "Shipped quantity" msgstr "發貨數量" -#: order/models.py:2516 +#: order/models.py:2518 msgid "Sales Order Shipment" msgstr "銷售訂單發貨" -#: order/models.py:2529 +#: order/models.py:2531 msgid "Shipment address must match the customer" msgstr "配送地址必須跟客戶相符" -#: order/models.py:2565 +#: order/models.py:2567 msgid "Shipping address for this shipment" msgstr "配送的採購地址" -#: order/models.py:2573 +#: order/models.py:2575 msgid "Date of shipment" msgstr "發貨日期" -#: order/models.py:2579 +#: order/models.py:2581 msgid "Delivery Date" msgstr "送達日期" -#: order/models.py:2580 +#: order/models.py:2582 msgid "Date of delivery of shipment" msgstr "裝運交貨日期" -#: order/models.py:2588 +#: order/models.py:2590 msgid "Checked By" msgstr "審核人" -#: order/models.py:2589 +#: order/models.py:2591 msgid "User who checked this shipment" msgstr "檢查此裝運的用户" -#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856 +#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856 #: order/serializers.py:1990 order/serializers.py:2081 #: report/templates/report/inventree_sales_order_shipment_report.html:14 msgid "Shipment" msgstr "配送" -#: order/models.py:2597 +#: order/models.py:2599 msgid "Shipment number" msgstr "配送單號" -#: order/models.py:2605 +#: order/models.py:2607 msgid "Tracking Number" msgstr "跟蹤單號" -#: order/models.py:2606 +#: order/models.py:2608 msgid "Shipment tracking information" msgstr "配送跟蹤信息" -#: order/models.py:2613 +#: order/models.py:2615 msgid "Invoice Number" msgstr "發票編號" -#: order/models.py:2614 +#: order/models.py:2616 msgid "Reference number for associated invoice" msgstr "相關發票的參考號" -#: order/models.py:2660 +#: order/models.py:2662 msgid "Shipment has already been sent" msgstr "貨物已發出" -#: order/models.py:2663 +#: order/models.py:2665 msgid "Shipment has no allocated stock items" msgstr "發貨沒有分配庫存項目" -#: order/models.py:2670 +#: order/models.py:2672 msgid "Shipment must be checked before it can be completed" msgstr "發貨紀錄必須在完成前進行檢查" -#: order/models.py:2740 +#: order/models.py:2742 msgid "Sales Order Extra Line" msgstr "銷售訂單加行" -#: order/models.py:2769 +#: order/models.py:2771 msgid "Sales Order Allocation" msgstr "銷售訂單分配" -#: order/models.py:2792 order/models.py:2794 order/models.py:3847 -#: order/models.py:3849 +#: order/models.py:2794 order/models.py:2796 order/models.py:3850 +#: order/models.py:3852 msgid "Stock item has not been assigned" msgstr "庫存項目尚未分配" -#: order/models.py:2801 order/models.py:3856 +#: order/models.py:2803 order/models.py:3859 msgid "Cannot allocate stock item to a line with a different part" msgstr "無法將庫存項目分配給具有不同零件的行" -#: order/models.py:2804 order/models.py:3859 +#: order/models.py:2806 order/models.py:3862 msgid "Cannot allocate stock to a line without a part" msgstr "無法將庫存分配給沒有零件的生產線" -#: order/models.py:2807 order/models.py:3862 +#: order/models.py:2809 order/models.py:3865 msgid "Allocation quantity cannot exceed stock quantity" msgstr "分配數量不能超過庫存數量" -#: order/models.py:2823 order/models.py:3878 +#: order/models.py:2825 order/models.py:3881 msgid "Allocation quantity must be greater than zero" msgstr "分配的數量必須大於零" -#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726 +#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726 #: order/serializers.py:2812 msgid "Quantity must be 1 for serialized stock item" msgstr "序列化庫存項目的數量必須為1" -#: order/models.py:2829 +#: order/models.py:2831 msgid "Sales order does not match shipment" msgstr "銷售訂單與發貨不匹配" -#: order/models.py:2830 plugin/base/barcodes/api.py:709 +#: order/models.py:2832 plugin/base/barcodes/api.py:713 msgid "Shipment does not match sales order" msgstr "發貨與銷售訂單不匹配" -#: order/models.py:2838 order/models.py:3889 +#: order/models.py:2840 order/models.py:3892 msgid "Line" msgstr "行" -#: order/models.py:2849 +#: order/models.py:2851 msgid "Sales order shipment reference" msgstr "銷售訂單發貨參考" -#: order/models.py:2862 order/models.py:3288 order/models.py:3902 +#: order/models.py:2864 order/models.py:3291 order/models.py:3905 msgid "Item" msgstr "項目" -#: order/models.py:2863 order/models.py:3903 +#: order/models.py:2865 order/models.py:3906 msgid "Select stock item to allocate" msgstr "選擇要分配的庫存項目" -#: order/models.py:2872 order/models.py:3912 +#: order/models.py:2874 order/models.py:3915 msgid "Enter stock allocation quantity" msgstr "輸入庫存分配數量" -#: order/models.py:2989 +#: order/models.py:2992 msgid "Return Order reference" msgstr "退貨訂單參考" -#: order/models.py:3001 +#: order/models.py:3004 msgid "Company from which items are being returned" msgstr "退回物品的公司" -#: order/models.py:3014 +#: order/models.py:3017 msgid "Return order status" msgstr "退貨訂單狀態" -#: order/models.py:3246 +#: order/models.py:3249 msgid "Return Order Line Item" msgstr "退貨訂單行項目" -#: order/models.py:3259 +#: order/models.py:3262 msgid "Stock item must be specified" msgstr "必須指定庫存項目" -#: order/models.py:3263 +#: order/models.py:3266 msgid "Return quantity exceeds stock quantity" msgstr "退回數量超過庫存數量" -#: order/models.py:3268 +#: order/models.py:3271 msgid "Return quantity must be greater than zero" msgstr "退回數量必須大於零" -#: order/models.py:3273 +#: order/models.py:3276 msgid "Invalid quantity for serialized stock item" msgstr "序列化庫存項目的數量無效" -#: order/models.py:3289 +#: order/models.py:3292 msgid "Select item to return from customer" msgstr "選擇要從客户處退回的商品" -#: order/models.py:3304 +#: order/models.py:3307 msgid "Received Date" msgstr "接收日期" -#: order/models.py:3305 +#: order/models.py:3308 msgid "The date this return item was received" msgstr "收到此退貨項目的日期" -#: order/models.py:3317 +#: order/models.py:3320 msgid "Outcome" msgstr "結果" -#: order/models.py:3318 +#: order/models.py:3321 msgid "Outcome for this line item" msgstr "該行項目的結果" -#: order/models.py:3325 +#: order/models.py:3328 msgid "Cost associated with return or repair for this line item" msgstr "與此行項目的退貨或維修相關的成本" -#: order/models.py:3335 +#: order/models.py:3338 msgid "Return Order Extra Line" msgstr "退貨訂單附加行" -#: order/models.py:3436 +#: order/models.py:3439 msgid "Transfer Order Reference" msgstr "" -#: order/models.py:3447 +#: order/models.py:3450 msgid "Transfer order status" msgstr "" -#: order/models.py:3462 +#: order/models.py:3465 msgid "Source for transferred items" msgstr "" -#: order/models.py:3472 +#: order/models.py:3475 msgid "Destination for transferred items" msgstr "" -#: order/models.py:3477 +#: order/models.py:3480 msgid "Consume Stock" msgstr "" -#: order/models.py:3479 +#: order/models.py:3482 msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item" msgstr "" -#: order/models.py:3537 +#: order/models.py:3540 msgid "Order cannot be completed until a destination location is set" msgstr "" -#: order/models.py:3542 +#: order/models.py:3545 msgid "Order cannot be completed until it is fully allocated" msgstr "" -#: order/models.py:3736 +#: order/models.py:3739 msgid "Transfer Order Line Item" msgstr "" -#: order/models.py:3769 +#: order/models.py:3772 msgid "transferred" msgstr "" -#: order/models.py:3770 +#: order/models.py:3773 msgid "transferred quantity" msgstr "" -#: order/models.py:3824 +#: order/models.py:3827 msgid "Transfer Order Allocation" msgstr "" @@ -5692,7 +5696,7 @@ msgstr "複製額外行" msgid "Copy extra line items from the original order" msgstr "從原始訂單複製額外的行項目" -#: order/serializers.py:99 part/serializers.py:439 +#: order/serializers.py:99 part/serializers.py:450 msgid "Copy Parameters" msgstr "複製參數" @@ -5784,11 +5788,11 @@ msgstr "合併項目" msgid "Merge items with the same part, destination and target date into one line item" msgstr "將具有相同零件、目的地和目標日期的項目合併到一個行項目中" -#: order/serializers.py:776 part/serializers.py:508 +#: order/serializers.py:776 part/serializers.py:519 msgid "SKU" msgstr "庫存量單位" -#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367 +#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378 msgid "Internal Part Number" msgstr "內部零件編號" @@ -5825,7 +5829,7 @@ msgid "Enter batch code for incoming stock items" msgstr "輸入入庫項目的批號" #: order/serializers.py:910 stock/models.py:1212 -#: templates/email/stale_stock_notification.html:22 users/models.py:137 +#: templates/email/stale_stock_notification.html:22 users/models.py:135 msgid "Expiry Date" msgstr "有效期至" @@ -6056,123 +6060,131 @@ msgstr "逾期退貨訂單" msgid "Return order {ro} is now overdue" msgstr "退貨訂單 {ro} 已逾期" -#: part/api.py:89 +#: part/api.py:90 msgid "Starred" msgstr "已加星標" -#: part/api.py:91 +#: part/api.py:92 msgid "Filter by starred categories" msgstr "按星標類別篩選" -#: part/api.py:108 stock/api.py:288 +#: part/api.py:109 stock/api.py:289 msgid "Depth" msgstr "深度" -#: part/api.py:108 +#: part/api.py:109 msgid "Filter by category depth" msgstr "按類別深度篩選" -#: part/api.py:126 stock/api.py:306 +#: part/api.py:127 stock/api.py:307 msgid "Top Level" msgstr "頂級" -#: part/api.py:128 +#: part/api.py:129 msgid "Filter by top-level categories" msgstr "按頂級類別篩選" -#: part/api.py:141 stock/api.py:321 +#: part/api.py:142 stock/api.py:322 msgid "Cascade" msgstr "級聯" -#: part/api.py:143 +#: part/api.py:144 msgid "Include sub-categories in filtered results" msgstr "在篩選結果中包含子類別" -#: part/api.py:163 +#: part/api.py:164 msgid "Parent" msgstr "父類" -#: part/api.py:165 +#: part/api.py:166 msgid "Filter by parent category" msgstr "按父類別篩選" -#: part/api.py:200 +#: part/api.py:201 msgid "Exclude sub-categories under the specified category" msgstr "排除指定類別下的子類別" -#: part/api.py:428 +#: part/api.py:298 stock/api.py:469 +msgid "Max Level" +msgstr "" + +#: part/api.py:300 stock/api.py:471 +msgid "Limit the depth of the category tree" +msgstr "" + +#: part/api.py:442 msgid "Has Results" msgstr "有結果" -#: part/api.py:658 +#: part/api.py:672 msgid "Is Variant" msgstr "為變體" -#: part/api.py:666 +#: part/api.py:680 msgid "Is Revision" msgstr "是修訂版本" -#: part/api.py:676 +#: part/api.py:690 msgid "Has Revisions" msgstr "有修訂版本" -#: part/api.py:874 +#: part/api.py:888 msgid "BOM Valid" msgstr "物料清單合規" -#: part/api.py:981 +#: part/api.py:995 msgid "Cascade Categories" msgstr "級聯類別" -#: part/api.py:982 +#: part/api.py:996 msgid "If true, include items in child categories of the given category" msgstr "若為 true,則包含給定類別的子類別中的項目" -#: part/api.py:988 +#: part/api.py:1002 msgid "Filter by numeric category ID or the literal 'null'" msgstr "依數字類別 ID 或常值 'null' 篩選" -#: part/api.py:1301 +#: part/api.py:1315 msgid "Assembly part is active" msgstr "組件零件處於作用中狀態" -#: part/api.py:1305 +#: part/api.py:1319 msgid "Assembly part is trackable" msgstr "組件零件可追蹤" -#: part/api.py:1309 +#: part/api.py:1323 msgid "Assembly part is testable" msgstr "裝配部份是可測試的" -#: part/api.py:1313 +#: part/api.py:1327 msgid "Assembly part is locked" msgstr "" -#: part/api.py:1318 +#: part/api.py:1332 msgid "Component part is active" msgstr "子零件處於作用中狀態" -#: part/api.py:1322 +#: part/api.py:1336 msgid "Component part is trackable" msgstr "子零件可追蹤" -#: part/api.py:1326 +#: part/api.py:1340 msgid "Component part is testable" msgstr "組件部份是可測試的" -#: part/api.py:1330 +#: part/api.py:1344 msgid "Component part is an assembly" msgstr "子零件是一個組件" -#: part/api.py:1334 +#: part/api.py:1348 msgid "Component part is virtual" msgstr "子零件是虛擬的" -#: part/api.py:1338 +#: part/api.py:1352 msgid "Has available stock" msgstr "有可用庫存" -#: part/api.py:1395 +#: part/api.py:1409 msgid "Uses" msgstr "使用" @@ -6213,7 +6225,7 @@ msgstr "此類別零件的默認關鍵字" msgid "Icon" msgstr "圖標" -#: part/models.py:137 part/serializers.py:175 part/serializers.py:196 +#: part/models.py:137 part/serializers.py:175 part/serializers.py:207 #: stock/models.py:187 msgid "Icon (optional)" msgstr "圖標(可選)" @@ -6349,7 +6361,7 @@ msgstr "提高搜索結果可見性的零件關鍵字" msgid "Part category" msgstr "零件類別" -#: part/models.py:1155 part/serializers.py:859 +#: part/models.py:1155 part/serializers.py:870 #: report/templates/report/inventree_stock_location_report.html:103 msgid "IPN" msgstr "內部零件號 IPN" @@ -6358,7 +6370,7 @@ msgstr "內部零件號 IPN" msgid "Part revision or version number" msgstr "零件修訂版本或版本號" -#: part/models.py:1164 report/models.py:233 +#: part/models.py:1164 report/models.py:234 msgid "Revision" msgstr "版本" @@ -6382,7 +6394,7 @@ msgstr "默認到期" msgid "Expiry time (in days) for stock items of this part" msgstr "此零件庫存項的過期時間 (天)" -#: part/models.py:1236 part/serializers.py:929 +#: part/models.py:1236 part/serializers.py:940 msgid "Minimum Stock" msgstr "最低庫存" @@ -6390,7 +6402,7 @@ msgstr "最低庫存" msgid "Minimum allowed stock level" msgstr "允許的最小庫存量" -#: part/models.py:1245 part/serializers.py:933 +#: part/models.py:1245 part/serializers.py:944 msgid "Maximum Stock" msgstr "" @@ -6759,7 +6771,7 @@ msgstr "子零件" msgid "Select part to be used in BOM" msgstr "選擇要用於物料清單的零件" -#: part/models.py:4111 part/serializers.py:1719 +#: part/models.py:4111 part/serializers.py:1730 msgid "Amount" msgstr "" @@ -6911,351 +6923,351 @@ msgstr "上級類別" msgid "Parent part category" msgstr "上級零件類別" -#: part/serializers.py:139 part/serializers.py:193 +#: part/serializers.py:139 part/serializers.py:204 msgid "Subcategories" msgstr "子類別" -#: part/serializers.py:232 +#: part/serializers.py:243 msgid "Results" msgstr "結果" -#: part/serializers.py:233 +#: part/serializers.py:244 msgid "Number of results recorded against this template" msgstr "根據該模板記錄的結果數量" -#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675 +#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675 msgid "Purchase currency of this stock item" msgstr "購買此庫存項的貨幣" -#: part/serializers.py:309 +#: part/serializers.py:320 msgid "File is not an image" msgstr "檔案不是圖片" -#: part/serializers.py:419 +#: part/serializers.py:430 msgid "Original Part" msgstr "原始零件" -#: part/serializers.py:420 +#: part/serializers.py:431 msgid "Select original part to duplicate" msgstr "選擇要複製的原始零件" -#: part/serializers.py:425 +#: part/serializers.py:436 msgid "Copy Image" msgstr "複製圖片" -#: part/serializers.py:426 +#: part/serializers.py:437 msgid "Copy image from original part" msgstr "從原零件複製圖片" -#: part/serializers.py:432 +#: part/serializers.py:443 msgid "Copy BOM" msgstr "複製物料清單" -#: part/serializers.py:433 +#: part/serializers.py:444 msgid "Copy bill of materials from original part" msgstr "從原始零件複製材料清單" -#: part/serializers.py:440 +#: part/serializers.py:451 msgid "Copy parameter data from original part" msgstr "從原始零件複製參數數據" -#: part/serializers.py:446 +#: part/serializers.py:457 msgid "Copy Notes" msgstr "複製備註" -#: part/serializers.py:447 +#: part/serializers.py:458 msgid "Copy notes from original part" msgstr "從原始零件複製備註" -#: part/serializers.py:453 +#: part/serializers.py:464 msgid "Copy Tests" msgstr "複製測試模板" -#: part/serializers.py:454 +#: part/serializers.py:465 msgid "Copy test templates from original part" msgstr "從原始零件複製測試模板" -#: part/serializers.py:472 +#: part/serializers.py:483 msgid "Initial Stock Quantity" msgstr "初始化庫存數量" -#: part/serializers.py:474 +#: part/serializers.py:485 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "指定此零件的初始庫存數量。如果數量為零,則不添加任何庫存。" -#: part/serializers.py:481 +#: part/serializers.py:492 msgid "Initial Stock Location" msgstr "初始化庫存地點" -#: part/serializers.py:482 +#: part/serializers.py:493 msgid "Specify initial stock location for this Part" msgstr "初始化指定此零件的庫存地點" -#: part/serializers.py:499 +#: part/serializers.py:510 msgid "Select supplier (or leave blank to skip)" msgstr "選擇供應商(或為空以跳過)" -#: part/serializers.py:515 +#: part/serializers.py:526 msgid "Select manufacturer (or leave blank to skip)" msgstr "選擇製造商(或為空)" -#: part/serializers.py:525 +#: part/serializers.py:536 msgid "Manufacturer part number" msgstr "製造商零件號" -#: part/serializers.py:532 +#: part/serializers.py:543 msgid "Selected company is not a valid supplier" msgstr "所選公司不是一個有效的供應商" -#: part/serializers.py:541 +#: part/serializers.py:552 msgid "Selected company is not a valid manufacturer" msgstr "所選公司不是一個有效的製造商" -#: part/serializers.py:552 +#: part/serializers.py:563 msgid "Manufacturer part matching this MPN already exists" msgstr "與此製造商零件編號 (MPN) 的相匹配的製造商零件已存在" -#: part/serializers.py:559 +#: part/serializers.py:570 msgid "Supplier part matching this SKU already exists" msgstr "匹配此庫存單位 (SKU) 的供應商零件已存在" -#: part/serializers.py:844 +#: part/serializers.py:855 msgid "Category Name" msgstr "類別名稱" -#: part/serializers.py:873 +#: part/serializers.py:884 msgid "Building" msgstr "正在生產" -#: part/serializers.py:874 +#: part/serializers.py:885 msgid "Quantity of this part currently being in production" msgstr "此零件目前生產中數量" -#: part/serializers.py:881 +#: part/serializers.py:892 msgid "Outstanding quantity of this part scheduled to be built" msgstr "此零件排程待製造未完成數量" -#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256 +#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267 #: users/ruleset.py:33 msgid "Stock Items" msgstr "庫存項" -#: part/serializers.py:905 +#: part/serializers.py:916 msgid "Revisions" msgstr "修訂" -#: part/serializers.py:909 part/serializers.py:1208 +#: part/serializers.py:920 part/serializers.py:1219 #: templates/email/low_stock_notification.html:16 #: templates/email/part_event_notification.html:17 msgid "Total Stock" msgstr "庫存總量" -#: part/serializers.py:917 +#: part/serializers.py:928 msgid "Unallocated Stock" msgstr "未分配的庫存" -#: part/serializers.py:925 +#: part/serializers.py:936 msgid "Variant Stock" msgstr "變體庫存" -#: part/serializers.py:1000 +#: part/serializers.py:1011 msgid "Duplicate Part" msgstr "重複零件" -#: part/serializers.py:1001 +#: part/serializers.py:1012 msgid "Copy initial data from another Part" msgstr "從另一個零件複製初始數據" -#: part/serializers.py:1007 +#: part/serializers.py:1018 msgid "Initial Stock" msgstr "初始庫存" -#: part/serializers.py:1008 +#: part/serializers.py:1019 msgid "Create Part with initial stock quantity" msgstr "創建具有初始庫存數量的零件" -#: part/serializers.py:1014 +#: part/serializers.py:1025 msgid "Supplier Information" msgstr "供應商信息" -#: part/serializers.py:1015 +#: part/serializers.py:1026 msgid "Add initial supplier information for this part" msgstr "添加此零件的初始供應商信息" -#: part/serializers.py:1024 +#: part/serializers.py:1035 msgid "Copy Category Parameters" msgstr "複製類別參數" -#: part/serializers.py:1025 +#: part/serializers.py:1036 msgid "Copy parameter templates from selected part category" msgstr "從選擇的零件複製參數模版" -#: part/serializers.py:1030 +#: part/serializers.py:1041 msgid "Existing Image" msgstr "現有的圖片" -#: part/serializers.py:1031 +#: part/serializers.py:1042 msgid "Filename of an existing part image" msgstr "現有零件圖片的文件名" -#: part/serializers.py:1048 +#: part/serializers.py:1059 msgid "Image file does not exist" msgstr "圖片不存在" -#: part/serializers.py:1180 +#: part/serializers.py:1191 msgid "Validate entire Bill of Materials" msgstr "驗證整個物料清單" -#: part/serializers.py:1214 part/serializers.py:1810 +#: part/serializers.py:1225 part/serializers.py:1821 msgid "Can Build" msgstr "可以創建" -#: part/serializers.py:1231 +#: part/serializers.py:1242 msgid "Required for Build Orders" msgstr "生產工單需求數" -#: part/serializers.py:1236 +#: part/serializers.py:1247 msgid "Allocated to Build Orders" msgstr "已分配至生產工單" -#: part/serializers.py:1243 +#: part/serializers.py:1254 msgid "Required for Sales Orders" msgstr "銷售訂單需求數" -#: part/serializers.py:1247 +#: part/serializers.py:1258 msgid "Allocated to Sales Orders" msgstr "已分配至銷售訂單" -#: part/serializers.py:1307 +#: part/serializers.py:1318 msgid "Part IPN" msgstr "零件 IPN" -#: part/serializers.py:1314 +#: part/serializers.py:1325 msgid "Part Description" msgstr "零件描述" -#: part/serializers.py:1358 +#: part/serializers.py:1369 msgid "Select a part to generate stocktake information for that part (and any variant parts)" msgstr "選擇一個零件以產生該零件 (及其任何變體零件) 的盤點資訊" -#: part/serializers.py:1368 +#: part/serializers.py:1379 msgid "Select a category to include all parts within that category (and subcategories)" msgstr "選擇一個類別以包含該類別 (及其子類別) 內的所有零件" -#: part/serializers.py:1378 +#: part/serializers.py:1389 msgid "Select a location to include all parts with stock in that location (including sub-locations)" msgstr "選擇一個位置以包含該位置 (及其子位置) 內所有有庫存的零件" -#: part/serializers.py:1385 +#: part/serializers.py:1396 msgid "Generate Stocktake Entries" msgstr "產生盤點項目" -#: part/serializers.py:1386 +#: part/serializers.py:1397 msgid "Save stocktake entries for the selected parts" msgstr "儲存選定零件的盤點項目" -#: part/serializers.py:1393 +#: part/serializers.py:1404 msgid "Generate Report" msgstr "產製報表" -#: part/serializers.py:1394 +#: part/serializers.py:1405 msgid "Generate a stocktake report for the selected parts" msgstr "產製選定零件的庫存報表" -#: part/serializers.py:1497 +#: part/serializers.py:1508 msgid "Minimum Price" msgstr "最低價格" -#: part/serializers.py:1498 +#: part/serializers.py:1509 msgid "Override calculated value for minimum price" msgstr "覆蓋已計算的最低價格值" -#: part/serializers.py:1505 +#: part/serializers.py:1516 msgid "Minimum price currency" msgstr "最低價格貨幣" -#: part/serializers.py:1512 +#: part/serializers.py:1523 msgid "Maximum Price" msgstr "最高價格" -#: part/serializers.py:1513 +#: part/serializers.py:1524 msgid "Override calculated value for maximum price" msgstr "覆蓋已計算的最高價格值" -#: part/serializers.py:1520 +#: part/serializers.py:1531 msgid "Maximum price currency" msgstr "最高價格貨幣" -#: part/serializers.py:1549 +#: part/serializers.py:1560 msgid "Update" msgstr "更新" -#: part/serializers.py:1550 +#: part/serializers.py:1561 msgid "Update pricing for this part" msgstr "更新這個零件的價格" -#: part/serializers.py:1573 +#: part/serializers.py:1584 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "無法將所提供的貨幣轉換為 {default_currency}" -#: part/serializers.py:1580 +#: part/serializers.py:1591 msgid "Minimum price must not be greater than maximum price" msgstr "最低價格不能高於最高價格。" -#: part/serializers.py:1583 +#: part/serializers.py:1594 msgid "Maximum price must not be less than minimum price" msgstr "最高價格不能低於最低價格" -#: part/serializers.py:1720 +#: part/serializers.py:1731 msgid "Amount required for this item (can include units)" msgstr "" -#: part/serializers.py:1737 +#: part/serializers.py:1748 msgid "Select the parent assembly" msgstr "選擇父裝配" -#: part/serializers.py:1772 +#: part/serializers.py:1783 msgid "Select the component part" msgstr "選擇零部件" -#: part/serializers.py:1892 +#: part/serializers.py:1903 msgid "Invalid quantity format" msgstr "" -#: part/serializers.py:2021 +#: part/serializers.py:2032 msgid "Select part to copy BOM from" msgstr "選擇要複製物料清單的零件" -#: part/serializers.py:2029 +#: part/serializers.py:2040 msgid "Remove Existing Data" msgstr "移除現有數據" -#: part/serializers.py:2030 +#: part/serializers.py:2041 msgid "Remove existing BOM items before copying" msgstr "複製前刪除現有的物料清單項目" -#: part/serializers.py:2035 +#: part/serializers.py:2046 msgid "Include Inherited" msgstr "包含繼承的" -#: part/serializers.py:2036 +#: part/serializers.py:2047 msgid "Include BOM items which are inherited from templated parts" msgstr "包含從模板零件繼承的物料清單項目" -#: part/serializers.py:2041 +#: part/serializers.py:2052 msgid "Skip Invalid Rows" msgstr "跳過無效行" -#: part/serializers.py:2042 +#: part/serializers.py:2053 msgid "Enable this option to skip invalid rows" msgstr "啓用此選項以跳過無效行" -#: part/serializers.py:2047 +#: part/serializers.py:2058 msgid "Copy Substitute Parts" msgstr "複製替代品零件" -#: part/serializers.py:2048 +#: part/serializers.py:2059 msgid "Copy substitute parts when duplicate BOM items" msgstr "複製物料清單項目時複製替代品零件" @@ -7326,91 +7338,91 @@ msgstr "未指定操作" msgid "No matching action found" msgstr "未找到指定操作" -#: plugin/base/barcodes/api.py:212 +#: plugin/base/barcodes/api.py:214 msgid "No match found for barcode data" msgstr "未找到匹配條形碼數據" -#: plugin/base/barcodes/api.py:216 +#: plugin/base/barcodes/api.py:218 msgid "Match found for barcode data" msgstr "找到匹配條形碼數據" -#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77 +#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77 msgid "Model is not supported" msgstr "不支持模型" -#: plugin/base/barcodes/api.py:259 +#: plugin/base/barcodes/api.py:261 msgid "Model instance not found" msgstr "找不到模型實例" -#: plugin/base/barcodes/api.py:288 +#: plugin/base/barcodes/api.py:290 msgid "Barcode matches existing item" msgstr "條形碼匹配現有項目" -#: plugin/base/barcodes/api.py:419 +#: plugin/base/barcodes/api.py:421 msgid "No matching part data found" msgstr "沒有找到匹配的零件數據" -#: plugin/base/barcodes/api.py:435 +#: plugin/base/barcodes/api.py:437 msgid "No matching supplier parts found" msgstr "沒有找到匹配的供應商零件" -#: plugin/base/barcodes/api.py:438 +#: plugin/base/barcodes/api.py:440 msgid "Multiple matching supplier parts found" msgstr "找到多個匹配的供應商零件" -#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744 +#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748 msgid "No matching plugin found for barcode data" msgstr "沒有找到匹配條碼數據的插件" -#: plugin/base/barcodes/api.py:461 +#: plugin/base/barcodes/api.py:463 msgid "Matched supplier part" msgstr "匹配的供應商零件" -#: plugin/base/barcodes/api.py:529 +#: plugin/base/barcodes/api.py:533 msgid "Item has already been received" msgstr "項目已被接收" -#: plugin/base/barcodes/api.py:597 +#: plugin/base/barcodes/api.py:601 msgid "Purchase order Found\\rNo supplier Part Match" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:607 msgid "Supplier Part Found\\rNo Purchase Order Match" msgstr "" -#: plugin/base/barcodes/api.py:639 +#: plugin/base/barcodes/api.py:643 msgid "No plugin match for supplier barcode" msgstr "供應商條碼未匹配任何模組" -#: plugin/base/barcodes/api.py:692 +#: plugin/base/barcodes/api.py:696 msgid "Multiple matching line items found" msgstr "找到多個匹配的行項目" -#: plugin/base/barcodes/api.py:695 +#: plugin/base/barcodes/api.py:699 msgid "No matching line item found" msgstr "未找到匹配的行項目" -#: plugin/base/barcodes/api.py:741 +#: plugin/base/barcodes/api.py:745 msgid "No sales order provided" msgstr "未提供銷售訂單" -#: plugin/base/barcodes/api.py:750 +#: plugin/base/barcodes/api.py:754 msgid "Barcode does not match an existing stock item" msgstr "條形碼與現有的庫存項不匹配" -#: plugin/base/barcodes/api.py:766 +#: plugin/base/barcodes/api.py:770 msgid "Stock item does not match line item" msgstr "庫存項與行項目不匹配" -#: plugin/base/barcodes/api.py:796 +#: plugin/base/barcodes/api.py:800 msgid "Insufficient stock available" msgstr "可用庫存不足" -#: plugin/base/barcodes/api.py:809 +#: plugin/base/barcodes/api.py:813 msgid "Stock item allocated to sales order" msgstr "庫存項已分配到銷售訂單" -#: plugin/base/barcodes/api.py:812 +#: plugin/base/barcodes/api.py:816 msgid "Not enough information" msgstr "沒有足夠的信息" @@ -7992,7 +8004,7 @@ msgstr "邊框" msgid "Print a border around each label" msgstr "打印每個標籤的邊框" -#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396 +#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397 msgid "Landscape" msgstr "橫屏模式" @@ -8481,136 +8493,136 @@ msgstr "法律" msgid "Letter" msgstr "字母" -#: report/models.py:130 +#: report/models.py:131 msgid "Template file with this name already exists" msgstr "已存在具有此名稱的模板" -#: report/models.py:222 +#: report/models.py:223 msgid "Template name" msgstr "模版名稱" -#: report/models.py:228 +#: report/models.py:229 msgid "Template description" msgstr "模板説明" -#: report/models.py:234 +#: report/models.py:235 msgid "Revision number (auto-increments)" msgstr "修訂編號 (自動增量)" -#: report/models.py:240 +#: report/models.py:241 msgid "Attach to Model on Print" msgstr "打印時附加到模型" -#: report/models.py:242 +#: report/models.py:243 msgid "Save report output as an attachment against linked model instance when printing" msgstr "打印時將報告輸出保存為附件與鏈接模型實例" -#: report/models.py:290 +#: report/models.py:291 msgid "Filename Pattern" msgstr "文件名樣式" -#: report/models.py:291 +#: report/models.py:292 msgid "Pattern for generating filenames" msgstr "生成文件名模式" -#: report/models.py:296 +#: report/models.py:297 msgid "Template is enabled" msgstr "模板已啓用" -#: report/models.py:303 +#: report/models.py:304 msgid "Target model type for template" msgstr "模版的目標模型類型" -#: report/models.py:323 +#: report/models.py:324 msgid "Filters" msgstr "篩選器" -#: report/models.py:324 +#: report/models.py:325 msgid "Template query filters (comma-separated list of key=value pairs)" msgstr "模版查詢篩選器 (逗號分隔的鍵值對列表)" -#: report/models.py:383 report/models.py:704 +#: report/models.py:384 report/models.py:718 msgid "Template file" msgstr "模板包文件" -#: report/models.py:391 +#: report/models.py:392 msgid "Page size for PDF reports" msgstr "PDF 報告的頁面大小" -#: report/models.py:397 +#: report/models.py:398 msgid "Render report in landscape orientation" msgstr "橫向渲染報告" -#: report/models.py:402 +#: report/models.py:403 msgid "Merge" msgstr "合併" -#: report/models.py:403 +#: report/models.py:404 msgid "Render a single report against selected items" msgstr "針對所選項目產出合併單一報告" -#: report/models.py:470 +#: report/models.py:471 #, python-brace-format msgid "Report generated from template {self.name}" msgstr "由模板 {self.name} 產生的報告" -#: report/models.py:580 report/models.py:619 report/models.py:620 +#: report/models.py:581 report/models.py:620 msgid "Template syntax error" msgstr "模板語法錯誤" -#: report/models.py:587 report/models.py:626 +#: report/models.py:588 report/models.py:627 msgid "Error rendering report" msgstr "報告渲染錯誤" -#: report/models.py:647 +#: report/models.py:655 msgid "Error generating report" msgstr "生成報告錯誤" -#: report/models.py:678 +#: report/models.py:686 msgid "Error merging report outputs" msgstr "合併報告輸出時發生錯誤" -#: report/models.py:710 +#: report/models.py:724 msgid "Width [mm]" msgstr "寬度 [mm]" -#: report/models.py:711 +#: report/models.py:725 msgid "Label width, specified in mm" msgstr "標籤寬度,以毫米為單位。" -#: report/models.py:717 +#: report/models.py:731 msgid "Height [mm]" msgstr "高度 [mm]" -#: report/models.py:718 +#: report/models.py:732 msgid "Label height, specified in mm" msgstr "標籤高度,以毫米為單位。" -#: report/models.py:832 +#: report/models.py:846 msgid "Error printing labels" msgstr "列印標籤時發生錯誤" -#: report/models.py:851 +#: report/models.py:865 msgid "Snippet" msgstr "代碼片段" -#: report/models.py:852 +#: report/models.py:866 msgid "Report snippet file" msgstr "報告代碼片段文件" -#: report/models.py:859 +#: report/models.py:873 msgid "Snippet file description" msgstr "代碼片段文件描述" -#: report/models.py:877 +#: report/models.py:891 msgid "Asset" msgstr "資產" -#: report/models.py:878 +#: report/models.py:892 msgid "Report asset file" msgstr "報告資產文件" -#: report/models.py:885 +#: report/models.py:899 msgid "Asset file description" msgstr "資產文件描述" @@ -8766,200 +8778,200 @@ msgstr "沒有結果" msgid "Transferred" msgstr "" -#: report/templatetags/report.py:167 +#: report/templatetags/report.py:192 msgid "Invalid media file path" msgstr "無效的媒體檔案路徑" -#: report/templatetags/report.py:186 +#: report/templatetags/report.py:211 msgid "Invalid static file path" msgstr "無效的靜態檔案路徑" -#: report/templatetags/report.py:288 +#: report/templatetags/report.py:313 msgid "Asset file not found" msgstr "找不到資產檔案" -#: report/templatetags/report.py:354 report/templatetags/report.py:470 +#: report/templatetags/report.py:379 report/templatetags/report.py:495 msgid "Image file not found" msgstr "找不到圖片文件" -#: report/templatetags/report.py:439 +#: report/templatetags/report.py:464 msgid "No image file specified" msgstr "未指定影像檔案" -#: report/templatetags/report.py:464 +#: report/templatetags/report.py:489 msgid "part_image tag requires a Part instance" msgstr "parpart_image 標籤需要一個零件實例" -#: report/templatetags/report.py:562 +#: report/templatetags/report.py:581 msgid "company_image tag requires a Company instance" msgstr "公司_圖片標籤需要一個公司實例" -#: stock/api.py:288 +#: stock/api.py:289 msgid "Filter by location depth" msgstr "按位置深度篩選" -#: stock/api.py:308 +#: stock/api.py:309 msgid "Filter by top-level locations" msgstr "按頂級位置篩選" -#: stock/api.py:323 +#: stock/api.py:324 msgid "Include sub-locations in filtered results" msgstr "在篩選結果中包含子地點" -#: stock/api.py:344 stock/serializers.py:1252 +#: stock/api.py:345 stock/serializers.py:1263 msgid "Parent Location" msgstr "上級地點" -#: stock/api.py:345 +#: stock/api.py:346 msgid "Filter by parent location" msgstr "按上級位置篩選" -#: stock/api.py:611 +#: stock/api.py:625 msgid "Part name (case insensitive)" msgstr "零件名稱(不分大小寫)" -#: stock/api.py:617 +#: stock/api.py:631 msgid "Part name contains (case insensitive)" msgstr "零件名稱包含(不分大小寫)" -#: stock/api.py:623 +#: stock/api.py:637 msgid "Part name (regex)" msgstr "零件名稱(正則)" -#: stock/api.py:628 +#: stock/api.py:642 msgid "Part IPN (case insensitive)" msgstr "零件 IPN(不分大小寫)" -#: stock/api.py:634 +#: stock/api.py:648 msgid "Part IPN contains (case insensitive)" msgstr "零件 IPN 包含(不分大小寫)" -#: stock/api.py:640 +#: stock/api.py:654 msgid "Part IPN (regex)" msgstr "零件 IPN(正則)" -#: stock/api.py:652 +#: stock/api.py:666 msgid "Minimum stock" msgstr "最小庫存" -#: stock/api.py:656 +#: stock/api.py:670 msgid "Maximum stock" msgstr "最大庫存" -#: stock/api.py:659 +#: stock/api.py:673 msgid "Status Code" msgstr "狀態代碼" -#: stock/api.py:703 +#: stock/api.py:717 msgid "External Location" msgstr "外部地點" -#: stock/api.py:802 +#: stock/api.py:816 msgid "Consumed by Build Order" msgstr "被生產工單消耗" -#: stock/api.py:812 +#: stock/api.py:826 msgid "Installed in other stock item" msgstr "已安裝於其他庫存項" -#: stock/api.py:901 +#: stock/api.py:915 msgid "Part Tree" msgstr "零件樹" -#: stock/api.py:930 +#: stock/api.py:944 msgid "Updated before" msgstr "更新時間早於" -#: stock/api.py:934 +#: stock/api.py:948 msgid "Updated after" msgstr "更新時間晚於" -#: stock/api.py:938 +#: stock/api.py:952 msgid "Stocktake Before" msgstr "盤點日期早於" -#: stock/api.py:942 +#: stock/api.py:956 msgid "Stocktake After" msgstr "盤點日期晚於" -#: stock/api.py:946 +#: stock/api.py:960 msgid "Has Stocktake Date" msgstr "" -#: stock/api.py:957 +#: stock/api.py:971 msgid "Expiry date before" msgstr "過期日期前" -#: stock/api.py:961 +#: stock/api.py:975 msgid "Expiry date after" msgstr "過期日期後" -#: stock/api.py:964 stock/serializers.py:663 +#: stock/api.py:978 stock/serializers.py:663 msgid "Stale" msgstr "過期" -#: stock/api.py:990 +#: stock/api.py:1004 msgid "Provide a StockItem PK to exclude that item and all its descendants" msgstr "提供一個 StockItem PK 以排除該項目及其所有子項目" -#: stock/api.py:1008 +#: stock/api.py:1022 msgid "Cascade Locations" msgstr "級聯位置" -#: stock/api.py:1009 +#: stock/api.py:1023 msgid "If true, include items in child locations of the given location" msgstr "若為 true,則包含給定位置的子位置中的項目" -#: stock/api.py:1015 +#: stock/api.py:1029 msgid "Filter by numeric Location ID or the literal 'null'" msgstr "依數字位置 ID 或常值 'null' 篩選" -#: stock/api.py:1117 +#: stock/api.py:1131 msgid "Quantity is required" msgstr "請先輸入數量" -#: stock/api.py:1122 +#: stock/api.py:1136 msgid "Valid part must be supplied" msgstr "必須提供有效的零件" -#: stock/api.py:1153 +#: stock/api.py:1167 msgid "The given supplier part does not exist" msgstr "給定的供應商零件不存在" -#: stock/api.py:1163 +#: stock/api.py:1177 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "供應商零件有定義的包裝大小,但 use_pack_size 標誌未設置" -#: stock/api.py:1195 +#: stock/api.py:1209 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "不能為不可跟蹤的零件提供序列號" -#: stock/api.py:1440 +#: stock/api.py:1454 msgid "Include Installed" msgstr "包含已安裝" -#: stock/api.py:1442 +#: stock/api.py:1456 msgid "If true, include test results for items installed underneath the given stock item" msgstr "若為 true,則包含安裝在給定庫存項目下方的項目的測試結果" -#: stock/api.py:1449 +#: stock/api.py:1463 msgid "Filter by numeric Stock Item ID" msgstr "使用數字庫存品項 ID 做過濾" -#: stock/api.py:1470 +#: stock/api.py:1484 #, python-brace-format msgid "Stock item with ID {id} does not exist" msgstr "庫存品項 ID {id} 不存在" -#: stock/api.py:1547 +#: stock/api.py:1558 msgid "Include Part Variants" msgstr "包括零件變數" -#: stock/api.py:1577 +#: stock/api.py:1588 msgid "Date after" msgstr "日前之後" -#: stock/api.py:1581 +#: stock/api.py:1592 msgid "Date before" msgstr "日期之前" @@ -8995,7 +9007,7 @@ msgstr "選擇所有者" msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "庫存項可能不直接位於結構庫存地點,但可能位於其子地點。" -#: stock/models.py:213 users/models.py:495 +#: stock/models.py:213 users/models.py:493 msgid "External" msgstr "外部" @@ -9101,7 +9113,7 @@ msgstr "為此庫存項目選擇匹配的供應商零件" msgid "Where is this stock item located?" msgstr "這個庫存物品在哪裏?" -#: stock/models.py:1109 stock/serializers.py:1711 +#: stock/models.py:1109 stock/serializers.py:1722 msgid "Packaging this stock item is stored in" msgstr "包裝此庫存物品存儲在" @@ -9117,7 +9129,7 @@ msgstr "此項目是否安裝在另一個項目中?" msgid "Serial number for this item" msgstr "此項目的序列號" -#: stock/models.py:1156 stock/serializers.py:1696 +#: stock/models.py:1156 stock/serializers.py:1707 msgid "Batch code for this stock item" msgstr "此庫存項的批號" @@ -9234,7 +9246,7 @@ msgstr "庫存項目前正在生產" msgid "Serialized stock cannot be merged" msgstr "序列化的庫存不能合併" -#: stock/models.py:2182 stock/serializers.py:1566 +#: stock/models.py:2182 stock/serializers.py:1577 msgid "Duplicate stock items" msgstr "複製庫存項" @@ -9398,7 +9410,7 @@ msgstr "輸入新項目的序列號" msgid "Supplier Part Number" msgstr "供應商零件編號" -#: stock/serializers.py:655 users/models.py:185 +#: stock/serializers.py:655 users/models.py:183 msgid "Expired" msgstr "已過期" @@ -9428,8 +9440,8 @@ msgstr "未提供庫存項" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "數量不得超過現有庫存量 ({q})" -#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862 -#: stock/serializers.py:1911 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 +#: stock/serializers.py:1922 msgid "Destination stock location" msgstr "目標庫存位置" @@ -9501,127 +9513,127 @@ msgstr "選擇要更改狀態的庫存項目" msgid "No stock items selected" msgstr "未選擇庫存商品" -#: stock/serializers.py:1165 stock/serializers.py:1258 +#: stock/serializers.py:1176 stock/serializers.py:1269 msgid "Sublocations" msgstr "轉租" -#: stock/serializers.py:1183 +#: stock/serializers.py:1194 msgid "Delete Stock Items" msgstr "" -#: stock/serializers.py:1184 +#: stock/serializers.py:1195 msgid "Delete all stock items contained within this location" msgstr "" -#: stock/serializers.py:1189 +#: stock/serializers.py:1200 msgid "Delete Sublocations" msgstr "" -#: stock/serializers.py:1190 +#: stock/serializers.py:1201 msgid "Delete all sub-locations contained within this location" msgstr "" -#: stock/serializers.py:1253 +#: stock/serializers.py:1264 msgid "Parent stock location" msgstr "上級庫存地點" -#: stock/serializers.py:1391 +#: stock/serializers.py:1402 msgid "Part must be salable" msgstr "零件必須可銷售" -#: stock/serializers.py:1395 +#: stock/serializers.py:1406 msgid "Item is allocated to a sales order" msgstr "物料已分配到銷售訂單" -#: stock/serializers.py:1399 +#: stock/serializers.py:1410 msgid "Item is allocated to a transfer order" msgstr "" -#: stock/serializers.py:1403 +#: stock/serializers.py:1414 msgid "Item is allocated to a build order" msgstr "項目被分配到生產訂單中" -#: stock/serializers.py:1427 +#: stock/serializers.py:1438 msgid "Customer to assign stock items" msgstr "客户分配庫存項目" -#: stock/serializers.py:1433 +#: stock/serializers.py:1444 msgid "Selected company is not a customer" msgstr "所選公司不是客户" -#: stock/serializers.py:1441 +#: stock/serializers.py:1452 msgid "Stock assignment notes" msgstr "庫存分配説明" -#: stock/serializers.py:1451 stock/serializers.py:1739 +#: stock/serializers.py:1462 stock/serializers.py:1750 msgid "A list of stock items must be provided" msgstr "必須提供庫存物品清單" -#: stock/serializers.py:1530 +#: stock/serializers.py:1541 msgid "Stock merging notes" msgstr "庫存合併説明" -#: stock/serializers.py:1535 +#: stock/serializers.py:1546 msgid "Allow mismatched suppliers" msgstr "允許不匹配的供應商" -#: stock/serializers.py:1536 +#: stock/serializers.py:1547 msgid "Allow stock items with different supplier parts to be merged" msgstr "允許合併具有不同供應商零件的庫存項目" -#: stock/serializers.py:1541 +#: stock/serializers.py:1552 msgid "Allow mismatched status" msgstr "允許不匹配的狀態" -#: stock/serializers.py:1542 +#: stock/serializers.py:1553 msgid "Allow stock items with different status codes to be merged" msgstr "允許合併具有不同狀態代碼的庫存項目" -#: stock/serializers.py:1552 +#: stock/serializers.py:1563 msgid "At least two stock items must be provided" msgstr "必須提供至少兩件庫存物品" -#: stock/serializers.py:1619 +#: stock/serializers.py:1630 msgid "No Change" msgstr "無更改" -#: stock/serializers.py:1657 +#: stock/serializers.py:1668 msgid "StockItem primary key value" msgstr "庫存項主鍵值" -#: stock/serializers.py:1670 +#: stock/serializers.py:1681 msgid "Stock item is not in stock" msgstr "庫存項無庫存" -#: stock/serializers.py:1673 +#: stock/serializers.py:1684 msgid "Stock item is already in stock" msgstr "庫存項已在庫" -#: stock/serializers.py:1687 +#: stock/serializers.py:1698 msgid "Quantity must not be negative" msgstr "數量不可為負" -#: stock/serializers.py:1729 +#: stock/serializers.py:1740 msgid "Stock transaction notes" msgstr "庫存交易記錄" -#: stock/serializers.py:1758 +#: stock/serializers.py:1769 msgid "Set stock location for counted items (optional)" msgstr "" -#: stock/serializers.py:1917 +#: stock/serializers.py:1928 msgid "Merge into existing stock" msgstr "合併至現有庫存" -#: stock/serializers.py:1918 +#: stock/serializers.py:1929 msgid "Merge returned items into existing stock items if possible" msgstr "可行時將退回項目併入現有庫存" -#: stock/serializers.py:1961 +#: stock/serializers.py:1972 msgid "Next Serial Number" msgstr "下一個序列號" -#: stock/serializers.py:1967 +#: stock/serializers.py:1978 msgid "Previous Serial Number" msgstr "上一個序列號" @@ -9919,7 +9931,7 @@ msgstr "權限" msgid "Important dates" msgstr "重要日期" -#: users/authentication.py:30 users/models.py:151 +#: users/authentication.py:30 users/models.py:149 msgid "Token has been revoked" msgstr "令牌已被撤銷" @@ -9927,163 +9939,163 @@ msgstr "令牌已被撤銷" msgid "Token has expired" msgstr "令牌已過期" -#: users/models.py:94 +#: users/models.py:92 msgid "API Token" msgstr "API 令牌" -#: users/models.py:95 +#: users/models.py:93 msgid "API Tokens" msgstr "API 令牌" -#: users/models.py:131 +#: users/models.py:129 msgid "Token Name" msgstr "令牌名稱" -#: users/models.py:132 +#: users/models.py:130 msgid "Custom token name" msgstr "自定義令牌名稱" -#: users/models.py:138 +#: users/models.py:136 msgid "Token expiry date" msgstr "令牌過期日期" -#: users/models.py:146 +#: users/models.py:144 msgid "Last Seen" msgstr "最近一次在線" -#: users/models.py:147 +#: users/models.py:145 msgid "Last time the token was used" msgstr "最近使用令牌的時間" -#: users/models.py:151 +#: users/models.py:149 msgid "Revoked" msgstr "撤銷" -#: users/models.py:227 +#: users/models.py:225 msgid "Permission set" msgstr "權限設置" -#: users/models.py:240 +#: users/models.py:238 msgid "View" msgstr "查看" -#: users/models.py:240 +#: users/models.py:238 msgid "Permission to view items" msgstr "查看項目的權限" -#: users/models.py:244 +#: users/models.py:242 msgid "Add" msgstr "添加" -#: users/models.py:244 +#: users/models.py:242 msgid "Permission to add items" msgstr "添加項目的權限" -#: users/models.py:248 +#: users/models.py:246 msgid "Change" msgstr "更改" -#: users/models.py:250 +#: users/models.py:248 msgid "Permissions to edit items" msgstr "編輯項目的權限" -#: users/models.py:254 +#: users/models.py:252 msgid "Delete" msgstr "刪除" -#: users/models.py:256 +#: users/models.py:254 msgid "Permission to delete items" msgstr "刪除項目的權限" -#: users/models.py:493 +#: users/models.py:491 msgid "Bot" msgstr "機器人" -#: users/models.py:494 +#: users/models.py:492 msgid "Internal" msgstr "內部" -#: users/models.py:496 +#: users/models.py:494 msgid "Guest" msgstr "訪客" -#: users/models.py:505 +#: users/models.py:503 msgid "Language" msgstr "語言 LANG" -#: users/models.py:506 +#: users/models.py:504 msgid "Preferred language for the user" msgstr "使用者偏好語言" -#: users/models.py:511 +#: users/models.py:509 msgid "Theme" msgstr "主題" -#: users/models.py:512 +#: users/models.py:510 msgid "Settings for the web UI as JSON - do not edit manually!" msgstr "Web 介面設定(JSON,請勿手動編輯)" -#: users/models.py:517 +#: users/models.py:515 msgid "Widgets" msgstr "小工具" -#: users/models.py:519 +#: users/models.py:517 msgid "Settings for the dashboard widgets as JSON - do not edit manually!" msgstr "儀表板小工具設定(JSON,請勿手動編輯)" -#: users/models.py:526 +#: users/models.py:524 msgid "Display Name" msgstr "顯示名稱" -#: users/models.py:527 +#: users/models.py:525 msgid "Chosen display name for the user" msgstr "使用者自選顯示名稱" -#: users/models.py:533 +#: users/models.py:531 msgid "Position" msgstr "職稱" -#: users/models.py:534 +#: users/models.py:532 msgid "Main job title or position" msgstr "主要職稱或職位" -#: users/models.py:541 +#: users/models.py:539 msgid "User status message" msgstr "使用者狀態訊息" -#: users/models.py:548 +#: users/models.py:546 msgid "User location information" msgstr "使用者位置資訊" -#: users/models.py:553 +#: users/models.py:551 msgid "User is actively using the system" msgstr "使用者目前活躍" -#: users/models.py:560 +#: users/models.py:558 msgid "Preferred contact information for the user" msgstr "使用者偏好聯絡資訊" -#: users/models.py:566 +#: users/models.py:564 msgid "User Type" msgstr "使用者類型" -#: users/models.py:567 +#: users/models.py:565 msgid "Which type of user is this?" msgstr "此為哪種類型的使用者?" -#: users/models.py:573 +#: users/models.py:571 msgid "Organisation" msgstr "組織" -#: users/models.py:574 +#: users/models.py:572 msgid "Users primary organisation/affiliation" msgstr "使用者主要所屬組織" -#: users/models.py:582 +#: users/models.py:580 msgid "Primary Group" msgstr "主要群組" -#: users/models.py:583 +#: users/models.py:581 msgid "Primary group for the user" msgstr "使用者的主要群組" diff --git a/src/frontend/src/locales/ar/messages.po b/src/frontend/src/locales/ar/messages.po index feb3621dce..9aeb9a40de 100644 --- a/src/frontend/src/locales/ar/messages.po +++ b/src/frontend/src/locales/ar/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ar\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Arabic\n" "Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n" @@ -147,7 +147,7 @@ msgstr "" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "" @@ -261,7 +261,7 @@ msgstr "" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "" @@ -1728,11 +1729,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "" @@ -1829,20 +1830,20 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "" #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "" @@ -2128,6 +2129,7 @@ msgstr "" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "" @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "" @@ -2247,7 +2250,7 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "" @@ -2925,7 +2928,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/bg/messages.po b/src/frontend/src/locales/bg/messages.po index 203d17609a..3bf24ed399 100644 --- a/src/frontend/src/locales/bg/messages.po +++ b/src/frontend/src/locales/bg/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: bg\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "" @@ -261,7 +261,7 @@ msgstr "" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "" @@ -1728,11 +1729,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "" @@ -1829,20 +1830,20 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "" #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "" @@ -2128,6 +2129,7 @@ msgstr "" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "" @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "" @@ -2247,7 +2250,7 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "" @@ -2925,7 +2928,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/cs/messages.po b/src/frontend/src/locales/cs/messages.po index dda16096d3..1b193f4ba9 100644 --- a/src/frontend/src/locales/cs/messages.po +++ b/src/frontend/src/locales/cs/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: cs\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-23 06:29\n" "Last-Translator: \n" "Language-Team: Czech\n" "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n" @@ -147,7 +147,7 @@ msgstr "Ne" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Díl" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Díly" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Díly výrobce" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Kategorie dílu" @@ -261,7 +261,7 @@ msgstr "Kategorie dílů" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Skladové položky" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Umístění skladu" @@ -644,14 +644,14 @@ msgstr "Výběr záznamů" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "Vypršel časový limit žádosti." #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "Proces se nezdařil" @@ -1391,11 +1392,11 @@ msgstr "Vyžadováno aministrátorské oprávnění" msgid "This widget requires superuser permissions" msgstr "Tento widget vyžaduje administrátorské oprávnění " -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Žádné novinky" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "Žádné nepřečtené novinky" @@ -1655,7 +1656,7 @@ msgstr "Kód" msgid "Error rendering preview" msgstr "Chyba při vykreslování náhledu" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Náhled není k dispozici, klikněte na \"Znovu načíst náhled\"." @@ -1728,11 +1729,11 @@ msgstr "Uložit aktuální šablonu a znovu načíst náhled" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Vyberte instanci pro náhled" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Chyba při načítání šablony" @@ -1829,20 +1830,20 @@ msgstr "Přihlášení proběhlo úspěšně" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Přihlášení se nezdařilo" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Zkontrolujte vstup a zkuste to znovu." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "E-mail byl doručen úspěšně" @@ -2128,6 +2129,7 @@ msgstr "Nezařazené" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Hledat..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Načítání" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Nebyly nalezeny žádné výsledky" @@ -2247,7 +2250,7 @@ msgstr "Zpracovávání dat" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Vyskytla se chyba" @@ -2925,7 +2928,7 @@ msgstr "Odhlásit" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Navigace" msgid "About" msgstr "O aplikaci" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "Vymazat vyhledávání" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "Chyba při načítání navigačního stromu." @@ -5539,7 +5546,7 @@ msgstr "Interní chyba serveru" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Odhlášen(a)" @@ -5551,97 +5558,97 @@ msgstr "Pro tento prohlížeč došlo ke konfliktní relaci, která byla odhlá #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "Žádná odezva ze serveru." - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "Žádná odezva ze serveru." + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "MFA přihlášení úspěšné" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "Údaje o MFA byly automaticky poskytnuty v prohlížeči" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Úspěšně odhlášen/a" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "Jazyk změněn" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "Váš aktivní jazyk byl změněn podle nastavení Vašeho profilu" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "Motiv změněn" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "Váš aktivní jazyk byl změněn podle nastavení Vašeho profilu" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Zkontrolujte doručenou poštu pro odkaz pro obnovení. Funguje to pouze v případě, že máte účet. Zkontrolujte také ve spamu." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Obnovení selhalo" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "Již přihlášeno!" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "Vyskytl se konflikt relací na serveru pro tento prohlížeč, prosím nejdřív se odhlašte." -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Přihlášen" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Úspěšně přihlášen/a" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "Nepodařilo se nastavit MFA" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "Nastavení MFA bylo úspěšné" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "MFA přes TOTP bylo úspěšně nastaveno; budete se muset znovu přihlásit." -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Nastavení hesla" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Heslo bylo úspěšně nastaveno. Nyní se můžete přihlásit s novým heslem" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "Heslo nelze změnit" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "Dvě pole s hesly se neshodují" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Heslo bylo změněno" @@ -8347,11 +8354,11 @@ msgstr "Vyhledat podle sériového čísla" msgid "Part Actions" msgstr "Akce s položkou" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "Díl uzamčen" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "Díl odemčen" diff --git a/src/frontend/src/locales/da/messages.po b/src/frontend/src/locales/da/messages.po index c7c1e51a8e..f9130209bf 100644 --- a/src/frontend/src/locales/da/messages.po +++ b/src/frontend/src/locales/da/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: da\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Danish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "Nej" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Del" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Dele" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Producent Dele" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Del Kategori" @@ -261,7 +261,7 @@ msgstr "Del Kategorier" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Lagervarer" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Lagerlokation" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "Anmodningen udløb" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "Proces fejlede" @@ -1391,11 +1392,11 @@ msgstr "Kræver Superbruger" msgid "This widget requires superuser permissions" msgstr "Denne widget kræver superbruger tilladelser" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Ingen Nyheder" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "Der er ingen ulæste nyheder" @@ -1655,7 +1656,7 @@ msgstr "Kode" msgid "Error rendering preview" msgstr "Fejl under visning" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Forhåndsvisning ikke tilgængelig, klik \"Genindlæs forhåndsvisning\"." @@ -1728,11 +1729,11 @@ msgstr "Gem den nuværende skabelon og genindlæs forhåndsvisningen" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Vælg eksempel til forhåndsvisning" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Render fejl af skabelon" @@ -1829,20 +1830,20 @@ msgstr "Logget ind" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Login mislykkedes" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Tjek din indtastning og prøv igen." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Mail levering succesfuld" @@ -2128,6 +2129,7 @@ msgstr "Ukategoriseret" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Søg..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Indlæser" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Ingen resultater fundet" @@ -2247,7 +2250,7 @@ msgstr "Behandler Data" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "En feil opstod" @@ -2925,7 +2928,7 @@ msgstr "Log ud" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Navigation" msgid "About" msgstr "Omkring" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "Fejl ved indlæsning af navigationstræ." @@ -5539,7 +5546,7 @@ msgstr "Intern serverfejl" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Logget af" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "Intet svar fra server." - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "Intet svar fra server." + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "Multifaktorgodkendelse Login succesfuld" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "Multifaktorgodkendelse detaljer blev automatisk givet i browseren" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Du er nu logget af" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "Sprog ændret" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "Dit aktive sprog er blevet ændret til det der er sat i din profil" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "Tema ændret" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "Dit aktive tema er blevet ændret til det der er sat i din profil" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Tjek din indbakke for et nulstillingslink. Dette virker kun, hvis du har en konto. Tjek også spam." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Nulstilling fejlede" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "Allerede logget ind" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "Der er en konfliktfyldt session på serveren for denne browser. Log ud af det først." -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Logget ind" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Logget ind" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "Kunne ikke oprette Multifaktorgodkendelse" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Adgangskode sat" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Adgangskoden blev oprettet. Du kan nu logge ind med din nye adgangskode" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "Adgangskoden kunne ikke ændres" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "De to adgangskodefelter matcher ikke" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Adgangskode ændret" @@ -8347,11 +8354,11 @@ msgstr "Søg på serienummer" msgid "Part Actions" msgstr "Del Handlinger" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/de/messages.po b/src/frontend/src/locales/de/messages.po index 903121d72e..eec32b110a 100644 --- a/src/frontend/src/locales/de/messages.po +++ b/src/frontend/src/locales/de/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: de\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: German\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "Nein" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Teil" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Teile" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Herstellerteile" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Teilkategorie" @@ -261,7 +261,7 @@ msgstr "Teil-Kategorien" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Lagerartikel" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Lagerort" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "Bei der Anfrage ist eine Zeitüberschreitung aufgetreten" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "Prozess fehlgeschlagen" @@ -1391,11 +1392,11 @@ msgstr "Superuser benötigt" msgid "This widget requires superuser permissions" msgstr "Dieses Widget benötigt Superuser-Berechtigungen" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Keine Neuigkeiten" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "Es gibt keine ungelesenen Neuigkeiten" @@ -1655,7 +1656,7 @@ msgstr "Code" msgid "Error rendering preview" msgstr "Fehler beim rendern der Vorschau" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Vorschau nicht verfügbar, klicke \"Vorschau neu laden\"." @@ -1728,11 +1729,11 @@ msgstr "Die aktuelle Vorlage speichern und die Vorschau neu laden" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Instanz für Vorschau auswählen" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Fehler bei Darstellung der Vorlage" @@ -1829,20 +1830,20 @@ msgstr "Erfolgreich eingeloggt" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Login fehlgeschlagen" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Überprüfen Sie Ihre Eingabe und versuchen Sie es erneut." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Mail erfolgreich gesendet" @@ -2128,6 +2129,7 @@ msgstr "Nicht kategorisiert" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Suchen..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Wird geladen" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Keine Ergebnisse gefunden" @@ -2247,7 +2250,7 @@ msgstr "Daten werden verarbeiten" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Ein Fehler ist aufgetreten" @@ -2925,7 +2928,7 @@ msgstr "Abmelden" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Navigation" msgid "About" msgstr "Über uns" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "Fehler beim Laden des Navigationsbaums." @@ -5539,7 +5546,7 @@ msgstr "Interner Serverfehler" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Ausgeloggt" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "MFA Anmeldung erfolgreich" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "MFA-Details wurden automatisch im Browser angegeben" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Erfolgreich abgemeldet" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "Sprache geändert" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "Die aktive Sprache wurde auf die Sprache des Profils geändert" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "Design geändert" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "Das aktive Design wurde zu dem im Profil eingestellten geändert" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Prüfen Sie Ihren Posteingang für einen Link zum Zurücksetzen. Dies funktioniert nur, wenn Sie ein Konto haben. Prüfen Sie auch den Spam-Ordner." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Zurücksetzen fehlgeschlagen" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "Bereits angemeldet" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "Es gibt eine widersprüchliche Sitzung auf dem Server für diesen Browser. Bitte zuerst abmelden." -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Angemeldet" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Erfolgreich angemeldet" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "MFA konnte nicht eingerichtet werden" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Passwort festgelegt" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Das Passwort wurde erfolgreich festgelegt. Sie können sich jetzt mit Ihrem neuen Passwort anmelden" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "Passwort konnte nicht geändert werden" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "Die beiden Passwortfelder stimmten nicht überein." -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Passwort geändert" @@ -8347,11 +8354,11 @@ msgstr "Nach Seriennummer suchen" msgid "Part Actions" msgstr "Teile-Aktionen" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/el/messages.po b/src/frontend/src/locales/el/messages.po index fc37472526..8f8aa4f566 100644 --- a/src/frontend/src/locales/el/messages.po +++ b/src/frontend/src/locales/el/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: el\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Greek\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "Όχι" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Προϊόν" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Προϊόντα" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Προϊόντα Κατασκευαστή" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Κατηγορία Προϊόντος" @@ -261,7 +261,7 @@ msgstr "Κατηγορίες Προϊόντων" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Προϊόντα Αποθέματος" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Τοποθεσία Αποθέματος" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "Το αίτημα έληξε χρονικά" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "Η διαδικασία απέτυχε" @@ -1391,11 +1392,11 @@ msgstr "Απαιτεί Superuser" msgid "This widget requires superuser permissions" msgstr "Αυτό το widget απαιτεί δικαιώματα superuser" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Δεν υπάρχουν νέα" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "Δεν υπάρχουν μη αναγνωσμένα νέα" @@ -1655,7 +1656,7 @@ msgstr "Κωδικός" msgid "Error rendering preview" msgstr "Σφάλμα δημιουργίας προεπισκόπησης" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Η προεπισκόπηση δεν είναι διαθέσιμη, πατήστε \"Επαναφόρτωση προεπισκόπησης\"." @@ -1728,11 +1729,11 @@ msgstr "Αποθήκευση του τρέχοντος προτύπου και #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Επιλέξτε Προϊόν για προεπισκόπηση" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Σφάλμα αποτύπωσης προτύπου" @@ -1829,20 +1830,20 @@ msgstr "Συνδεθήκατε με επιτυχία" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Αποτυχία σύνδεσης" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Ελέγξτε τα στοιχεία σας και προσπαθήστε ξανά." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Το email στάλθηκε με επιτυχία" @@ -2128,6 +2129,7 @@ msgstr "Χωρίς κατηγορία" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Αναζήτηση..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Φόρτωση" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Δεν βρέθηκαν αποτελέσματα" @@ -2247,7 +2250,7 @@ msgstr "Επεξεργασία δεδομένων" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Παρουσιάστηκε σφάλμα" @@ -2925,7 +2928,7 @@ msgstr "Αποσύνδεση" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Πλοήγηση" msgid "About" msgstr "Σχετικά" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "Σφάλμα φόρτωσης του δέντρου πλοήγησης." @@ -5539,7 +5546,7 @@ msgstr "Εσωτερικό σφάλμα διακομιστή" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Αποσυνδεθήκατε" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "Δεν υπάρχει απόκριση από τον διακομιστή." - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "Δεν υπάρχει απόκριση από τον διακομιστή." + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "Επιτυχής σύνδεση με MFA" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "Οι λεπτομέρειες MFA παρέχθηκαν αυτόματα από τον browser" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Αποσυνδεθήκατε με επιτυχία" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "Η γλώσσα άλλαξε" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "Η ενεργή γλώσσα σας άλλαξε σε αυτή που έχει οριστεί στο προφίλ σας" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "Το θέμα άλλαξε" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "Το ενεργό θέμα άλλαξε σε αυτό που έχει οριστεί στο προφίλ σας" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Ελέγξτε τα εισερχόμενά σας για τον σύνδεσμο επαναφοράς. Λειτουργεί μόνο αν έχετε λογαριασμό. Ελέγξτε και στα spam." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Η επαναφορά απέτυχε" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "Ήδη συνδεδεμένος" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "Υπάρχει αντικρουόμενη συνεδρία στον διακομιστή για αυτόν τον browser. Παρακαλώ αποσυνδεθείτε πρώτα από αυτή." -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Συνδεθήκατε" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Συνδεθήκατε με επιτυχία" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "Αποτυχία ρύθμισης MFA" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Ο κωδικός ορίστηκε" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Ο κωδικός ορίστηκε με επιτυχία. Μπορείτε πλέον να συνδεθείτε με τον νέο σας κωδικό" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "Ο κωδικός δεν μπόρεσε να αλλάξει" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "Οι δύο πεδία κωδικού δεν ταιριάζουν" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Ο κωδικός άλλαξε" @@ -8347,11 +8354,11 @@ msgstr "Αναζήτηση με σειριακό αριθμό" msgid "Part Actions" msgstr "Ενέργειες Προϊόντος" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/en/messages.po b/src/frontend/src/locales/en/messages.po index 870b491dea..4d0fe8da76 100644 --- a/src/frontend/src/locales/en/messages.po +++ b/src/frontend/src/locales/en/messages.po @@ -142,7 +142,7 @@ msgstr "No" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -161,7 +161,7 @@ msgstr "Part" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Parts" @@ -237,7 +237,7 @@ msgid "Manufacturer Parts" msgstr "Manufacturer Parts" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Part Category" @@ -256,7 +256,7 @@ msgstr "Part Categories" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -278,7 +278,7 @@ msgstr "Stock Items" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Stock Location" @@ -639,14 +639,14 @@ msgstr "Selection Entries" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -718,6 +718,7 @@ msgstr "The request timed out" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "Process failed" @@ -1386,11 +1387,11 @@ msgstr "Requires Superuser" msgid "This widget requires superuser permissions" msgstr "This widget requires superuser permissions" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "No News" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "There are no unread news items" @@ -1650,7 +1651,7 @@ msgstr "Code" msgid "Error rendering preview" msgstr "Error rendering preview" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Preview not available, click \"Reload Preview\"." @@ -1723,11 +1724,11 @@ msgstr "Save the current template and reload the preview" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Select instance to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Error rendering template" @@ -1824,20 +1825,20 @@ msgstr "Logged in successfully" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Login failed" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Check your input and try again." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Mail delivery successful" @@ -2123,6 +2124,7 @@ msgstr "Uncategorized" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Search..." @@ -2148,6 +2150,7 @@ msgid "Loading" msgstr "Loading" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "No results found" @@ -2242,7 +2245,7 @@ msgstr "Processing Data" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "An error occurred" @@ -2920,7 +2923,7 @@ msgstr "Logout" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2966,7 +2969,11 @@ msgstr "Navigation" msgid "About" msgstr "About" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "Clear search" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "Error loading navigation tree." @@ -5534,7 +5541,7 @@ msgstr "Internal server error" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Logged Out" @@ -5546,97 +5553,97 @@ msgstr "There was a conflicting session for this browser, which has been logged #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "No response from server." - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "No response from server." + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "MFA Login successful" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "MFA details were automatically provided in the browser" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Successfully logged out" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "Language changed" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "Your active language has been changed to the one set in your profile" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "Theme changed" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "Your active theme has been changed to the one set in your profile" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Check your inbox for a reset link. This only works if you have an account. Check in spam too." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Reset failed" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "Already logged in" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "There is a conflicting session on the server for this browser. Please logout of that first." -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Logged In" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Successfully logged in" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "Failed to set up MFA" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "MFA Setup successful" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "MFA via TOTP has been set up successfully; you will need to login again." -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Password set" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "The password was set successfully. You can now login with your new password" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "Password could not be changed" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "The two password fields didn’t match" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Password Changed" @@ -8342,11 +8349,11 @@ msgstr "Search by serial number" msgid "Part Actions" msgstr "Part Actions" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "Part locked" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "Part unlocked" diff --git a/src/frontend/src/locales/es/messages.po b/src/frontend/src/locales/es/messages.po index 2cd3316219..1424ab45b3 100644 --- a/src/frontend/src/locales/es/messages.po +++ b/src/frontend/src/locales/es/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: es\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "No" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Pieza" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Piezas" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Piezas del fabricante" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Categoría de Pieza" @@ -261,7 +261,7 @@ msgstr "Categorías de Pieza" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Artículos de Stock" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Ubicación de existencias" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "La solicitud ha expirado" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "Requiere Superusuario" msgid "This widget requires superuser permissions" msgstr "Este widget requiere permisos de superusuario" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Sin noticias" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "No hay noticias sin leer" @@ -1655,7 +1656,7 @@ msgstr "Código" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Vista previa no disponible, haga clic en \"Recargar vista previa\"." @@ -1728,11 +1729,11 @@ msgstr "Guardar la plantilla actual y recargar la vista previa" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Seleccione la instancia a previsualizar" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Error al renderizar plantilla" @@ -1829,20 +1830,20 @@ msgstr "Se ha iniciado sesión con éxito" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Error al iniciar sesión" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Verifique su entrada e intente nuevamente." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Envío de correo exitoso" @@ -2128,6 +2129,7 @@ msgstr "No clasificado" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Búsqueda..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Cargando" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "No hay resultados" @@ -2247,7 +2250,7 @@ msgstr "Procesando datos" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Se ha producido un error" @@ -2925,7 +2928,7 @@ msgstr "Cerrar sesión" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Navegación" msgid "About" msgstr "Acerca de" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "Error interno del servidor" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Desconectado" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Se cerró sesión correctamente" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Restablecimiento fallido" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "Ya iniciaste sesión" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Conectado" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Sesión iniciada correctamente" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Contraseña establecida" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "La contraseña fue establecida con éxito. Ahora puede iniciar sesión con su nueva contraseña" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/es_MX/messages.po b/src/frontend/src/locales/es_MX/messages.po index 47f9f314ee..d86042f6e3 100644 --- a/src/frontend/src/locales/es_MX/messages.po +++ b/src/frontend/src/locales/es_MX/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: es_MX\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "No" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Pieza" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Piezas" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Piezas del fabricante" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Categoría de Pieza" @@ -261,7 +261,7 @@ msgstr "Categorías de Pieza" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Artículos de Stock" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Ubicación de almacén" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "La solicitud ha expirado" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "Proceso fallido" @@ -1391,11 +1392,11 @@ msgstr "Requiere Superusuario" msgid "This widget requires superuser permissions" msgstr "Este widget requiere permisos de superusuario" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Sin noticias" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "No hay noticias sin leer" @@ -1655,7 +1656,7 @@ msgstr "Código" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Vista previa no disponible, haga clic en \"Recargar vista previa\"." @@ -1728,11 +1729,11 @@ msgstr "Guardar la plantilla actual y recargar la vista previa" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Seleccione la instancia a previsualizar" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Error al renderizar plantilla" @@ -1829,20 +1830,20 @@ msgstr "Se ha iniciado sesión con éxito" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Error al iniciar sesión" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Verifique su entrada e intente nuevamente." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Envío de correo exitoso" @@ -2128,6 +2129,7 @@ msgstr "No clasificado" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Búsqueda..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Cargando" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "No hay resultados" @@ -2247,7 +2250,7 @@ msgstr "Procesando datos" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Se ha producido un error" @@ -2925,7 +2928,7 @@ msgstr "Cerrar sesión" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Navegación" msgid "About" msgstr "Acerca de" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "Error interno del servidor" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Desconectado" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Se cerró sesión correctamente" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Revisa tu bandeja de entrada para un enlace de restablecimiento. Esto solo funciona si tienes una cuenta. Revisa el correo no deseado también." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Restablecimiento fallido" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "Ya iniciaste sesión" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "Hay una sesión en conflicto en el servidor para este navegador. Por favor, cierra la sesión primero." -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Conectado" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Sesión iniciada correctamente" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "Error al configurar MFA" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Contraseña establecida" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "La contraseña fue establecida con éxito. Ahora puede iniciar sesión con su nueva contraseña" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "No se ha podido cambiar la contraseña" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Contraseña Cambiada" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/et/messages.po b/src/frontend/src/locales/et/messages.po index 09bb2085b1..a927043ada 100644 --- a/src/frontend/src/locales/et/messages.po +++ b/src/frontend/src/locales/et/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: et\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Estonian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "Ei" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Osa" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Osad" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Osa kategooria" @@ -261,7 +261,7 @@ msgstr "Osa kategooriad" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Lao asukoht" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "Viimane päring aegus" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "Töötlemine ebaõnnestus" @@ -1391,11 +1392,11 @@ msgstr "Nõuab superkasutajat" msgid "This widget requires superuser permissions" msgstr "See vidin nõuab superkasutaja õiguseid" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Uudiseid pole" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "Lugemata uudiseid pole" @@ -1655,7 +1656,7 @@ msgstr "Kood" msgid "Error rendering preview" msgstr "Viga eelvaate loomisel" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Eelvaade pole saadaval, klõpsake \"Laadi eelvaade uuesti\"." @@ -1728,11 +1729,11 @@ msgstr "Salvesta praegune mall ja laadi eelvaade uuesti" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Vali eelvaate jaoks eksemplar" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Malli renderdamisel tekkis viga" @@ -1829,20 +1830,20 @@ msgstr "Sisselogimine õnnestus" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Sisselogimine ebaõnnestus" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Kontrollige oma sisestust ja proovige uuesti." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "E-kirja kohaletoimetamine õnnestus" @@ -2128,6 +2129,7 @@ msgstr "Liigitamata" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Otsing..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Laadimine" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Tulemusi pole" @@ -2247,7 +2250,7 @@ msgstr "Andmete töötlemine" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Ilmnes viga" @@ -2925,7 +2928,7 @@ msgstr "Logi välja" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Navigeerimine" msgid "About" msgstr "Teave" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "Sisemise serveri viga" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Edukalt välja logitud" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "Keel on muudetud" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "Teema on muudetud" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Kontrollige oma postkasti lähtestamise lingi jaoks. See toimib ainult siis, kui teil on konto. Vaadake ka rämpsposti." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Parool määrati edukalt. Nüüd saate sisse logida oma uue parooliga" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Parool on muudetud" @@ -8347,11 +8354,11 @@ msgstr "Otsi seerianumbri järgi" msgid "Part Actions" msgstr "Osa toimingud" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/fa/messages.po b/src/frontend/src/locales/fa/messages.po index 93bea9279a..922b9c851b 100644 --- a/src/frontend/src/locales/fa/messages.po +++ b/src/frontend/src/locales/fa/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: fa\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Persian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "" @@ -261,7 +261,7 @@ msgstr "" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "" @@ -1728,11 +1729,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "" @@ -1829,20 +1830,20 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "" #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "" @@ -2128,6 +2129,7 @@ msgstr "" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "" @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "" @@ -2247,7 +2250,7 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "" @@ -2925,7 +2928,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/fi/messages.po b/src/frontend/src/locales/fi/messages.po index 063e372059..c9a06014cc 100644 --- a/src/frontend/src/locales/fi/messages.po +++ b/src/frontend/src/locales/fi/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: fi\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "" @@ -261,7 +261,7 @@ msgstr "" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "" @@ -1728,11 +1729,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "" @@ -1829,20 +1830,20 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "" #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "" @@ -2128,6 +2129,7 @@ msgstr "" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "" @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "" @@ -2247,7 +2250,7 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "" @@ -2925,7 +2928,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/fr/messages.po b/src/frontend/src/locales/fr/messages.po index 863f9476ef..acfcb8b0ca 100644 --- a/src/frontend/src/locales/fr/messages.po +++ b/src/frontend/src/locales/fr/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: fr\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: French\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" @@ -147,7 +147,7 @@ msgstr "Non" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Pièce" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Composants" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Pièces du fabricant" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Catégorie de composant" @@ -261,7 +261,7 @@ msgstr "Catégories de composants" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Articles en stock" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Emplacement du stock" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "La requête a expiré" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "Processus échoué" @@ -1391,11 +1392,11 @@ msgstr "Nécessite un super-utilisateur" msgid "This widget requires superuser permissions" msgstr "Ce gadget nécessite des permissions de super-utilisateur" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Pas d'actualités" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "Il n'y a pas d'actualités non lues" @@ -1655,7 +1656,7 @@ msgstr "Code" msgid "Error rendering preview" msgstr "Impossible d'afficher l'aperçu" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Aperçu non disponible, cliquez sur \"Recharger l'aperçu\"." @@ -1728,11 +1729,11 @@ msgstr "Enregistrer le modèle actuel et recharger l'aperçu" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Sélectionner l'instance à prévisualiser" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Erreur de rendu du modèle" @@ -1829,20 +1830,20 @@ msgstr "Connexion réussie" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Login invalide" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Vérifiez votre saisie et réessayez." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Envoi du mail réussi" @@ -2128,6 +2129,7 @@ msgstr "Non catégorisé" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Rechercher..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Chargement" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Aucun résultat trouvé" @@ -2247,7 +2250,7 @@ msgstr "Traitement des données" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Une erreur s'est produite" @@ -2925,7 +2928,7 @@ msgstr "Se déconnecter" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Navigation" msgid "About" msgstr "À propos" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "Impossible de charger l'arbre de navigation." @@ -5539,7 +5546,7 @@ msgstr "Erreur de serveur interne" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Déconnexion" @@ -5551,97 +5558,97 @@ msgstr "Il y a eu une session en conflit pour ce navigateur, qui a été déconn #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "Aucune réponse du serveur." - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "Aucune réponse du serveur." + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "Connections réussie via MFA" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "Les informations pour la MFA ont été automatiquement fournis par le navigateur" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Déconnexion réussie !" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "Langue changée" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "Votre langue active a été remplacée en celle qui est définie dans votre profil" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "Thème changé" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "Votre thème actif a été remplacé par celui défini dans votre profil" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Vérifiez votre boîte de réception pour un lien de réinitialisation. Cela ne fonctionne que si vous avez un compte. Vérifiez également dans le spam." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Échec de la réinitialisation" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "Déjà connecté" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "Il y a un conflit de session sur ce serveur pour ce navigateur. Veuillez d'abord vous déconnecter." -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Connecté" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Vous êtes connecté(e)" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "Échec de la mise en place de l'AMF" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Mot de passe défini" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Votre mot de passe a été modifié avec succès. Vous pouvez maintenant vous connecter avec votre nouveau mot de passe" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "Le mot de passe n'a pas pu être changé" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "Les deux mots de passes ne corrspondent pas" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Mot de passe changé" @@ -8347,11 +8354,11 @@ msgstr "Rechercher par numéro de série" msgid "Part Actions" msgstr "Actions sur les pièces" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/he/messages.po b/src/frontend/src/locales/he/messages.po index d36b587a53..4518b54857 100644 --- a/src/frontend/src/locales/he/messages.po +++ b/src/frontend/src/locales/he/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: he\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n" @@ -147,7 +147,7 @@ msgstr "לא" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "פריט" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "פריטים" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "קטגוריית פריט" @@ -261,7 +261,7 @@ msgstr "קטגוריית פריטים" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "פריטים במלאי" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "מיקום מלאי" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "קוד" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "תצוגה מקדימה אינה זמינה, לחץ/י \"טען מחדש תצוגה מקדימה\". " @@ -1728,11 +1729,11 @@ msgstr "שמור את התבנית הנוכחית וטען מחדש את התצ #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "בחר מופע לתצוגה מקדימה" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "שגיאה בעיבוד התבנית" @@ -1829,20 +1830,20 @@ msgstr "התחברת בהצלחה" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "הכניסה נכשלה" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "בדוק את הקלט שלך ונסה שוב." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "הדואר נשלח בהצלחה" @@ -2128,6 +2129,7 @@ msgstr "לא מסווג" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "חפש..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "טוען" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "לא נמצאו תוצאות" @@ -2247,7 +2250,7 @@ msgstr "מעבד נתונים" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "אירעה שגיאה" @@ -2925,7 +2928,7 @@ msgstr "התנתק" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "ניווט" msgid "About" msgstr "אודות" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/hi/messages.po b/src/frontend/src/locales/hi/messages.po index 57ecd325bf..9c3ac6b70a 100644 --- a/src/frontend/src/locales/hi/messages.po +++ b/src/frontend/src/locales/hi/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: hi\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Hindi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "" @@ -261,7 +261,7 @@ msgstr "" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "" @@ -1728,11 +1729,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "" @@ -1829,20 +1830,20 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "लॉगिन असफल" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "" #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "" @@ -2128,6 +2129,7 @@ msgstr "" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "" @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "" @@ -2247,7 +2250,7 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "" @@ -2925,7 +2928,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/hu/messages.po b/src/frontend/src/locales/hu/messages.po index 2d014a9a91..6ad134c988 100644 --- a/src/frontend/src/locales/hu/messages.po +++ b/src/frontend/src/locales/hu/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: hu\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "Nem" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Alkatrész" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Alkatrészek" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Gyártói alkatrészek" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Alkatrész kategória" @@ -261,7 +261,7 @@ msgstr "Alkatrész kategóriák" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Készlet tételek" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Készlet hely" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "A kérés túllépte az időkorlátot" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "A folyamat sikertelen" @@ -1391,11 +1392,11 @@ msgstr "Rendszergazdai jogok szükségesek" msgid "This widget requires superuser permissions" msgstr "Ez a widget főfelhasználói jogosultságokat igényel" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Nincsenek új hírek" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "Nincsenek olvasatlan hírek" @@ -1655,7 +1656,7 @@ msgstr "Kód" msgid "Error rendering preview" msgstr "Hiba az előnézet renderelése során" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Előnézet nem elérhető, kattintson az \"Előnézet Frissítés\"-re." @@ -1728,11 +1729,11 @@ msgstr "Aktuális sablon elmentése és előnézet frissítése" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Az előnézet példány kiválasztása" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Hiba a sablon megjelenítésekor" @@ -1829,20 +1830,20 @@ msgstr "Sikeres bejelentkezés" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Belépés sikertelen" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Ellenőrizd amit beírtál és próbáld újra." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Levél kézbesítése sikeres" @@ -2128,6 +2129,7 @@ msgstr "Kategorizálatlan" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Keresés..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Betöltés" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Nincs találat" @@ -2247,7 +2250,7 @@ msgstr "Adatok feldolgozása" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Hiba történt" @@ -2925,7 +2928,7 @@ msgstr "Kijelentkezés" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Navigáció" msgid "About" msgstr "Névjegy" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "Navigációs fát nem sikerült betölteni." @@ -5539,7 +5546,7 @@ msgstr "Belső szerverhiba" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Kijelentkezve" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "Nincs válasz a szervertől." - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "Nincs válasz a szervertől." + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "MFA alapú bejelentkezés sikeres" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "Az MFA adatok automatikusan megadásra kerültek a böngészőben" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Sikeresen kijelentkeztél" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "Nyelv megváltoztatva" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "Az aktív nyelv megváltozott a profilban beállítottra" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "A téma megváltoztatva" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "Az aktív téma megváltozott a profilban beállítottra" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Nézd meg a beérkező levelek mappájában a visszaállítási linket. Ez csak akkor működik, ha van fiókod. Ellenőrizd a spameket is." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Visszaállítás sikertelen" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "Már bejelentkezett" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "Egy ütköző munkamenet található a szerveren ehhez a böngészőhöz. Kérjük előbb jelentkezzen ki abból." -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Bejelentkezve" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Sikeres bejelentkezés" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "MFA beállítása sikertelen" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Jelszó beállítva" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "A jelszó beállítása sikeresen megtörtént. Most már bejelentkezhetsz az új jelszavaddal" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "A jelszót nem lehet megváltoztatni" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "A két jelszó nem egyezett meg" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Jelszó megváltozott" @@ -8347,11 +8354,11 @@ msgstr "Sorozatszámra keresés" msgid "Part Actions" msgstr "Alkatrész műveletek" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/id/messages.po b/src/frontend/src/locales/id/messages.po index 3592a4e8b7..19c1ef2e55 100644 --- a/src/frontend/src/locales/id/messages.po +++ b/src/frontend/src/locales/id/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: id\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -147,7 +147,7 @@ msgstr "Tidak" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "" @@ -261,7 +261,7 @@ msgstr "" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "Kode" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "" @@ -1728,11 +1729,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "" @@ -1829,20 +1830,20 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Gagal Login" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "" #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "" @@ -2128,6 +2129,7 @@ msgstr "Tidak terkategori" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Cari..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Memuat" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Tidak ada hasil yang ditemukan" @@ -2247,7 +2250,7 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "" @@ -2925,7 +2928,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "" msgid "About" msgstr "Tentang" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/it/messages.po b/src/frontend/src/locales/it/messages.po index bacd6896c1..61754b8c66 100644 --- a/src/frontend/src/locales/it/messages.po +++ b/src/frontend/src/locales/it/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: it\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Italian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "No" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Articolo" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Articoli" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Articoli Produttore" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Categoria Articolo" @@ -261,7 +261,7 @@ msgstr "Categorie Articolo" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Articoli in magazzino" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Ubicazione articolo" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "La richiesta è scaduta" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "Processo fallito" @@ -1391,11 +1392,11 @@ msgstr "Richiede Superuser" msgid "This widget requires superuser permissions" msgstr "Questo widget richiede i permessi di superuser" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Nessuna notizia" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "Non ci sono notizie non lette" @@ -1655,7 +1656,7 @@ msgstr "Codice" msgid "Error rendering preview" msgstr "Errore nel renderizzare l'anteprima" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Anteprima non disponibile, clicca su \"Ricarica anteprima\"." @@ -1728,11 +1729,11 @@ msgstr "Salva il modello corrente e ricarica l'anteprima" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Selezionare l'istanza da visualizzare in anteprima" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Errore nel visualizzare il modello" @@ -1829,20 +1830,20 @@ msgstr "Accesso effettuato con successo" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Accesso non riuscito" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Controllare i dati inseriti e riprovare." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Spedizione email riuscita" @@ -2128,6 +2129,7 @@ msgstr "Non categorizzato" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Ricerca..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Caricamento" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Nessun risultato trovato" @@ -2247,7 +2250,7 @@ msgstr "Elaborazione dati" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Si è verificato un errore" @@ -2925,7 +2928,7 @@ msgstr "Disconnettiti" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Navigazione" msgid "About" msgstr "Info" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "Errore nel caricare l'albero di navigazione." @@ -5539,7 +5546,7 @@ msgstr "Errore interno del server" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Disconnesso" @@ -5551,97 +5558,97 @@ msgstr "C'è stata una sessione in conflitto per questo browser, che è stato di #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "Nessuna risposta dal server." - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "Nessuna risposta dal server." + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "Login MFA riuscito" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "I dettagli MFA sono stati forniti automaticamente nel browser" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Disconnesso con Successo" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "Lingua cambiata" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "La tua lingua attiva è stata cambiata in quella impostata nel tuo profilo" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "Tema cambiato" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "Il tuo tema attivo è stato cambiato con quello impostato nel tuo profilo" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Controlla la tua casella di posta per un link di reset. Funziona solo se hai un account. Controlla anche lo spam." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Ripristino fallito" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "Già connesso" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "C'è una sessione in conflitto sul server per questo browser. Si prega di disconnettersi prima dalla precedente sessione." -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Accesso effettuato" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Accesso effettuato con successo" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "Impossibile impostare l'MFA" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "Impostazione MFA riuscita" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "MFA tramite TOTP è stato impostato con successo; sarà necessario effettuare nuovamente il login." -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Password impostata" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "La password è stata impostata con successo. Ora puoi accedere con la tua nuova password" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "La password non può essere cambiata" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "Le due password inserite non corrispondono" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Password cambiata" @@ -8347,11 +8354,11 @@ msgstr "Cerca per numero di serie" msgid "Part Actions" msgstr "Azioni articolo" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/ja/messages.po b/src/frontend/src/locales/ja/messages.po index 082b224b67..55048611d1 100644 --- a/src/frontend/src/locales/ja/messages.po +++ b/src/frontend/src/locales/ja/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ja\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -147,7 +147,7 @@ msgstr "いいえ" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "パーツ" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "パーツ" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "メーカー・パーツ" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "パーツカテゴリ" @@ -261,7 +261,7 @@ msgstr "パーツカテゴリ" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "在庫商品" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "在庫場所" @@ -644,14 +644,14 @@ msgstr "選択エントリ" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "リクエストがタイムアウトしました" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "プロセス失敗" @@ -1391,11 +1392,11 @@ msgstr "管理者権限が必要" msgid "This widget requires superuser permissions" msgstr "このウィジェットには管理者権限が必要です" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "ニュースなし" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "未読のニュースはありません" @@ -1655,7 +1656,7 @@ msgstr "コード" msgid "Error rendering preview" msgstr "プレビューの表示に失敗しました" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "プレビューが表示されない場合は、「プレビューの再読み込み」をクリックしてください。" @@ -1728,11 +1729,11 @@ msgstr "現在のテンプレートを保存し、プレビューを再読み込 #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "プレビューするインスタンスを選択" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "テンプレート描画エラー" @@ -1829,20 +1830,20 @@ msgstr "ログイン成功" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "ログインに失敗しました" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "入力内容を確認し、もう一度やり直してください。" #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "メール送信成功" @@ -2128,6 +2129,7 @@ msgstr "未分類" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "検索…" @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "読み込み中" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "一致するものが見つかりませんでした" @@ -2247,7 +2250,7 @@ msgstr "加工データ" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "エラーが発生しました" @@ -2925,7 +2928,7 @@ msgstr "ログアウト" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "ナビゲーション" msgid "About" msgstr "概要" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "ナビゲーションツリーの読み込み中にエラーが発生しました。" @@ -5539,7 +5546,7 @@ msgstr "内部サーバーエラー" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "ログアウト" @@ -5551,97 +5558,97 @@ msgstr "このブラウザで競合するセッションがあったため、ロ #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "サーバーからの応答がありません。" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "サーバーからの応答がありません。" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "多要素認証ログインに成功しました" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "多要素認証の詳細情報はブラウザに自動的に記録されました" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "ログアウトに成功しました" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "言語変更" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "アクティブ言語がプロフィールで設定した言語に変更されました。" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "テーマ変更" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "アクティブなテーマがプロフィールで設定したものに変更されました。" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "リセットのリンクを受信トレイでご確認ください。これはアカウントを持っている場合にのみ機能します。迷惑メールもチェックしてください。" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "リセット失敗" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "ログイン済み" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "このブラウザのセッションがサーバー上で競合しています。まずそちらからログアウトしてください。" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "ログイン中" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "ログインに成功しました" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "MFAの設定に失敗しました" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "MFA の設定が正常に完了しました" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "TOTP による MFA の設定が正常に完了しました。再度ログインする必要があります。" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "パスワード設定" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "パスワードは正常に設定されました。新しいパスワードでログインできます。" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "パスワードを変更できませんでした" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "2つのパスワードフィールドが一致しませんでした" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "パスワードが変更されました" @@ -8347,11 +8354,11 @@ msgstr "シリアル番号で検索" msgid "Part Actions" msgstr "パートアクション" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/ko/messages.po b/src/frontend/src/locales/ko/messages.po index 25870f013f..fb1663e8b8 100644 --- a/src/frontend/src/locales/ko/messages.po +++ b/src/frontend/src/locales/ko/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ko\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Korean\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -147,7 +147,7 @@ msgstr "아니요" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "부품" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "부품" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "제조업체 부품" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "부품 카테고리" @@ -261,7 +261,7 @@ msgstr "부품 카테고리 목록" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "재고 품목" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "재고 위치" @@ -644,14 +644,14 @@ msgstr "선택 항목" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "요청 시간이 초과되었습니다." #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "프로세스 실패" @@ -1391,11 +1392,11 @@ msgstr "슈퍼유저 권한 필요" msgid "This widget requires superuser permissions" msgstr "이 위젯에는 수퍼유저 권한이 필요합니다." -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "새 소식 없음" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "읽지 않은 뉴스 항목이 없습니다" @@ -1655,7 +1656,7 @@ msgstr "암호" msgid "Error rendering preview" msgstr "미리보기 렌더링 오류" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "미리보기를 사용할 수 없습니다. \"미리보기 다시 불러오기\"를 클릭하세요" @@ -1728,11 +1729,11 @@ msgstr "현재 템플릿을 저장하고 미리보기를 다시 로드하세요. #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "미리볼 인스턴스 선택" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "템플릿 렌더링 오류" @@ -1829,20 +1830,20 @@ msgstr "성공적으로 로그인되었습니다" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "로그인 실패" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "입력 내용을 확인한 후 다시 시도하세요" #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "메일 전달 성공" @@ -2128,6 +2129,7 @@ msgstr "분류되지 않음" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "찾다..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "불러오는 중" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "결과를 찾을 수 없습니다" @@ -2247,7 +2250,7 @@ msgstr "데이터 처리" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "오류가 발생했습니다" @@ -2925,7 +2928,7 @@ msgstr "로그아웃" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "탐색" msgid "About" msgstr "에 대한" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "탐색 트리를 불러오는 중 오류가 발생했습니다" @@ -5539,7 +5546,7 @@ msgstr "내부 서버 오류" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "로그아웃됨" @@ -5551,97 +5558,97 @@ msgstr "이 브라우저에 충돌하는 세션이 있어 로그아웃되었습 #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "서버에서 응답이 없습니다" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "서버에서 응답이 없습니다" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "MFA 로그인 성공" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "MFA 세부 정보가 브라우저에 자동으로 제공되었습니다." -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "성공적으로 로그아웃되었습니다" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "언어가 변경됨" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "현재 사용 언어가 프로필에 설정된 언어로 변경되었습니다" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "테마가 변경됨" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "현재 사용 테마가 프로필에 설정된 테마로 변경되었습니다" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "받은편지함에서 재설정 링크를 확인하세요. 계정이 있는 경우에만 동작합니다. 스팸함도 확인하세요" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "재설정 실패" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "이미 로그인되어 있습니다." -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "이 브라우저에 대해 서버에 충돌하는 세션이 있습니다. 먼저 해당 세션에서 로그아웃하세요" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "로그인됨" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "성공적으로 로그인되었습니다" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "MFA 설정에 실패했습니다" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "MFA 설정 성공" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "TOTP 기반 MFA가 성공적으로 설정되었습니다. 다시 로그인해야 합니다" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "비밀번호가 설정되었습니다" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "비밀번호가 성공적으로 설정되었습니다. 이제 새로운 비밀번호로 로그인하실 수 있습니다" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "비밀번호를 변경할 수 없습니다." -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "두 개의 비밀번호 필드가 일치하지 않습니다" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "비밀번호가 변경되었습니다." @@ -8347,11 +8354,11 @@ msgstr "시리얼 번호로 검색" msgid "Part Actions" msgstr "부품 작업" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/lt/messages.po b/src/frontend/src/locales/lt/messages.po index e4e97cb05b..8cb1ece968 100644 --- a/src/frontend/src/locales/lt/messages.po +++ b/src/frontend/src/locales/lt/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: lt\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Lithuanian\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n" @@ -147,7 +147,7 @@ msgstr "Ne" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "" @@ -261,7 +261,7 @@ msgstr "" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "" @@ -1728,11 +1729,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "" @@ -1829,20 +1830,20 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "" #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "" @@ -2128,6 +2129,7 @@ msgstr "" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "" @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "" @@ -2247,7 +2250,7 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "" @@ -2925,7 +2928,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/lv/messages.po b/src/frontend/src/locales/lv/messages.po index 135ee0cdb4..32afbfaca1 100644 --- a/src/frontend/src/locales/lv/messages.po +++ b/src/frontend/src/locales/lv/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: lv\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Latvian\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n" @@ -147,7 +147,7 @@ msgstr "" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "" @@ -261,7 +261,7 @@ msgstr "" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "" @@ -1728,11 +1729,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "" @@ -1829,20 +1830,20 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "" #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "" @@ -2128,6 +2129,7 @@ msgstr "" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "" @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "" @@ -2247,7 +2250,7 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "" @@ -2925,7 +2928,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/nl/messages.po b/src/frontend/src/locales/nl/messages.po index a3847dc986..a23a804b8d 100644 --- a/src/frontend/src/locales/nl/messages.po +++ b/src/frontend/src/locales/nl/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: nl\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-23 06:29\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "Nee" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Onderdeel" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Onderdelen" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Fabrikant onderdelen" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Onderdeel categorie" @@ -261,7 +261,7 @@ msgstr "Onderdeel categorieën" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Voorraad items" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Voorraad locatie" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "De aanvraag duurde te lang" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "Proces is mislukt" @@ -1391,11 +1392,11 @@ msgstr "Super user vereist" msgid "This widget requires superuser permissions" msgstr "Deze widget vereist super user machtigingen" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Geen nieuwsberichten" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "Er zijn geen ongelezen nieuwsartikelen" @@ -1655,7 +1656,7 @@ msgstr "Code" msgid "Error rendering preview" msgstr "Fout bij weergeven voorbeeld" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Preview niet beschikbaar, klik op \"Herlaad voorbeeld\"." @@ -1728,11 +1729,11 @@ msgstr "Sla de huidige sjabloon op en herlaad de preview" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Selecteer instantie om een voorbeeld te bekijken" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Fout bij laden sjabloon" @@ -1829,20 +1830,20 @@ msgstr "Met succes ingelogd" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Inloggen mislukt" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Controleer uw invoer en probeer het opnieuw." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "E-mail levering gelukt" @@ -2128,6 +2129,7 @@ msgstr "Niet-gecategoriseerd" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Zoeken..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Laden" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Geen resultaten gevonden" @@ -2247,7 +2250,7 @@ msgstr "Gegevens verwerken" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Er is een fout opgetreden" @@ -2925,7 +2928,7 @@ msgstr "Uitloggen" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Navigatie" msgid "About" msgstr "Over" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "Fout bij het laden van de navigatie-structuur." @@ -5539,7 +5546,7 @@ msgstr "Interne serverfout" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Uitgelogd" @@ -5551,97 +5558,97 @@ msgstr "Er was een tegenstrijdige sessie voor deze browser, die is uitgelogd." #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "Geen antwoord van server." - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "Geen antwoord van server." + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "MFA-login succesvol" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "De MFA-gegevens werden automatisch verstrekt in de browser" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Succesvol uitgelogd" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "Taal is gewijzigd" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "Uw actieve taal is gewijzigd naar de gewenste taal in uw profiel" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "Thema gewijzigd" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "Uw actieve thema is gewijzigd naar het thema in uw profiel" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Check uw inbox voor een reset-link. Dit werkt alleen als u een account heeft. Controleer ook in spam box." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Reset is mislukt" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "Is al ingelogd" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "Er is een tegenstrijdige sessie op de server voor deze browser. Meld u eerst af." -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Ingelogd" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Succesvol ingelogd" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "Het instellen van MFA is mislukt" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "MFA-instellingen geslaagd" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "De MFA via TOTP is succesvol ingesteld; u moet opnieuw inloggen." -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Wachtwoord ingesteld" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Het wachtwoord is met succes ingesteld. U kunt nu inloggen met uw nieuwe wachtwoord" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "Wachtwoord kon niet worden gewijzigd" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "De twee wachtwoordvelden komen niet overeen" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Wachtwoord gewijzigd" @@ -8347,11 +8354,11 @@ msgstr "Zoek op serienummer" msgid "Part Actions" msgstr "Acties van onderdeel" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/no/messages.po b/src/frontend/src/locales/no/messages.po index ce8dd659db..2e3f4042c5 100644 --- a/src/frontend/src/locales/no/messages.po +++ b/src/frontend/src/locales/no/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: no\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "Nei" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Del" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Deler" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Produsentdeler" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Delkategori" @@ -261,7 +261,7 @@ msgstr "Delkategorier" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Lagervarer" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Lagerplassering" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "" @@ -1728,11 +1729,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "" @@ -1829,20 +1830,20 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Innloggingen mislyktes" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Kontroller inndataene og prøv igjen." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Levering av e-post vellykket" @@ -2128,6 +2129,7 @@ msgstr "" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Søk..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Laster" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Ingen resultater funnet" @@ -2247,7 +2250,7 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "" @@ -2925,7 +2928,7 @@ msgstr "Logg ut" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Navigasjon" msgid "About" msgstr "Om" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Sjekk innboksen for en nullstillingslenke. Dette fungerer bare hvis du har en konto. Sjekk også i spam." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Tilbakestilling feilet" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Passord angitt" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Passordet er blitt satt. Du kan nå logge inn med ditt nye passord" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Passord endret" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "Delhandlinger" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/pl/messages.po b/src/frontend/src/locales/pl/messages.po index ce7b0499af..f9c71c32e7 100644 --- a/src/frontend/src/locales/pl/messages.po +++ b/src/frontend/src/locales/pl/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: pl\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Polish\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" @@ -147,7 +147,7 @@ msgstr "Nie" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Komponent" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Komponenty" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Części producenta" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Kategoria części" @@ -261,7 +261,7 @@ msgstr "Kategorie części" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Elementy magazynowe" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Lokacja stanu" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "Wymaga uprawnień superużytkownika" msgid "This widget requires superuser permissions" msgstr "Ten element wymaga uprawnień superużytkownika" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Brak wiadomości" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "Brak nieprzeczytanych wiadomości" @@ -1655,7 +1656,7 @@ msgstr "Kod" msgid "Error rendering preview" msgstr "Błąd renderowania podglądu" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Podgląd niedostępny, kliknij \"Odśwież podgląd\"." @@ -1728,11 +1729,11 @@ msgstr "Zapisz bieżący szablon i odśwież podgląd" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Wybierz instancję do podglądu" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Błąd renderowania szablonu" @@ -1829,20 +1830,20 @@ msgstr "Zalogowano pomyślnie" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Logowanie nie powiodło się" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Sprawdź dane i spróbuj ponownie." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Wiadomość dostarczona" @@ -2128,6 +2129,7 @@ msgstr "Bez kategorii" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Szukaj..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Wczytuję" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Nie znaleziono wyników" @@ -2247,7 +2250,7 @@ msgstr "Przetwarzanie danych" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Wystąpił błąd" @@ -2925,7 +2928,7 @@ msgstr "Wyloguj się" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Nawigacja" msgid "About" msgstr "O nas" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Wylogowano" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Zalogowano" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Hasło ustawione" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Hasło zostało ustawione pomyślnie. Możesz teraz zalogować się przy użyciu nowego hasła" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/pt/messages.po b/src/frontend/src/locales/pt/messages.po index 510f259217..c03dafc731 100644 --- a/src/frontend/src/locales/pt/messages.po +++ b/src/frontend/src/locales/pt/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: pt\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Portuguese\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "Não" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Peça" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Peças" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Peças do fabricante" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Categoria da peça" @@ -261,7 +261,7 @@ msgstr "Categorias da Peça" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Itens de Estoque" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Localização de Stock" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "Código" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Pré-visualização não disponível, clique em \"Recarregar Pré-visualização\"." @@ -1729,11 +1730,11 @@ msgstr "Salvar o modelo atual e recarregar a visualização" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Selecionar instância para pré-visualização" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Erro ao renderizar modelo" @@ -1830,20 +1831,20 @@ msgstr "Sessão iniciada com sucesso" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Não foi possível iniciar a sessão" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Verifique suas informações e tente novamente." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Envio bem sucedido" @@ -2129,6 +2130,7 @@ msgstr "" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Pesquisa..." @@ -2154,6 +2156,7 @@ msgid "Loading" msgstr "A carregar" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Nenhum resultado encontrado" @@ -2248,7 +2251,7 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "" @@ -2926,7 +2929,7 @@ msgstr "Encerrar sessão" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2972,7 +2975,11 @@ msgstr "Navegação" msgid "About" msgstr "Sobre" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5540,7 +5547,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Sessão terminada" @@ -5552,97 +5559,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Sessão terminada com sucesso" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Verifique a sua caixa de entrada com um link para redefinir. Isso só funciona se você já tiver uma conta. Cheque no também no spam." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Falha ao redefinir" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Sessão Iniciada" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Sessão iniciada com êxito" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Palavra-passe definida" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "A senha foi definida com sucesso. Você agora pode fazer login com sua nova senha" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8348,11 +8355,11 @@ msgstr "" msgid "Part Actions" msgstr "Ações da Peça" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/pt_BR/messages.po b/src/frontend/src/locales/pt_BR/messages.po index e65b520361..2feb679aad 100644 --- a/src/frontend/src/locales/pt_BR/messages.po +++ b/src/frontend/src/locales/pt_BR/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: pt\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-21 21:20\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "Não" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Peça" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Peças" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Peças do fabricante" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Categoria da peça" @@ -261,7 +261,7 @@ msgstr "Categorias de peça" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Itens de estoque" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Localização do estoque" @@ -644,14 +644,14 @@ msgstr "Itens de seleção" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "A solicitação excedeu o tempo" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "Falha no processamento" @@ -1391,11 +1392,11 @@ msgstr "Requer superusuário" msgid "This widget requires superuser permissions" msgstr "Este widget requer permissões de superusuário" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Nenhuma notícia" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "Não há nenhuma notícia não lida" @@ -1655,7 +1656,7 @@ msgstr "Código" msgid "Error rendering preview" msgstr "Erro ao renderizar pré-visualização" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Pré-visualização indisponível, clique em \"Recarregar pré-visualização\"." @@ -1728,11 +1729,11 @@ msgstr "Salvar o modelo atual e recarregar a pré-visualização" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Selecione a instância para pré-visualizar" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Erro ao carregar template" @@ -1829,20 +1830,20 @@ msgstr "Autenticação realizada com sucesso" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Falha ao acessar" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Verifique sua entrada e tente novamente." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Envio de e-mail concluído" @@ -2128,6 +2129,7 @@ msgstr "Sem classificação" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Buscar..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Carregando" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Nenhum resultado encontrado" @@ -2247,7 +2250,7 @@ msgstr "Processando dados" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Ocorreu um erro" @@ -2925,7 +2928,7 @@ msgstr "Sair" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Navegação" msgid "About" msgstr "Sobre" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "Limpar busca" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "Erro ao carregar a árvore de navegação." @@ -5539,7 +5546,7 @@ msgstr "Erro interno do servidor" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Desconectado" @@ -5551,97 +5558,97 @@ msgstr "Havia uma sessão conflitante neste navegador, que foi desconectada." #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "Sem resposta do servidor." - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "Sem resposta do servidor." + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "Login com MFA bem-sucedido" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "Os dados de MFA foram fornecidos automaticamente no navegador" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Deslogado com sucesso" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "Idioma alterado" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "O seu idioma ativo foi alterado para o do seu perfil" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "Tema alterado" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "Seu tema ativo foi alterado para o que foi definido em seu perfil" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Verifique sua caixa de entrada para o link de redefinição. Isso só funciona se você tiver uma conta. cheque no spam também." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "A redefinação falhou" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "Já logado" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "Há uma sessão conflitante no servidor para este navegador. Por favor, faça logout primeiro." -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Logado" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Logado com sucesso" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "Falha ao configurar autenticação de múltiplos fatores" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "Autenticação de múltiplos fatores configurada com sucesso" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "A MFA via TOTP foi configurada com sucesso; você precisará entrar novamente." -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Senha definida" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Sua senha foi alterada com sucesso. agora você pode acessar usando sua nova senha" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "A senha não pode ser alterada" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "As senhas são diferentes" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Senha alterada" @@ -8347,11 +8354,11 @@ msgstr "Buscar por número de série" msgid "Part Actions" msgstr "Ações da peça" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "Peça bloqueada" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "Peça desbloqueada" diff --git a/src/frontend/src/locales/ro/messages.po b/src/frontend/src/locales/ro/messages.po index 39b0585ded..28e73a719b 100644 --- a/src/frontend/src/locales/ro/messages.po +++ b/src/frontend/src/locales/ro/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ro\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Romanian\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n" @@ -147,7 +147,7 @@ msgstr "Nu" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Piesă" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Piese" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Piesele Producătorului" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Categorie Piesă" @@ -261,7 +261,7 @@ msgstr "Categorii Piese" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Stochează Articole" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Locația Stocului" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "Acest widget necesită permisiuni superutilizator" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Nicio știre" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "Nu există știri necitite" @@ -1655,7 +1656,7 @@ msgstr "Cod" msgid "Error rendering preview" msgstr "Eroare la redarea previzualizării" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Previzualizare indisponibilă, apăsați \"Reîncărcare previzualizare\"." @@ -1728,11 +1729,11 @@ msgstr "Salvați șablonul curent și reîncărcați previzualizarea" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "" @@ -1829,20 +1830,20 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "" #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "" @@ -2128,6 +2129,7 @@ msgstr "" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "" @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "" @@ -2247,7 +2250,7 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "" @@ -2925,7 +2928,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Parolă setată" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Parola a fost setată cu succes. Acum vă puteţi autentifica cu noua parolă" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "Nu s-a putut modifica parola" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "Cele două câmpuri de parolă nu se potrivesc" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Parolă schimbată" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/ru/messages.po b/src/frontend/src/locales/ru/messages.po index 916d3a2fe5..cf815bd4ce 100644 --- a/src/frontend/src/locales/ru/messages.po +++ b/src/frontend/src/locales/ru/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ru\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Russian\n" "Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" @@ -147,7 +147,7 @@ msgstr "Нет" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Деталь" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Детали" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Детали производителей" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Категория детали" @@ -261,7 +261,7 @@ msgstr "Категории деталей" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Складские позиции" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Место хранения" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "Превышено время выполнения запроса" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "Не удалось выполнить процесс" @@ -1391,11 +1392,11 @@ msgstr "Требует прав суперпользователя" msgid "This widget requires superuser permissions" msgstr "Этот виджет требует прав суперпользователя" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Новостей нет" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "Нет непрочитанных новостей" @@ -1655,7 +1656,7 @@ msgstr "Код" msgid "Error rendering preview" msgstr "Ошибка при отрисовке предпросмотра" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Предварительный просмотр недоступен, нажмите \"Перезагрузить предпросмотр\"." @@ -1728,11 +1729,11 @@ msgstr "Сохранить текущий шаблон и обновить пр #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Выберите экземпляр для просмотра" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Ошибка отображения шаблона" @@ -1829,20 +1830,20 @@ msgstr "Вы успешно вошли в систему" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Ошибка входа" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Проверьте введенные данные и повторите попытку." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Отправка почты прошла успешно" @@ -2128,6 +2129,7 @@ msgstr "Без категории" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Поиск..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Загрузка" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Ничего не найдено" @@ -2247,7 +2250,7 @@ msgstr "Обработка данных" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Произошла ошибка" @@ -2925,7 +2928,7 @@ msgstr "Выход" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Панель навигации" msgid "About" msgstr "О проекте" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "Ошибка загрузки дерева навигации." @@ -5539,7 +5546,7 @@ msgstr "Внутренняя ошибка сервера" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Выход" @@ -5551,97 +5558,97 @@ msgstr "Вы уже были авторизованы, старая сессия #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "Нет ответа от сервера." - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "Нет ответа от сервера." + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "Успешный вход с помощью МФА" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "Данные МФА автоматически переданы в браузер" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Успешный выход из системы" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "Язык изменён" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "Язык изменён на заданный в вашем профиле" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "Тема изменена" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "Тема интерфейса изменена на заданную в профиле" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Проверьте свой почтовый ящик, чтобы получить ссылку на сброс. Это работает только в том случае, если у вас есть учетная запись. Проверьте также спам." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Сброс не удался" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "Вход уже выполнен" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "На сервере есть конфликтующие сессии для данного браузера. Пожалуйста, выйдите из системы." -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Войти в систему" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Вход выполнен успешно" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "Не удалось настроить МФА" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "Многофакторная аутентификация настроена успешно" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "Многофакторная аутентификация через TOTP настроена успешно; вам нужно авторизоваться повторно." -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Пароль установлен" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Пароль был установлен успешно. Теперь вы можете войти в систему с новым паролем" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "Пароль не может быть изменён" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "Пароли не совпадают" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Пароль изменен" @@ -8347,11 +8354,11 @@ msgstr "Поиск по серийному номеру" msgid "Part Actions" msgstr "Действия с деталью" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/sk/messages.po b/src/frontend/src/locales/sk/messages.po index de018d89f0..2124406073 100644 --- a/src/frontend/src/locales/sk/messages.po +++ b/src/frontend/src/locales/sk/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: sk\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Slovak\n" "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n" @@ -147,7 +147,7 @@ msgstr "" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "" @@ -261,7 +261,7 @@ msgstr "" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "" @@ -1728,11 +1729,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "" @@ -1829,20 +1830,20 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "" #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "" @@ -2128,6 +2129,7 @@ msgstr "" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "" @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "" @@ -2247,7 +2250,7 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "" @@ -2925,7 +2928,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/sl/messages.po b/src/frontend/src/locales/sl/messages.po index ea248523fb..40b5dd66dd 100644 --- a/src/frontend/src/locales/sl/messages.po +++ b/src/frontend/src/locales/sl/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: sl\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n" @@ -147,7 +147,7 @@ msgstr "" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Del" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Deli" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "" @@ -261,7 +261,7 @@ msgstr "" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "" @@ -1728,11 +1729,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "" @@ -1829,20 +1830,20 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "" #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "" @@ -2128,6 +2129,7 @@ msgstr "" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "" @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "" @@ -2247,7 +2250,7 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "" @@ -2925,7 +2928,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/sr/messages.po b/src/frontend/src/locales/sr/messages.po index e2c138b199..13593bf877 100644 --- a/src/frontend/src/locales/sr/messages.po +++ b/src/frontend/src/locales/sr/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: sr\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\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" @@ -147,7 +147,7 @@ msgstr "Ne" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Deo" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Delovi" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Delovi proizvođača" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Kategorija delova" @@ -261,7 +261,7 @@ msgstr "Kategorije delova" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Stavke zaliha" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Lokacija zaliha" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "Isteklo je vreme zahteva" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "Potreban je korisnik sa većim pravom pristupa" msgid "This widget requires superuser permissions" msgstr "Ovaj vidžet zahteva specijalne dozvole" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Nema novosti" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "Nema nepročitanih novosti" @@ -1655,7 +1656,7 @@ msgstr "Kod" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Pregled nije moguć, klikni na \"Ponovo učitaj pregled\"." @@ -1728,11 +1729,11 @@ msgstr "sačuvaj trenutni šablon i ponovo učitaj pregled" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Izaberi instancu za pregled" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Greška prilikom generisanja šablona" @@ -1829,20 +1830,20 @@ msgstr "Uspešno prijavljivanje" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Neuspešna prijava" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Proverite svoj unos i pokušajte ponovno." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Isporuka pošte uspešna" @@ -2128,6 +2129,7 @@ msgstr "Nepoznato" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Pretraži…" @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Učitavanje" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Nema pronađenih rezultata" @@ -2247,7 +2250,7 @@ msgstr "Obrađivanje podataka" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Desila se greška" @@ -2925,7 +2928,7 @@ msgstr "Odjavljivanje" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Navigacija" msgid "About" msgstr "O nama" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "Interna serverska greška" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Odjavljen" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Uspešno ste odjavljeni" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Proverite u primljenoj pošti da li imate link za resetovanje. Proverite i u spamu" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Resetovanje neuspešno" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Ulogovani ste" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Uspešno ste se ulogovali" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Lozinka podešena" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Lozinka je uspešno podešena. Sada se možete prijaviti sa novom lozinkom" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "Lozinku nije bilo moguće promeniti" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Lozinka promenjena" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "Akcije dela" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/sv/messages.po b/src/frontend/src/locales/sv/messages.po index 7188f93543..232e43fe2c 100644 --- a/src/frontend/src/locales/sv/messages.po +++ b/src/frontend/src/locales/sv/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: sv\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "Nej" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Artkel" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Artiklar" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Tillverkarens artiklar" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Artikel Kategori" @@ -261,7 +261,7 @@ msgstr "Artikelkategorier" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Artikel i lager" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Lagerplats" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Inga nyheter" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "Kod" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Förhandsgranska ej tillgänglig, klicka på \"Ladda om förhandsgranskning\"." @@ -1728,11 +1729,11 @@ msgstr "Spara den aktuella mallen och ladda om förhandsgranskningen" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Välj instans att förhandsgranska" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Fel vid rendering av mall" @@ -1829,20 +1830,20 @@ msgstr "Inloggningen lyckades" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Inloggningen misslyckades" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Kontrollera din inmatning och försök igen." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "E-postleverans lyckad" @@ -2128,6 +2129,7 @@ msgstr "Okategoriserade" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Sök..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Laddar" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Inga resultat hittades" @@ -2247,7 +2250,7 @@ msgstr "Bearbetar data" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Ett fel inträffade" @@ -2925,7 +2928,7 @@ msgstr "Logga ut" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Navigering" msgid "About" msgstr "Om" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Utloggad" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Utloggningen lyckades" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "Tema ändrat" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Kolla din inkorg för en återställningslänk. Detta fungerar bara om du har ett konto. Kontrollera även i skräppost." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Återställningen misslyckades" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "Redan inloggad" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Inloggad" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Inloggning lyckades" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Lösenord sparat!" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Ditt lösenord har sparats. Du kan nu logga in med ditt nya lösenord." -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "Lösenord ändrat" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "Artikel åtgärder" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/th/messages.po b/src/frontend/src/locales/th/messages.po index f20f266c33..9780d66034 100644 --- a/src/frontend/src/locales/th/messages.po +++ b/src/frontend/src/locales/th/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: th\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Thai\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -147,7 +147,7 @@ msgstr "" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "" @@ -261,7 +261,7 @@ msgstr "" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "" @@ -1728,11 +1729,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "" @@ -1829,20 +1830,20 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "" #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "" @@ -2128,6 +2129,7 @@ msgstr "" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "" @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "" @@ -2247,7 +2250,7 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "" @@ -2925,7 +2928,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/tr/messages.po b/src/frontend/src/locales/tr/messages.po index c88c3971c2..2c5623022a 100644 --- a/src/frontend/src/locales/tr/messages.po +++ b/src/frontend/src/locales/tr/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: tr\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -147,7 +147,7 @@ msgstr "Hayır" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Parça" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Parçalar" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Üretici Parçaları" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Parça Kategorisi" @@ -261,7 +261,7 @@ msgstr "Parça Kategorileri" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Stok Kalemleri" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Stok Konumu" @@ -644,14 +644,14 @@ msgstr "Seçim Kayıtları" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "İstek zaman aşımı" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "İşlem başarısız" @@ -1391,11 +1392,11 @@ msgstr "Süper Kullanıcı Gerekir" msgid "This widget requires superuser permissions" msgstr "Bu kart süper kullanıcı izinleri gerektirir" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "Haber yok" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "Burada okunmamış haber yok" @@ -1655,7 +1656,7 @@ msgstr "Kod" msgid "Error rendering preview" msgstr "Önizleme görüntüleme hatası" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Önizleme kullanılamıyor, \"Önizlemeyi Yeniden Yükle\"'ye tıklayın." @@ -1728,11 +1729,11 @@ msgstr "Mevcut şablonu kaydet ve önizlemeyi yeniden yükle" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Önizlenecek örneği seçin" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Şablonu işleme hatası" @@ -1829,20 +1830,20 @@ msgstr "Başarıyla giriş yapıldı" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Giriş başarısız" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Lütfen bilgilerinizi kontrol edin ve yeniden giriş yapın." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "E-posta teslimi başarılı" @@ -2128,6 +2129,7 @@ msgstr "Kategorisiz" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Ara..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Yükleniyor" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Hiçbir şey bulunamadı" @@ -2247,7 +2250,7 @@ msgstr "Veri İşleniyor" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Bir hata oluştu" @@ -2269,7 +2272,7 @@ msgstr "Sütun seçin veya bu alanı yok saymak için boş bırakın." #: src/components/importer/ImporterColumnSelector.tsx:202 msgid "Auto" -msgstr "" +msgstr "Otomatik" #: src/components/importer/ImporterColumnSelector.tsx:305 msgid "Ignore this field" @@ -2297,7 +2300,7 @@ msgstr "İçe Aktarılmış Sütun" #: src/components/importer/ImporterColumnSelector.tsx:340 msgid "Lookup Field" -msgstr "" +msgstr "Arama Alanı" #: src/components/importer/ImporterColumnSelector.tsx:341 msgid "Default Value" @@ -2925,7 +2928,7 @@ msgstr "Çıkış" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Gezinme" msgid "About" msgstr "Hakkında" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "Navigasyon ağacını yükleme hatası." @@ -4053,7 +4060,7 @@ msgstr "Parçayı içe aktarma başarısız oldu: " #: src/components/wizards/ImportPartWizard.tsx:641 msgid "Are you sure, you want to import the supplier and manufacturer part into this part?" -msgstr "" +msgstr "Bu parçaya tedarikçi ve üretici bilgilerini aktarmak istediğinizden emin misiniz?" #: src/components/wizards/ImportPartWizard.tsx:655 msgid "Import" @@ -4061,28 +4068,28 @@ msgstr "İçe aktar" #: src/components/wizards/ImportPartWizard.tsx:692 msgid "Parameters created successfully!" -msgstr "" +msgstr "Parametreler başarıyla oluşturuldu!" #: src/components/wizards/ImportPartWizard.tsx:720 msgid "Failed to create parameters, please fix the errors and try again" -msgstr "" +msgstr "Parametreleri oluşturulamadı, lütfen hataları düzeltip yeniden deneyin" #. placeholder {0}: supplierPart?.supplier #: src/components/wizards/ImportPartWizard.tsx:740 msgid "Part imported successfully from supplier {0}." -msgstr "" +msgstr "Parça, {0} tedarikçisinden başarıyla içe aktarıldı." #: src/components/wizards/ImportPartWizard.tsx:753 msgid "Open Part" -msgstr "" +msgstr "Parçayı Aç" #: src/components/wizards/ImportPartWizard.tsx:760 msgid "Open Supplier Part" -msgstr "" +msgstr "Tedarikçi Parçasını Aç" #: src/components/wizards/ImportPartWizard.tsx:767 msgid "Open Manufacturer Part" -msgstr "" +msgstr "Üretici Parçasını Aç" #: src/components/wizards/ImportPartWizard.tsx:797 #: src/tables/part/PartTable.tsx:499 @@ -4091,11 +4098,11 @@ msgstr "" #: src/components/wizards/ImportPartWizard.tsx:803 msgid "Import Supplier Part" -msgstr "" +msgstr "Tedarikçi Parçası İçe Aktar" #: src/components/wizards/ImportPartWizard.tsx:805 msgid "Search Supplier Part" -msgstr "" +msgstr "Tedarikçi Parçası Ara" #: src/components/wizards/ImportPartWizard.tsx:807 msgid "Confirm import" @@ -4107,19 +4114,19 @@ msgstr "Bitti" #: src/components/wizards/OrderPartsWizard.tsx:75 msgid "Error fetching part requirements" -msgstr "" +msgstr "Parça gereksinimleri alınırken hata oluştu" #: src/components/wizards/OrderPartsWizard.tsx:113 msgid "Requirements" -msgstr "" +msgstr "Gereksinimler" #: src/components/wizards/OrderPartsWizard.tsx:117 msgid "Build Requirements" -msgstr "" +msgstr "Üretim Gereksinimleri" #: src/components/wizards/OrderPartsWizard.tsx:123 msgid "Sales Requirements" -msgstr "" +msgstr "Satış Gereksinimleri" #: src/components/wizards/OrderPartsWizard.tsx:129 #: src/forms/StockForms.tsx:955 @@ -4141,19 +4148,19 @@ msgstr "Stokta" #: src/components/wizards/OrderPartsWizard.tsx:146 #: src/tables/build/BuildLineTable.tsx:409 msgid "Required Quantity" -msgstr "" +msgstr "Gereken Miktar" #: src/components/wizards/OrderPartsWizard.tsx:205 msgid "New Purchase Order" -msgstr "" +msgstr "Yeni Satın Alma Siparişi" #: src/components/wizards/OrderPartsWizard.tsx:207 msgid "Purchase order created" -msgstr "" +msgstr "Satın alma siparişi oluşturuldu" #: src/components/wizards/OrderPartsWizard.tsx:219 msgid "New Supplier Part" -msgstr "" +msgstr "Yeni Tedarikçi Parçası" #: src/components/wizards/OrderPartsWizard.tsx:221 #: src/tables/purchasing/SupplierPartTable.tsx:218 @@ -4163,72 +4170,72 @@ msgstr "Tedarikçi parçası oluşturuldu" #: src/components/wizards/OrderPartsWizard.tsx:249 msgid "Add to Purchase Order" -msgstr "" +msgstr "Satın Alma Siparişine Ekle" #: src/components/wizards/OrderPartsWizard.tsx:261 msgid "Part added to purchase order" -msgstr "" +msgstr "Parça, satın alma siparişine eklendi" #: src/components/wizards/OrderPartsWizard.tsx:306 msgid "Select supplier part" -msgstr "" +msgstr "Tedarikçi parçası seç" #: src/components/wizards/OrderPartsWizard.tsx:326 msgid "Copy supplier part number" -msgstr "" +msgstr "Tedarikçi parça numarasını kopyala" #: src/components/wizards/OrderPartsWizard.tsx:329 msgid "New supplier part" -msgstr "" +msgstr "Yeni tedarikçi parçası" #: src/components/wizards/OrderPartsWizard.tsx:353 msgid "Select purchase order" -msgstr "" +msgstr "Satın alma siparişi seç" #: src/components/wizards/OrderPartsWizard.tsx:367 msgid "New purchase order" -msgstr "" +msgstr "Yeni satın alma siparişi" #: src/components/wizards/OrderPartsWizard.tsx:423 msgid "Add to selected purchase order" -msgstr "" +msgstr "Seçili satın alma siparişine ekle" #: src/components/wizards/OrderPartsWizard.tsx:440 #: src/components/wizards/OrderPartsWizard.tsx:578 msgid "No parts selected" -msgstr "" +msgstr "Hiç parça seçilmedi" #: src/components/wizards/OrderPartsWizard.tsx:441 msgid "No purchaseable parts selected" -msgstr "" +msgstr "Hiç satın alınabilir parça seçilmedi" #: src/components/wizards/OrderPartsWizard.tsx:477 msgid "Parts Added" -msgstr "" +msgstr "Parçalar Eklendi" #: src/components/wizards/OrderPartsWizard.tsx:478 msgid "All selected parts added to a purchase order" -msgstr "" +msgstr "Seçilen tüm parçalar bir satın alma siparişine eklendi" #: src/components/wizards/OrderPartsWizard.tsx:579 msgid "You must select at least one part to order" -msgstr "" +msgstr "Sipariş etmek için en az bir parça seçilmelidir" #: src/components/wizards/OrderPartsWizard.tsx:590 msgid "Supplier part is required" -msgstr "" +msgstr "Tedarikçi parçası gereklidir" #: src/components/wizards/OrderPartsWizard.tsx:594 msgid "Quantity is required" -msgstr "" +msgstr "Miktar gereklidir" #: src/components/wizards/OrderPartsWizard.tsx:607 msgid "Invalid part selection" -msgstr "" +msgstr "Geçersiz parça seçimi" #: src/components/wizards/OrderPartsWizard.tsx:609 msgid "Please correct the errors in the selected parts" -msgstr "" +msgstr "Lütfen seçilen parçalardaki hataları düzeltin" #: src/components/wizards/OrderPartsWizard.tsx:620 #: src/tables/build/BuildLineTable.tsx:885 @@ -4236,7 +4243,7 @@ msgstr "" #: src/tables/sales/SalesOrderLineItemTable.tsx:417 #: src/tables/stock/TransferOrderLineItemTable.tsx:330 msgid "Order Parts" -msgstr "" +msgstr "Parçaları Sipariş Et" #: src/contexts/LanguageContext.tsx:22 #~ msgid "Arabic" @@ -4393,7 +4400,7 @@ msgstr "" #: src/defaults/actions.tsx:41 #: src/defaults/actions.tsx:113 msgid "Hotkeys" -msgstr "" +msgstr "Kısayol tuşları" #: src/defaults/actions.tsx:41 #: src/defaults/links.tsx:118 @@ -4419,7 +4426,7 @@ msgstr "Sunucu Bilgisi" #: src/defaults/actions.tsx:86 #: src/defaults/links.tsx:180 msgid "About this InvenTree instance" -msgstr "" +msgstr "Bu InvenTree örneği hakkında" #: src/defaults/actions.tsx:92 #: src/defaults/links.tsx:164 @@ -4441,47 +4448,47 @@ msgstr "Ana gezinme menüsünü aç" #: src/defaults/actions.tsx:107 msgid "Go to your user settings" -msgstr "" +msgstr "Kullanıcı ayarlarınıza gidin" #: src/defaults/actions.tsx:114 msgid "View a list of available hotkeys" -msgstr "" +msgstr "Kullanılabilir kısayol tuşlarının listesini görüntüle" #: src/defaults/actions.tsx:123 msgid "Import Data" -msgstr "" +msgstr "Veri İçe Aktar" #: src/defaults/actions.tsx:124 msgid "Import data from a file" -msgstr "" +msgstr "Bir dosyadan veri içe aktar" #: src/defaults/actions.tsx:134 msgid "Go to Purchase Orders" -msgstr "" +msgstr "Satın Alma Siparişlerine Git" #: src/defaults/actions.tsx:144 msgid "Go to Sales Orders" -msgstr "" +msgstr "Satış Siparişlerine Git" #: src/defaults/actions.tsx:155 msgid "Go to Transfer Orders" -msgstr "" +msgstr "Aktarım Emirlerine Git" #: src/defaults/actions.tsx:166 msgid "Go to Return Orders" -msgstr "" +msgstr "İade Siparişlerine Git" #: src/defaults/actions.tsx:176 msgid "Scan a barcode or QR code" -msgstr "" +msgstr "Bir barkod veya QR kodu tara" #: src/defaults/actions.tsx:185 msgid "Go to Build Orders" -msgstr "" +msgstr "Üretim Emirlerine Git" #: src/defaults/actions.tsx:194 msgid "Go to System Settings" -msgstr "" +msgstr "Sistem Ayarlarına Git" #: src/defaults/actions.tsx:203 msgid "Go to the Admin Center" @@ -4489,19 +4496,19 @@ msgstr "Yönetim Merkezine Git" #: src/defaults/actions.tsx:212 msgid "Error Logs" -msgstr "" +msgstr "Hata Kayıtları" #: src/defaults/actions.tsx:213 msgid "View error logs for this instance" -msgstr "" +msgstr "Bu örneğe ait hata günlüklerini görüntüle" #: src/defaults/actions.tsx:223 msgid "Manage user accounts" -msgstr "" +msgstr "Kullanıcı hesaplarını yönet" #: src/defaults/actions.tsx:233 msgid "Manage InvenTree plugins" -msgstr "" +msgstr "InvenTree eklentilerini yönet" #: src/defaults/actions.tsx:242 #: src/pages/Index/Settings/AdminCenter/Index.tsx:240 @@ -4512,15 +4519,15 @@ msgstr "Makineler" #: src/defaults/actions.tsx:243 msgid "Manage machines and machine types" -msgstr "" +msgstr "Makineleri ve makine türlerini yönet" #: src/defaults/actions.tsx:253 msgid "Manage report templates" -msgstr "" +msgstr "Rapor şablonlarını yönet" #: src/defaults/actions.tsx:263 msgid "Manage label templates" -msgstr "" +msgstr "Etiket şablonlarını yönet" #: src/defaults/dashboardItems.tsx:29 #~ msgid "Latest Parts" @@ -4564,15 +4571,15 @@ msgstr "" #: src/defaults/defaultHostList.tsx:10 msgid "Local Server" -msgstr "" +msgstr "Yerel Sunucu" #: src/defaults/defaultHostList.tsx:12 msgid "InvenTree Demo" -msgstr "" +msgstr "InvenTree Demo" #: src/defaults/defaultHostList.tsx:14 msgid "Current Server" -msgstr "" +msgstr "Mevcut Sunucu" #: src/defaults/links.tsx:17 #~ msgid "GitHub" @@ -4626,11 +4633,11 @@ msgstr "Sıkça sorulan sorular" #: src/defaults/links.tsx:125 msgid "GitHub Repository" -msgstr "" +msgstr "Github Deposu" #: src/defaults/links.tsx:128 msgid "InvenTree source code on GitHub" -msgstr "" +msgstr "InvenTree'nin Github'daki kaynak kodu" #: src/defaults/links.tsx:134 #~ msgid "Licenses" @@ -4643,11 +4650,11 @@ msgstr "Sistem Bilgisi" #: src/defaults/links.tsx:187 msgid "Licenses for dependencies of the InvenTree software" -msgstr "" +msgstr "InvenTree yazılımının bağımlılıklarının lisansları" #: src/defaults/links.tsx:198 msgid "About the InvenTree Project" -msgstr "" +msgstr "InvenTree Projesi Hakkında" #: src/defaults/menuItems.tsx:7 #~ msgid "Open sourcea" @@ -4767,23 +4774,23 @@ msgstr "" #: src/forms/BomForms.tsx:43 msgid "Required component quantity" -msgstr "" +msgstr "Gerekli bileşen miktarı" #: src/forms/BomForms.tsx:123 msgid "Substitute Part" -msgstr "" +msgstr "Muadil Parça" #: src/forms/BomForms.tsx:140 msgid "Edit BOM Substitutes" -msgstr "" +msgstr "BOM Muadillerini Düzenle" #: src/forms/BomForms.tsx:147 msgid "Add Substitute" -msgstr "" +msgstr "Muadil Ekle" #: src/forms/BomForms.tsx:148 msgid "Substitute added" -msgstr "" +msgstr "Muadil eklendi" #: src/forms/BuildForms.tsx:112 #: src/forms/BuildForms.tsx:217 @@ -4806,7 +4813,7 @@ msgstr "Üretim Çıktısı" #: src/forms/BuildForms.tsx:370 msgid "Quantity to Complete" -msgstr "" +msgstr "Tamamlanacak Miktar" #: src/forms/BuildForms.tsx:372 #: src/forms/BuildForms.tsx:454 @@ -4848,7 +4855,7 @@ msgstr "Üretim Çıktılarını Tamamla" #: src/forms/BuildForms.tsx:452 msgid "Quantity to Scrap" -msgstr "" +msgstr "Hurdaya Ayrılacak Miktar" #: src/forms/BuildForms.tsx:470 #~ msgid "Remove line" @@ -4861,11 +4868,11 @@ msgstr "Üretim Çıktılarını Hurdaya Ayır" #: src/forms/BuildForms.tsx:477 msgid "Selected build outputs will be completed, but marked as scrapped" -msgstr "" +msgstr "Seçili üretim çıktıları tamamlanacak, ancak hurda olarak işaretlenecektir" #: src/forms/BuildForms.tsx:479 msgid "Allocated stock items will be consumed" -msgstr "" +msgstr "Tahsis edilen stok kalemleri tüketilecektir" #: src/forms/BuildForms.tsx:538 #: src/forms/BuildForms.tsx:540 @@ -4874,11 +4881,11 @@ msgstr "Üretim Çıktılarını İptal Et" #: src/forms/BuildForms.tsx:542 msgid "Selected build outputs will be removed" -msgstr "" +msgstr "Seçili üretim çıktıları kaldırılacaktır" #: src/forms/BuildForms.tsx:544 msgid "Allocated stock items will be returned to stock" -msgstr "" +msgstr "Tahsis edilen stok kalemleri stoka iade edilecektir" #: src/forms/BuildForms.tsx:684 #: src/pages/build/BuildDetail.tsx:267 @@ -4921,7 +4928,7 @@ msgstr "Kaynak Konum" #: src/forms/SalesOrderForms.tsx:427 #: src/forms/TransferOrderForms.tsx:225 msgid "Select the source location for the stock allocation" -msgstr "" +msgstr "Stok tahsisi için kaynak konumu seç" #: src/forms/BuildForms.tsx:753 #: src/forms/SalesOrderForms.tsx:468 @@ -4942,7 +4949,7 @@ msgstr "Stoku Tahsis Et" #: src/forms/SalesOrderForms.tsx:473 #: src/forms/TransferOrderForms.tsx:263 msgid "Stock items allocated" -msgstr "" +msgstr "Stok kalemleri tahsis edildi" #: src/forms/BuildForms.tsx:817 #: src/forms/BuildForms.tsx:918 @@ -4963,13 +4970,13 @@ msgstr "" #: src/tables/build/BuildLineTable.tsx:934 #: src/tables/stock/TransferOrderTable.tsx:56 msgid "Consume Stock" -msgstr "" +msgstr "Stoku Tüket" #: src/forms/BuildForms.tsx:907 #: src/tables/build/BuildLineTable.tsx:522 #: src/tables/part/PartBuildAllocationsTable.tsx:101 msgid "Fully consumed" -msgstr "" +msgstr "Tümüyle tüketildi" #: src/forms/BuildForms.tsx:952 #: src/tables/build/BuildLineTable.tsx:192 @@ -4979,12 +4986,12 @@ msgstr "Tüketildi" #: src/forms/CommonFields.tsx:16 msgid "Tags for this item" -msgstr "" +msgstr "Bu öge için etiketler" #: src/forms/CommonFields.tsx:17 #: src/tables/Filter.tsx:414 msgid "Select tags" -msgstr "" +msgstr "Etiketleri seç" #: src/forms/CommonForms.tsx:94 #: src/forms/PurchaseOrderForms.tsx:195 @@ -4992,7 +4999,7 @@ msgstr "" #: src/forms/SalesOrderForms.tsx:198 #: src/forms/TransferOrderForms.tsx:95 msgid "Select project code for this line item" -msgstr "" +msgstr "Bu satır ögesi için proje kodu seç" #: src/forms/CompanyForms.tsx:150 #~ msgid "Company updated" @@ -5013,7 +5020,7 @@ msgstr "Takip ediliyor" #: src/forms/PartForms.tsx:111 msgid "Subscribe to notifications for this part" -msgstr "" +msgstr "Bu parçanın bildirmlerine abone ol" #: src/forms/PartForms.tsx:129 #~ msgid "Part updated" @@ -5025,7 +5032,7 @@ msgstr "Üst parça kategorisi" #: src/forms/PartForms.tsx:245 msgid "Subscribe to notifications for this category" -msgstr "" +msgstr "Bu kategorinin bildirimlerine abone ol" #: src/forms/PurchaseOrderForms.tsx:421 #~ msgid "Assign Batch Code{0}" @@ -5070,7 +5077,7 @@ msgstr "Sanal Parça" #: src/forms/PurchaseOrderForms.tsx:566 msgid "This part is virtual, no physical stock will be received." -msgstr "" +msgstr "Bu parça sanaldır; fiziksel stok teslim alınmayacaktır." #: src/forms/PurchaseOrderForms.tsx:566 #~ msgid "Serial numbers" @@ -5090,7 +5097,7 @@ msgstr "Parti Kodu Ata" #: src/forms/PurchaseOrderForms.tsx:620 msgid "Assign Serial Numbers" -msgstr "" +msgstr "Seri Numaraları Ata" #: src/forms/PurchaseOrderForms.tsx:632 msgid "Set Expiry Date" @@ -5143,7 +5150,7 @@ msgstr "Parti Kodu" #: src/forms/PurchaseOrderForms.tsx:776 msgid "Enter batch code for received items" -msgstr "" +msgstr "Teslim alınan ögeler için parti kodu gir" #: src/forms/PurchaseOrderForms.tsx:789 #: src/forms/StockForms.tsx:224 @@ -5152,7 +5159,7 @@ msgstr "Seri Numaraları" #: src/forms/PurchaseOrderForms.tsx:790 msgid "Enter serial numbers for received items" -msgstr "" +msgstr "Teslim alınan ögeler için seri numaraları gir" #: src/forms/PurchaseOrderForms.tsx:807 #: src/pages/stock/StockDetail.tsx:393 @@ -5162,7 +5169,7 @@ msgstr "Son Kullanma Tarihi" #: src/forms/PurchaseOrderForms.tsx:808 msgid "Enter an expiry date for received items" -msgstr "" +msgstr "Teslim alınan ögeler için bir geçerlilik tarihi gir" #: src/forms/PurchaseOrderForms.tsx:820 #: src/forms/StockForms.tsx:775 @@ -5199,56 +5206,56 @@ msgstr "Kalemleri Teslim Al" #: src/forms/PurchaseOrderForms.tsx:940 msgid "Items received" -msgstr "" +msgstr "Ögeler teslim alındı" #: src/forms/ReturnOrderForms.tsx:261 msgid "Receive Items" -msgstr "" +msgstr "Ögeleri Teslim Al" #: src/forms/ReturnOrderForms.tsx:268 msgid "Item received into stock" -msgstr "" +msgstr "Öge stoka teslim alındı" #. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.' #: src/forms/SalesOrderForms.tsx:190 msgid "Price based on part and quantity differs{0}" -msgstr "" +msgstr "Parça ve miktara göre fiyat farklılık gösterir{0}" #: src/forms/SalesOrderForms.tsx:221 #: src/forms/SalesOrderForms.tsx:223 #: src/tables/sales/SalesOrderShipmentTable.tsx:211 msgid "Check Shipment" -msgstr "" +msgstr "Sevkiyatı Kontrol Et" #: src/forms/SalesOrderForms.tsx:224 msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct" -msgstr "" +msgstr "Gönderiyi “kontrol edildi” olarak işaretlemek, bu gönderide yer alan tüm ürünlerin doğru olduğunu doğruladığınızı gösterir" #: src/forms/SalesOrderForms.tsx:234 msgid "Shipment marked as checked" -msgstr "" +msgstr "Sevkiyat kontrol edildi olarak işaretlendi" #: src/forms/SalesOrderForms.tsx:249 #: src/forms/SalesOrderForms.tsx:251 #: src/tables/sales/SalesOrderShipmentTable.tsx:224 msgid "Uncheck Shipment" -msgstr "" +msgstr "Sevkiyat Kontrolünü İptal Et" #: src/forms/SalesOrderForms.tsx:252 msgid "Marking the shipment as unchecked indicates that the shipment requires further verification" -msgstr "" +msgstr "Sevkiyatı “kontrol edilmemiş” olarak işaretlemek, gönderinin daha fazla doğrulama gerektirdiğini gösterir" #: src/forms/SalesOrderForms.tsx:262 msgid "Shipment marked as unchecked" -msgstr "" +msgstr "Sevkiyat kontrol edilmemiş olarak işaretlendi" #: src/forms/SalesOrderForms.tsx:280 msgid "Completing shipment" -msgstr "" +msgstr "Sevkiyat tamamlanıyor" #: src/forms/SalesOrderForms.tsx:281 msgid "Shipment completed successfully" -msgstr "" +msgstr "Sevkiyat başarıyla tamamlandı" #: src/forms/SalesOrderForms.tsx:288 #: src/tables/sales/SalesOrderShipmentTable.tsx:234 @@ -5257,7 +5264,7 @@ msgstr "Gönderiyi Tamamla" #: src/forms/SalesOrderForms.tsx:534 msgid "Leave blank to use the order address" -msgstr "" +msgstr "Sipariş adresini kullanmak için boş bırakın" #: src/forms/StockForms.tsx:110 #~ msgid "Create Stock Item" @@ -5292,7 +5299,7 @@ msgstr "Stok Kalemi Ekle" #: src/forms/StockForms.tsx:371 msgid "Select the part to install" -msgstr "" +msgstr "Takılacak parçayı seç" #: src/forms/StockForms.tsx:506 msgid "Confirm Stock Transfer" @@ -5300,7 +5307,7 @@ msgstr "Stok Transferini Onayla" #: src/forms/StockForms.tsx:707 msgid "Confirm Stock Return" -msgstr "" +msgstr "Stok İadesini Onayla" #: src/forms/StockForms.tsx:719 msgid "Move to default location" @@ -5316,15 +5323,15 @@ msgstr "Geri Dön" #: src/forms/StockForms.tsx:905 msgid "Merge into existing stock" -msgstr "" +msgstr "Mevcut stokla birleştir" #: src/forms/StockForms.tsx:906 msgid "Merge returned items into existing stock items if possible" -msgstr "" +msgstr "Mümkünse iade edilen kalemleri mevcut stok kalemleri ile birleştir" #: src/forms/StockForms.tsx:912 msgid "Stock transaction notes" -msgstr "" +msgstr "Stok işlem notları" #: src/forms/StockForms.tsx:1043 #: src/pages/Index/Scan.tsx:180 @@ -5342,7 +5349,7 @@ msgstr "Stok Eklendi" #: src/forms/StockForms.tsx:1360 msgid "Increase the quantity of the selected stock items by a given amount." -msgstr "" +msgstr "Seçilen stok kalemlerinin miktarını belirtilen miktarda artır." #: src/forms/StockForms.tsx:1371 #: src/hooks/UseStockAdjustActions.tsx:122 @@ -5355,7 +5362,7 @@ msgstr "Stok Kaldırıldı" #: src/forms/StockForms.tsx:1375 msgid "Decrease the quantity of the selected stock items by a given amount." -msgstr "" +msgstr "Seçilen stok kalemlerinin miktarını belirtilen miktarda azalt." #: src/forms/StockForms.tsx:1386 #: src/hooks/UseStockAdjustActions.tsx:132 @@ -5368,20 +5375,20 @@ msgstr "Stok Transfer Edildi" #: src/forms/StockForms.tsx:1390 msgid "Transfer selected items to the specified location." -msgstr "" +msgstr "Seçilen kalemleri belirtilen konuma aktar." #: src/forms/StockForms.tsx:1401 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" -msgstr "" +msgstr "Stock İade Et" #: src/forms/StockForms.tsx:1402 msgid "Stock returned" -msgstr "" +msgstr "Stok iade edildi" #: src/forms/StockForms.tsx:1405 msgid "Return selected items into stock, to the specified location." -msgstr "" +msgstr "Seçilen kalemleri belirtilen konumdaki stoka iade et." #: src/forms/StockForms.tsx:1416 #: src/hooks/UseStockAdjustActions.tsx:102 @@ -5394,7 +5401,7 @@ msgstr "Stok Sayıldı" #: src/forms/StockForms.tsx:1420 msgid "Count the selected stock items, and adjust the quantity accordingly." -msgstr "" +msgstr "Seçilen stok kalemlerini say ve miktarı ona göre ayarla." #: src/forms/StockForms.tsx:1431 msgid "Change Stock Status" @@ -5406,16 +5413,16 @@ msgstr "Stok Durumu Değişti" #: src/forms/StockForms.tsx:1435 msgid "Change the status of the selected stock items." -msgstr "" +msgstr "Seçilen stok kalemlerinin durumunu değiştir." #: src/forms/StockForms.tsx:1458 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" -msgstr "" +msgstr "Parti Kodunu Değiştir" #: src/forms/StockForms.tsx:1461 msgid "Change batch code for the selected stock items" -msgstr "" +msgstr "Seçilen stok kalemlerinin parti kodunu değiştir" #: src/forms/StockForms.tsx:1478 #: src/hooks/UseStockAdjustActions.tsx:142 @@ -5428,19 +5435,19 @@ msgstr "Stok Birleştirildi" #: src/forms/StockForms.tsx:1481 msgid "Merge Stock Items" -msgstr "" +msgstr "Stok Kalemlerini Birleştir" #: src/forms/StockForms.tsx:1483 msgid "Merge operation cannot be reversed" -msgstr "" +msgstr "Birleştirme işlemi geri alınamaz" #: src/forms/StockForms.tsx:1484 msgid "Tracking information may be lost when merging items" -msgstr "" +msgstr "Kalemleri birleştirirken takip bilgileri kaybolabilir" #: src/forms/StockForms.tsx:1485 msgid "Supplier information may be lost when merging items" -msgstr "" +msgstr "Kalemleri birleştirirken tedarikçi bilgileri kaybolabilir" #: src/forms/StockForms.tsx:1503 msgid "Assign Stock to Customer" @@ -5460,7 +5467,7 @@ msgstr "Stok Silindi" #: src/forms/StockForms.tsx:1518 msgid "This operation will permanently delete the selected stock items." -msgstr "" +msgstr "Bu işlem seçilen stok kalemlerini kalıcı olarak silecektir." #: src/forms/StockForms.tsx:1527 msgid "Parent stock location" @@ -5476,11 +5483,11 @@ msgstr "Eşleşen ürün bulunamadı" #: src/forms/StockForms.tsx:1671 msgid "Multiple matching items" -msgstr "" +msgstr "Birden fazla eşleşen öge" #: src/forms/StockForms.tsx:1680 msgid "Invalid response from server" -msgstr "" +msgstr "Sunucudan geçersiz yanıt" #: src/forms/selectionListFields.tsx:95 #~ msgid "Entries" @@ -5539,111 +5546,111 @@ msgstr "Dahili sunucu hatası" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Çıkış Yapıldı" #: src/functions/auth.tsx:125 msgid "There was a conflicting session for this browser, which has been logged out." -msgstr "" +msgstr "Bu tarayıcı için çakışan bir oturum vardı; bu oturumdan çıkış yapıldı." #: src/functions/auth.tsx:142 #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "Sunucudan yanıt yok." - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "Sunucudan yanıt yok." + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" -msgstr "" +msgstr "MFA girişi başarılı" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" -msgstr "" +msgstr "MFA bilgileri tarayıcıda otomatik olarak girildi" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Başarıyla çıkış yapıldı" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" -msgstr "" +msgstr "Dil değişti" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" -msgstr "" +msgstr "Aktif diliniz, profilinizde ayarlanan dile değiştirildi" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "Tema değişti" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" -msgstr "" +msgstr "Etkin temanız, profilinizde ayarlanan temaya değiştirildi" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Bir sıfırlama bağlantısı için gelen kutunuzu veya spam kutunuzu yoklayın. Bu yalnızca bir hesabınız varsa çalışacaktır." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Sıfırlama başarısız" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "Zaten giriş yapıldı" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." -msgstr "" +msgstr "Sunucuda bu tarayıcıya ait çakışan bir oturum bulunmaktadır. Lütfen önce o oturumdan çıkış yapın." -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Giriş Yapıldı" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Başarıyla giriş yapıldı" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" -msgstr "" +msgstr "MFA kurulamadı" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" -msgstr "" +msgstr "MFA kurulumu başarılı" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." -msgstr "" +msgstr "TOTP yoluyla MFA başarıyla kuruldu; yeniden oturum açmanız gerekecektir." -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Şifre belirlendi" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Şifreniz başarıyla değiştirildi. Artık yeni şifrenizle giriş yapabilirsiniz" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" -msgstr "" +msgstr "Şifre değiştirilemedi" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" -msgstr "" +msgstr "Girilen iki parola aynı değil" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" -msgstr "" +msgstr "Şifre Değişti" #: src/functions/forms.tsx:50 #~ msgid "Form method not provided" @@ -5691,7 +5698,7 @@ msgstr "Ürünler Güncellendi" #: src/hooks/UseForm.tsx:149 msgid "Update multiple items" -msgstr "" +msgstr "Birden çok ögeyi güncelle" #: src/hooks/UseForm.tsx:179 msgid "Item Deleted" @@ -5707,64 +5714,64 @@ msgstr "Bu ögeyi silmek istediğinize emin misiniz?" #: src/hooks/UseRemotePlugin.tsx:102 msgid "Failed to load module: {moduleUrl}" -msgstr "" +msgstr "Modül yüklenemedi: {moduleUrl}" #. placeholder {0}: typeof func #: src/hooks/UseRemotePlugin.tsx:129 msgid "Export {exportName} in {moduleUrl} is not a function (found type {0})." -msgstr "" +msgstr "{moduleUrl} modülündeki '{exportName}' dışa aktarımı bir fonksiyon değil (tespit edilen tür: {0})." #: src/hooks/UseRemotePlugin.tsx:131 msgid "Plugin entrypoint {exportName} does not exist in {moduleUrl}." -msgstr "" +msgstr "{moduleUrl} içinde {exportName} adlı eklenti giriş noktası bulunmuyor." #: src/hooks/UseStockAdjustActions.tsx:104 msgid "Count selected stock items" -msgstr "" +msgstr "Seçili stok kalemlerini say" #: src/hooks/UseStockAdjustActions.tsx:114 msgid "Add to selected stock items" -msgstr "" +msgstr "Seçili stok kalemlerine ekle" #: src/hooks/UseStockAdjustActions.tsx:124 msgid "Remove from selected stock items" -msgstr "" +msgstr "Seçili stok kalemlerinden kaldır" #: src/hooks/UseStockAdjustActions.tsx:134 msgid "Transfer selected stock items" -msgstr "" +msgstr "Seçili stok kalemlerini aktar" #: src/hooks/UseStockAdjustActions.tsx:144 msgid "Merge selected stock items" -msgstr "" +msgstr "Seçili stok kalemlerini birleştir" #: src/hooks/UseStockAdjustActions.tsx:154 msgid "Change status of selected stock items" -msgstr "" +msgstr "Seçili stok kalemlerinin durumunu değiştir" #: src/hooks/UseStockAdjustActions.tsx:164 msgid "Change batch code of selected stock items" -msgstr "" +msgstr "Seçili stok kalemlerinin parti kodunu değiştir" #: src/hooks/UseStockAdjustActions.tsx:172 msgid "Assign Stock" -msgstr "" +msgstr "Stok Ata" #: src/hooks/UseStockAdjustActions.tsx:174 msgid "Assign selected stock items to a customer" -msgstr "" +msgstr "Seçili stok kalemlerini bir müşteriye ata" #: src/hooks/UseStockAdjustActions.tsx:184 msgid "Return selected items into stock" -msgstr "" +msgstr "Seçili kalemleri stoka iade et" #: src/hooks/UseStockAdjustActions.tsx:192 msgid "Delete Stock" -msgstr "" +msgstr "Stoku Sil" #: src/hooks/UseStockAdjustActions.tsx:194 msgid "Delete selected stock items" -msgstr "" +msgstr "Seçili stok kalemlerini sil" #: src/hooks/UseStockAdjustActions.tsx:219 #: src/pages/part/PartDetail.tsx:1095 @@ -5774,39 +5781,39 @@ msgstr "Stok Eylemleri" #: src/pages/Auth/ChangePassword.tsx:32 #: src/pages/Auth/Reset.tsx:14 msgid "Reset Password" -msgstr "" +msgstr "Şifreyi Sıfırla" #: src/pages/Auth/ChangePassword.tsx:46 msgid "Current Password" -msgstr "" +msgstr "Mevcut Şifre" #: src/pages/Auth/ChangePassword.tsx:47 msgid "Enter your current password" -msgstr "" +msgstr "Mevcut şifrenizi girin" #: src/pages/Auth/ChangePassword.tsx:53 msgid "New Password" -msgstr "" +msgstr "Yeni Şifre" #: src/pages/Auth/ChangePassword.tsx:54 msgid "Enter your new password" -msgstr "" +msgstr "Yeni şifrenizi girin" #: src/pages/Auth/ChangePassword.tsx:60 msgid "Confirm New Password" -msgstr "" +msgstr "Yeni Şifreyi Onayla" #: src/pages/Auth/ChangePassword.tsx:61 msgid "Confirm your new password" -msgstr "" +msgstr "Yeni şifrenizi onaylayın" #: src/pages/Auth/ChangePassword.tsx:80 msgid "Confirm" -msgstr "" +msgstr "Onayla" #: src/pages/Auth/Layout.tsx:59 msgid "Log off" -msgstr "" +msgstr "Oturumu kapat" #: src/pages/Auth/LoggedIn.tsx:19 msgid "Checking if you are already logged in" @@ -5830,7 +5837,7 @@ msgstr "Giriş" #: src/pages/Auth/Login.tsx:113 msgid "Logging you in" -msgstr "" +msgstr "Oturumunuz açılıyor" #: src/pages/Auth/Login.tsx:120 msgid "Don't have an account?" @@ -5852,36 +5859,36 @@ msgstr "Bir hesabınız yok mu?" #: src/pages/Auth/MFA.tsx:29 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:86 msgid "Multi-Factor Authentication" -msgstr "" +msgstr "Çok Aşamalı Kimlik Doğrulama" #: src/pages/Auth/MFA.tsx:33 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:219 msgid "TOTP Code" -msgstr "" +msgstr "TOTP Kodu" #: src/pages/Auth/MFA.tsx:35 msgid "Enter one of your codes: {mfa_types}" -msgstr "" +msgstr "Kodlarınızdan birini girin: {mfa_types}" #: src/pages/Auth/MFA.tsx:42 msgid "Remember this device" -msgstr "" +msgstr "Bu cihazı hatırla" #: src/pages/Auth/MFA.tsx:44 msgid "If enabled, you will not be asked for MFA on this device for 30 days." -msgstr "" +msgstr "Etkinleştirilirse, bu cihazda 30 gün boyunca MFA istenmeyecektir." #: src/pages/Auth/MFA.tsx:53 msgid "Log in" -msgstr "" +msgstr "Oturum aç" #: src/pages/Auth/MFASetup.tsx:23 msgid "MFA Setup Required" -msgstr "" +msgstr "MFA Kurulumu Gerekli" #: src/pages/Auth/MFASetup.tsx:34 msgid "Add TOTP" -msgstr "" +msgstr "TOTP Ekle" #: src/pages/Auth/Register.tsx:23 msgid "Go back to login" @@ -5895,11 +5902,11 @@ msgstr "Giriş yapma ekranına geri dön" #: src/pages/Auth/ResetPassword.tsx:22 #: src/pages/Auth/VerifyEmail.tsx:19 msgid "Key invalid" -msgstr "" +msgstr "Anahtar geçersiz" #: src/pages/Auth/ResetPassword.tsx:23 msgid "You need to provide a valid key to set a new password. Check your inbox for a reset link." -msgstr "" +msgstr "Yeni bir şifre belirlemek için geçerli bir anahtar sağlamanız gerekir. Bir sıfırlama bağlantısı için gelen kutunuzu kontrol edin." #: src/pages/Auth/ResetPassword.tsx:30 #~ msgid "Token invalid" @@ -5915,11 +5922,11 @@ msgstr "Yeni şifre belirle" #: src/pages/Auth/ResetPassword.tsx:35 msgid "The desired new password" -msgstr "" +msgstr "İstenen yeni şifre" #: src/pages/Auth/ResetPassword.tsx:44 msgid "Send Password" -msgstr "" +msgstr "Şifre Gönder" #: src/pages/Auth/Set-Password.tsx:49 #~ msgid "No token provided" @@ -5931,15 +5938,15 @@ msgstr "" #: src/pages/Auth/VerifyEmail.tsx:20 msgid "You need to provide a valid key." -msgstr "" +msgstr "Geçerli bir anahtar girmeniz gerekmektedir." #: src/pages/Auth/VerifyEmail.tsx:28 msgid "Verify Email" -msgstr "" +msgstr "E-Postayı Doğrula" #: src/pages/Auth/VerifyEmail.tsx:30 msgid "Verify" -msgstr "" +msgstr "Doğrula" #. placeholder {0}: error.statusText #: src/pages/ErrorPage.tsx:16 @@ -6104,19 +6111,19 @@ msgstr "Beklenmeyen bir hata oluştu" #: src/pages/Index/Scan.tsx:63 msgid "Item already scanned" -msgstr "" +msgstr "Ürün zaten taranmış" #: src/pages/Index/Scan.tsx:80 msgid "API Error" -msgstr "" +msgstr "API Hatası" #: src/pages/Index/Scan.tsx:81 msgid "Failed to fetch instance data" -msgstr "" +msgstr "Örnek verileri alınamadı" #: src/pages/Index/Scan.tsx:128 msgid "Scan Error" -msgstr "" +msgstr "Tarama Hatası" #: src/pages/Index/Scan.tsx:160 msgid "Selected elements are not known" @@ -6128,7 +6135,7 @@ msgstr "Birden çok nesne türü seçildi" #: src/pages/Index/Scan.tsx:175 msgid "Actions ... " -msgstr "" +msgstr "İşlemler ... " #: src/pages/Index/Scan.tsx:175 #~ msgid "Actions ..." @@ -6137,11 +6144,11 @@ msgstr "" #: src/pages/Index/Scan.tsx:192 #: src/pages/Index/Scan.tsx:196 msgid "Barcode Scanning" -msgstr "" +msgstr "Barkod Tarama" #: src/pages/Index/Scan.tsx:205 msgid "Barcode Input" -msgstr "" +msgstr "Barkod Girişi" #: src/pages/Index/Scan.tsx:212 msgid "Action" @@ -6149,11 +6156,11 @@ msgstr "Eylem" #: src/pages/Index/Scan.tsx:215 msgid "No Items Selected" -msgstr "" +msgstr "Hiç Öge Seçilmedi" #: src/pages/Index/Scan.tsx:216 msgid "Scan and select items to perform actions" -msgstr "" +msgstr "İşlem gerçekleştirmek için ögeleri tarayın ve seçin" #: src/pages/Index/Scan.tsx:217 #~ msgid "Manual input" @@ -6170,7 +6177,7 @@ msgstr "{0} öge seçildi" #: src/pages/Index/Scan.tsx:233 msgid "Scanned Items" -msgstr "" +msgstr "Taranan Ögeler" #: src/pages/Index/Scan.tsx:276 #~ msgid "Actions for {0}" @@ -6272,7 +6279,7 @@ msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:33 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:113 msgid "Edit Account Information" -msgstr "" +msgstr "Hesap Bilgilerini Düzenle" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:34 #~ msgid "User details updated" @@ -6280,7 +6287,7 @@ msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:37 msgid "Account details updated" -msgstr "" +msgstr "Hesap bilgileri güncellendi" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:46 #~ msgid "User Actions" @@ -6293,7 +6300,7 @@ msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:136 msgid "Edit Profile Information" -msgstr "" +msgstr "Profil Bilgilerini Düzenle" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55 #~ msgid "Last name" @@ -6309,7 +6316,7 @@ msgstr "" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:59 msgid "Profile details updated" -msgstr "" +msgstr "Profil bilgileri güncellendi" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:61 #~ msgid "Last name: {0}" @@ -6346,25 +6353,25 @@ msgstr "Adı Görüntüle" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:86 #: src/pages/core/UserDetail.tsx:127 msgid "Position" -msgstr "" +msgstr "Pozisyon" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:90 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:967 msgid "Type" -msgstr "" +msgstr "Tür" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:91 #: src/pages/core/UserDetail.tsx:143 msgid "Organisation" -msgstr "" +msgstr "Kuruluş" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:92 msgid "Primary Group" -msgstr "" +msgstr "Birincil Grup" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:104 msgid "Account Details" -msgstr "" +msgstr "Hesap Bilgileri" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:107 msgid "Account Actions" @@ -6377,11 +6384,11 @@ msgstr "Hesabı Düzenle" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:117 #: src/tables/settings/UserTable.tsx:323 msgid "Change Password" -msgstr "" +msgstr "Şifreyi Değiştir" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:119 msgid "Change User Password" -msgstr "" +msgstr "Kullanıcı Şifresini Değiştir" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:131 msgid "Profile Details" @@ -6389,7 +6396,7 @@ msgstr "Profil Ayrıntıları" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:134 msgid "Edit Profile" -msgstr "" +msgstr "Profili Düzenle" #. placeholder {0}: item.label #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:153 @@ -6616,15 +6623,15 @@ msgstr "" #: src/pages/Index/Settings/AccountSettings/QrRegistrationForm.tsx:27 msgid "Secret" -msgstr "" +msgstr "Sır" #: src/pages/Index/Settings/AccountSettings/QrRegistrationForm.tsx:40 msgid "One-Time Password" -msgstr "" +msgstr "Tek Kullanımlık Şifre" #: src/pages/Index/Settings/AccountSettings/QrRegistrationForm.tsx:41 msgid "Enter the TOTP code to ensure it registered correctly" -msgstr "" +msgstr "Doğru şekilde kaydedildiğinden emin olmak için TOTP kodunu girin" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 #~ msgid "Single Sign On Accounts" @@ -6632,7 +6639,7 @@ msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 msgid "Email Addresses" -msgstr "" +msgstr "E-posta Adresleri" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:68 msgid "Single Sign On" @@ -8347,11 +8354,11 @@ msgstr "Seri numarasına göre ara" msgid "Part Actions" msgstr "Parça Eylemleri" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/uk/messages.po b/src/frontend/src/locales/uk/messages.po index 132bba535f..c04d82a4a1 100644 --- a/src/frontend/src/locales/uk/messages.po +++ b/src/frontend/src/locales/uk/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: uk\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" @@ -147,7 +147,7 @@ msgstr "Ні" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Частина" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Частини" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Деталі виробника" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Категорія" @@ -261,7 +261,7 @@ msgstr "Категорії" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "У наявності" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Розташування складу" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "Код" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Не вдалося переглядати, натисніть кнопку \"Перезавантаження попереднього перегляду\"." @@ -1728,11 +1729,11 @@ msgstr "Зберегти поточний шаблон і перезаванта #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "Виберіть екземпляр для перегляду" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Помилка відображення шаблону" @@ -1829,20 +1830,20 @@ msgstr "Вхід успішно виконано" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Не вдалося увійти" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Перевірте введені дані та повторіть спробу." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Пошту відправлено" @@ -2128,6 +2129,7 @@ msgstr "Без категорії" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Пошук..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Завантаження" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Результатів не знайдено" @@ -2247,7 +2250,7 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "" @@ -2925,7 +2928,7 @@ msgstr "Вихід" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "Внутрішня помилка сервера" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Перевірте вашу поштову скриньку для скидання посилання. Це працює тільки в тому випадку, якщо у вас є обліковий запис. Перевірити також спам." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "Вхід вже здійснено" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Пароль успішно встановлено. Тепер ви можете увійти в систему, використовуючи новий пароль" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/vi/messages.po b/src/frontend/src/locales/vi/messages.po index cef3ed3f64..4799c182d9 100644 --- a/src/frontend/src/locales/vi/messages.po +++ b/src/frontend/src/locales/vi/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: vi\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -147,7 +147,7 @@ msgstr "Không" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "Phụ kiện" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "Phụ tùng" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "Nhà sản xuất phụ kiện" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "Danh mục phụ kiện" @@ -261,7 +261,7 @@ msgstr "Danh mục phụ kiện" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "Hàng trong kho" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "Vị trí kho hàng" @@ -644,14 +644,14 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "" @@ -1391,11 +1392,11 @@ msgstr "" msgid "This widget requires superuser permissions" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "" @@ -1655,7 +1656,7 @@ msgstr "Mã" msgid "Error rendering preview" msgstr "" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "Xem trước không khả dụng, nhấp \"Tải lại xem trước\"." @@ -1728,11 +1729,11 @@ msgstr "Lưu mẫu hiện tại và tải lại xem trước" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "Lỗi hiển thị mẫu" @@ -1829,20 +1830,20 @@ msgstr "Đăng nhập thành công" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "Đăng nhập thất bại" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "Kiểm tra đầu vào của bạn và thử lại." #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "Thư đã được gửi đi thành công" @@ -2128,6 +2129,7 @@ msgstr "Chưa có danh mục" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "Tìm kiếm..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "Đang tải" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "Không có kết quả nào được tìm thấy" @@ -2247,7 +2250,7 @@ msgstr "Đang xử lý dữ liệu" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "Có lỗi xảy ra" @@ -2925,7 +2928,7 @@ msgstr "Đăng xuất" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "Điều hướng" msgid "About" msgstr "Giới thiệu" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "" @@ -5539,7 +5546,7 @@ msgstr "" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "Đã đăng xuất" @@ -5551,97 +5558,97 @@ msgstr "" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "Đăng xuất thành công" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "Kiểm tra hộp thư để lấy liên kết đặt lại. Việc này chỉ có tác dụng khi bạn có tài khoản. Cần kiểm tra thư mục Spam/Junk." -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "Thiết lập lại thất bại" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "Đã đăng nhập" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "Đăng nhập thành công." -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "Đã đặt mật khẩu" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "Mật khẩu đã được đặt mới thành công. Bạn có thể đăng nhập bằng mật khẩu mới" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "" @@ -8347,11 +8354,11 @@ msgstr "" msgid "Part Actions" msgstr "Thao tác" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/zh_Hans/messages.po b/src/frontend/src/locales/zh_Hans/messages.po index 2b73bb7455..50ff343b1d 100644 --- a/src/frontend/src/locales/zh_Hans/messages.po +++ b/src/frontend/src/locales/zh_Hans/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: zh\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -147,7 +147,7 @@ msgstr "否" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "零件" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "零件" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "制造商零件" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "零件类别" @@ -261,7 +261,7 @@ msgstr "零件类别" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "库存项" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "库存地点" @@ -644,14 +644,14 @@ msgstr "入选" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "请求已超时" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "处理失败" @@ -1391,11 +1392,11 @@ msgstr "需要超级用户" msgid "This widget requires superuser permissions" msgstr "此部件需要超级用户权限" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "沒有消息" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "没有未读新闻项目" @@ -1655,7 +1656,7 @@ msgstr "代码" msgid "Error rendering preview" msgstr "预览渲染错误" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "预览不可用,点击\"重新加载预览\"。" @@ -1728,11 +1729,11 @@ msgstr "保存当前模板并重新加载预览" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "选择预览实例" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "渲染模板时出错" @@ -1829,20 +1830,20 @@ msgstr "登录成功" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "登录失败" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "请检查您的输入并重试。" #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "邮件发送成功" @@ -2128,6 +2129,7 @@ msgstr "未分类" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "搜索..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "正在加载" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "未找到结果" @@ -2247,7 +2250,7 @@ msgstr "处理数据中" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "发生错误" @@ -2925,7 +2928,7 @@ msgstr "登出" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "导航栏" msgid "About" msgstr "关于" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "导航树加载错误。" @@ -5539,7 +5546,7 @@ msgstr "服务内部错误" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "已登出" @@ -5551,97 +5558,97 @@ msgstr "此浏览器存在冲突会话,已被登出。" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "服务器无响应。" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "服务器无响应。" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "MFA登录验证成功" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "浏览器自动提供了MFA验证信息" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "已成功登出" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "语言已更改" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "您的活动语言已被更改为您个人资料中设置的语言" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "主题已更改" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "您的活动主题已被更改为您个人资料中设置的主题" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "查看收件箱中的重置链接。这只有在您有账户的情况下才会起作用。也请检查垃圾邮件。" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "重置失败" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "您已经登陆了" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "此浏览器的服务器上存在冲突会话。请先登出该会话。" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "已登录" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "已成功登入" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "设置 MFA 失败" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "MFA 设置成功" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "基于 TOTP 的多因素认证(MFA)设置成功;您需要重新登录。" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "密码已设置" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "密码设置成功。您现在可以使用新密码登录" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "无法更改密码" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "两个密码不匹配" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "密码已更改" @@ -8347,11 +8354,11 @@ msgstr "按序列号搜索" msgid "Part Actions" msgstr "零件选项" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" diff --git a/src/frontend/src/locales/zh_Hant/messages.po b/src/frontend/src/locales/zh_Hant/messages.po index 7995d711e3..1eaca693fa 100644 --- a/src/frontend/src/locales/zh_Hant/messages.po +++ b/src/frontend/src/locales/zh_Hant/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: zh\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-17 22:14\n" +"PO-Revision-Date: 2026-06-20 13:53\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -147,7 +147,7 @@ msgstr "否" #: src/forms/StockForms.tsx:1248 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 -#: src/pages/part/PartDetail.tsx:1165 +#: src/pages/part/PartDetail.tsx:1166 #: src/pages/part/bom/BomCompare.tsx:203 #: src/tables/ColumnRenderers.tsx:93 #: src/tables/build/BuildOrderParametricTable.tsx:29 @@ -166,7 +166,7 @@ msgstr "零件" #: src/pages/part/CategoryDetail.tsx:138 #: src/pages/part/CategoryDetail.tsx:285 #: src/pages/part/CategoryDetail.tsx:345 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/pages/part/PartDetail.tsx:893 msgid "Parts" msgstr "零件" @@ -242,7 +242,7 @@ msgid "Manufacturer Parts" msgstr "製造商零件" #: lib/enums/ModelInformation.tsx:80 -#: src/pages/part/CategoryDetail.tsx:387 +#: src/pages/part/CategoryDetail.tsx:388 #: src/tables/Filter.tsx:496 msgid "Part Category" msgstr "零件類別" @@ -261,7 +261,7 @@ msgstr "零件類別" #: src/forms/BuildForms.tsx:848 #: src/forms/SalesOrderForms.tsx:438 #: src/forms/TransferOrderForms.tsx:236 -#: src/pages/stock/StockDetail.tsx:1075 +#: src/pages/stock/StockDetail.tsx:1076 #: src/tables/ColumnRenderers.tsx:132 #: src/tables/part/PartTestResultTable.tsx:256 #: src/tables/stock/InstalledItemsTable.tsx:66 @@ -283,7 +283,7 @@ msgstr "庫存項" #: lib/enums/ModelInformation.tsx:99 #: lib/enums/Roles.tsx:51 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 msgid "Stock Location" msgstr "庫存地點" @@ -644,14 +644,14 @@ msgstr "選取項目 (多筆)" #: src/components/importer/ImporterColumnSelector.tsx:330 #: src/components/importer/ImporterDrawer.tsx:91 #: src/components/modals/LicenseModal.tsx:85 -#: src/components/nav/NavigationTree.tsx:211 +#: src/components/nav/NavigationTree.tsx:398 #: src/components/nav/NotificationDrawer.tsx:235 #: src/components/nav/SearchDrawer.tsx:588 #: src/components/settings/SettingList.tsx:145 #: src/components/wizards/ImportPartWizard.tsx:574 #: src/components/wizards/ImportPartWizard.tsx:719 #: src/forms/BomForms.tsx:83 -#: src/functions/auth.tsx:691 +#: src/functions/auth.tsx:693 #: src/pages/ErrorPage.tsx:11 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408 @@ -723,6 +723,7 @@ msgstr "請求已超時" #: lib/hooks/MonitorDataOutput.tsx:57 #: lib/hooks/MonitorDataOutput.tsx:116 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76 msgid "Process failed" msgstr "處理失敗" @@ -1391,11 +1392,11 @@ msgstr "需要超級使用者" msgid "This widget requires superuser permissions" msgstr "此小工具需要超級使用者權限" -#: src/components/dashboard/widgets/NewsWidget.tsx:133 +#: src/components/dashboard/widgets/NewsWidget.tsx:135 msgid "No News" msgstr "沒有新聞" -#: src/components/dashboard/widgets/NewsWidget.tsx:134 +#: src/components/dashboard/widgets/NewsWidget.tsx:136 msgid "There are no unread news items" msgstr "沒有未讀的新聞項目" @@ -1655,7 +1656,7 @@ msgstr "代碼" msgid "Error rendering preview" msgstr "預覽彩現時發生錯誤" -#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120 +#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124 msgid "Preview not available, click \"Reload Preview\"." msgstr "預覽不可用,點擊\"重新加載預覽\"。" @@ -1728,11 +1729,11 @@ msgstr "保存當前模板並重新加載預覽" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380 msgid "Select instance to preview" msgstr "選擇預覽實例" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424 msgid "Error rendering template" msgstr "渲染模板時出錯" @@ -1829,20 +1830,20 @@ msgstr "登錄成功" #: src/components/forms/AuthenticationForm.tsx:81 #: src/components/forms/AuthenticationForm.tsx:89 #: src/functions/auth.tsx:133 -#: src/functions/auth.tsx:142 +#: src/functions/auth.tsx:144 msgid "Login failed" msgstr "登錄失敗" #: src/components/forms/AuthenticationForm.tsx:82 #: src/components/forms/AuthenticationForm.tsx:90 #: src/components/forms/AuthenticationForm.tsx:106 -#: src/functions/auth.tsx:134 -#: src/functions/auth.tsx:354 +#: src/functions/auth.tsx:136 +#: src/functions/auth.tsx:356 msgid "Check your input and try again." msgstr "請檢查您的輸入並重試。" #: src/components/forms/AuthenticationForm.tsx:100 -#: src/functions/auth.tsx:345 +#: src/functions/auth.tsx:347 msgid "Mail delivery successful" msgstr "郵件發送成功" @@ -2128,6 +2129,7 @@ msgstr "未分類" #: src/components/forms/fields/IconField.tsx:211 #: src/components/nav/Layout.tsx:143 +#: src/components/nav/NavigationTree.tsx:378 #: src/tables/part/PartThumbTable.tsx:209 msgid "Search..." msgstr "搜索..." @@ -2153,6 +2155,7 @@ msgid "Loading" msgstr "正在加載" #: src/components/forms/fields/RelatedModelField.tsx:540 +#: src/components/nav/NavigationTree.tsx:403 msgid "No results found" msgstr "找不到結果" @@ -2247,7 +2250,7 @@ msgstr "處理數據中" #: src/components/importer/ImporterColumnSelector.tsx:299 #: src/components/items/ErrorItem.tsx:12 #: src/functions/api.tsx:60 -#: src/functions/auth.tsx:401 +#: src/functions/auth.tsx:403 msgid "An error occurred" msgstr "發生錯誤" @@ -2925,7 +2928,7 @@ msgstr "登出" #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 -#: src/pages/stock/LocationDetail.tsx:522 +#: src/pages/stock/LocationDetail.tsx:523 #: src/pages/stock/StockDetail.tsx:689 #: src/pages/stock/TransferOrderDetail.tsx:536 #: src/tables/stock/StockItemTable.tsx:81 @@ -2971,7 +2974,11 @@ msgstr "導航欄" msgid "About" msgstr "關於" -#: src/components/nav/NavigationTree.tsx:212 +#: src/components/nav/NavigationTree.tsx:388 +msgid "Clear search" +msgstr "" + +#: src/components/nav/NavigationTree.tsx:399 msgid "Error loading navigation tree." msgstr "載入導覽樹狀結構時發生錯誤。" @@ -5539,7 +5546,7 @@ msgstr "內部伺服器錯誤" #~ msgstr "You have been logged out" #: src/functions/auth.tsx:124 -#: src/functions/auth.tsx:220 +#: src/functions/auth.tsx:222 msgid "Logged Out" msgstr "已登出" @@ -5551,97 +5558,97 @@ msgstr "此瀏覽器存在衝突的工作階段,已登出。" #~ msgid "Found an existing login - using it to log you in." #~ msgstr "Found an existing login - using it to log you in." -#: src/functions/auth.tsx:143 -msgid "No response from server." -msgstr "伺服器沒有回應。" - #: src/functions/auth.tsx:143 #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:186 +#: src/functions/auth.tsx:145 +msgid "No response from server." +msgstr "伺服器沒有回應。" + +#: src/functions/auth.tsx:188 msgid "MFA Login successful" msgstr "MFA 登入成功" -#: src/functions/auth.tsx:187 +#: src/functions/auth.tsx:189 msgid "MFA details were automatically provided in the browser" msgstr "MFA 詳情已在瀏覽器中自動提供" -#: src/functions/auth.tsx:221 +#: src/functions/auth.tsx:223 msgid "Successfully logged out" msgstr "已成功登出" -#: src/functions/auth.tsx:288 +#: src/functions/auth.tsx:290 msgid "Language changed" msgstr "語言已變更" -#: src/functions/auth.tsx:289 +#: src/functions/auth.tsx:291 msgid "Your active language has been changed to the one set in your profile" msgstr "您的使用語言已變更為您個人資料中設定的語言" -#: src/functions/auth.tsx:310 +#: src/functions/auth.tsx:312 msgid "Theme changed" msgstr "佈景主題已變更" -#: src/functions/auth.tsx:311 +#: src/functions/auth.tsx:313 msgid "Your active theme has been changed to the one set in your profile" msgstr "您的使用佈景主題已變更為您個人資料中設定的佈景主題" -#: src/functions/auth.tsx:346 +#: src/functions/auth.tsx:348 msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too." msgstr "查看收件箱中的重置鏈接。這隻有在您有賬户的情況下才會起作用。也請檢查垃圾郵件。" -#: src/functions/auth.tsx:353 -#: src/functions/auth.tsx:617 +#: src/functions/auth.tsx:355 +#: src/functions/auth.tsx:619 msgid "Reset failed" msgstr "重置失敗" -#: src/functions/auth.tsx:380 +#: src/functions/auth.tsx:382 msgid "Already logged in" msgstr "已經登入" -#: src/functions/auth.tsx:381 +#: src/functions/auth.tsx:383 msgid "There is a conflicting session on the server for this browser. Please logout of that first." msgstr "此瀏覽器在伺服器上存在衝突的工作階段。請先登出該工作階段。" -#: src/functions/auth.tsx:437 +#: src/functions/auth.tsx:439 msgid "Logged In" msgstr "已登錄" -#: src/functions/auth.tsx:438 +#: src/functions/auth.tsx:440 msgid "Successfully logged in" msgstr "已成功登入" -#: src/functions/auth.tsx:572 +#: src/functions/auth.tsx:574 msgid "Failed to set up MFA" msgstr "設定 MFA 失敗" -#: src/functions/auth.tsx:591 +#: src/functions/auth.tsx:593 msgid "MFA Setup successful" msgstr "MFA 設定成功" -#: src/functions/auth.tsx:592 +#: src/functions/auth.tsx:594 msgid "MFA via TOTP has been set up successfully; you will need to login again." msgstr "已成功設定透過 TOTP 進行的 MFA;您將需要重新登入。" -#: src/functions/auth.tsx:607 +#: src/functions/auth.tsx:609 msgid "Password set" msgstr "密碼已設置" -#: src/functions/auth.tsx:608 -#: src/functions/auth.tsx:717 +#: src/functions/auth.tsx:610 +#: src/functions/auth.tsx:719 msgid "The password was set successfully. You can now login with your new password" msgstr "密碼設置成功。您現在可以使用新密碼登錄" -#: src/functions/auth.tsx:682 +#: src/functions/auth.tsx:684 msgid "Password could not be changed" msgstr "密碼無法變更" -#: src/functions/auth.tsx:700 +#: src/functions/auth.tsx:702 msgid "The two password fields didn’t match" msgstr "兩個密碼欄位不相符" -#: src/functions/auth.tsx:716 +#: src/functions/auth.tsx:718 msgid "Password Changed" msgstr "密碼已變更" @@ -8347,11 +8354,11 @@ msgstr "依序號搜尋" msgid "Part Actions" msgstr "零件選項" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part locked" msgstr "" -#: src/pages/part/PartDetail.tsx:1182 +#: src/pages/part/PartDetail.tsx:1183 msgid "Part unlocked" msgstr "" From 184ec379757352eeb1783773c7a06cfebb0f5c1d Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 24 Jun 2026 12:49:19 +1000 Subject: [PATCH 20/40] [UI] Tweak today color (#12235) - Make "today" more obvious in calendar views --- src/frontend/src/styles/overrides.css | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/frontend/src/styles/overrides.css b/src/frontend/src/styles/overrides.css index 180cf278e4..ccb922e03c 100644 --- a/src/frontend/src/styles/overrides.css +++ b/src/frontend/src/styles/overrides.css @@ -11,6 +11,14 @@ background-color: var(--mantine-color-dark-4); } +/* Today highlight */ +[data-mantine-color-scheme='light'] .fc-day-today { + background-color: var(--mantine-color-blue-1) !important; +} +[data-mantine-color-scheme='dark'] .fc-day-today { + background-color: var(--mantine-color-blue-9) !important; +} + /* mantine-datatable overrides */ .mantine-datatable-pointer-cursor, .mantine-datatable-context-menu-cursor { From 75b27bd10a17b2fc92573cb1ef79fd315ab637bd Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 24 Jun 2026 12:49:30 +1000 Subject: [PATCH 21/40] [UI] Tweak "order parts" wizard (#12236) - Order supplier parts by "primary" value - Attempt to auto-fill primary supplier part --- src/frontend/src/components/wizards/OrderPartsWizard.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/frontend/src/components/wizards/OrderPartsWizard.tsx b/src/frontend/src/components/wizards/OrderPartsWizard.tsx index e026cae9fb..9db57a0eb3 100644 --- a/src/frontend/src/components/wizards/OrderPartsWizard.tsx +++ b/src/frontend/src/components/wizards/OrderPartsWizard.tsx @@ -306,12 +306,17 @@ function SelectPartsStep({ placeholder: t`Select supplier part`, required: true, autoFill: true, + autoFillFilters: { + active: true, + primary: true + }, value: record.supplier_part?.pk, onValueChange: (value, instance) => { onSelectSupplierPart(record.part.pk, instance); }, filters: { part: record.part.pk, + ordering: '-primary', active: true, part_detail: true, supplier_detail: true From 74dc21b81c2a7c05c26d7f008e18f9b4bd0fa680 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 24 Jun 2026 12:49:43 +1000 Subject: [PATCH 22/40] [bug] Allocated query fix (#12234) * Fix BuildLineFilter.filter_allocated - Required for mysql backend * Spoecify output field --- src/backend/InvenTree/build/api.py | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/backend/InvenTree/build/api.py b/src/backend/InvenTree/build/api.py index 1e18727af1..a0edd054a1 100644 --- a/src/backend/InvenTree/build/api.py +++ b/src/backend/InvenTree/build/api.py @@ -3,7 +3,7 @@ from __future__ import annotations from django.contrib.auth.models import User -from django.db.models import F, OuterRef, Q, Subquery, Sum +from django.db.models import DecimalField, F, OuterRef, Q, Subquery, Sum from django.db.models.functions import Coalesce from django.urls import include, path from django.utils.translation import gettext_lazy as _ @@ -494,9 +494,25 @@ class BuildLineFilter(FilterSet): def filter_allocated(self, queryset, name, value): """Filter by whether each BuildLine is fully allocated.""" + allocated_subquery = ( + BuildItem.objects + .filter(build_line=OuterRef('pk')) + .values('build_line') + .annotate(total=Sum('quantity')) + .values('total') + ) + + queryset = queryset.alias( + allocated_quantity=Coalesce( + Subquery(allocated_subquery), 0, output_field=DecimalField() + ) + ) + if str2bool(value): - return queryset.filter(allocated__gte=F('quantity') - F('consumed')) - return queryset.filter(allocated__lt=F('quantity') - F('consumed')) + return queryset.filter( + allocated_quantity__gte=F('quantity') - F('consumed') + ) + return queryset.filter(allocated_quantity__lt=F('quantity') - F('consumed')) consumed = rest_filters.BooleanFilter(label=_('Consumed'), method='filter_consumed') @@ -528,7 +544,9 @@ class BuildLineFilter(FilterSet): ) queryset = queryset.alias( - allocated_quantity=Coalesce(Subquery(allocated_subquery), 0) + allocated_quantity=Coalesce( + Subquery(allocated_subquery), 0, output_field=DecimalField() + ) ) # A query filter construct to determine the total quantity available for this BuildLine, From 7e59c92422f4f89043ee3a48a0eb0885ff5d99b1 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 24 Jun 2026 13:53:58 +1000 Subject: [PATCH 23/40] 1.5.0 (#12239) * Add release entry for 1.4.0 * Add blank entry for 1.5.0 * Bump version to 1.5.0 dev --- CHANGELOG.md | 12 +++++++++++- src/backend/InvenTree/InvenTree/version.py | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 930b77ad24..01f796c624 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,17 @@ All major notable changes to this project will be documented in this file (start The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased - YYYY-MM-DD +## Unreleased - xxxx.xx.xx + +### Breaking Changes + +### Added + +### Changed + +### Removed + +## 1.4.0 - 2026-06-24 ### Breaking Changes diff --git a/src/backend/InvenTree/InvenTree/version.py b/src/backend/InvenTree/InvenTree/version.py index 68072e2fc6..dde7f3abe8 100644 --- a/src/backend/InvenTree/InvenTree/version.py +++ b/src/backend/InvenTree/InvenTree/version.py @@ -15,7 +15,7 @@ from datetime import timedelta as td from .api_version import INVENTREE_API_TEXT, INVENTREE_API_VERSION # InvenTree software version -INVENTREE_SW_VERSION = '1.4.0 dev' +INVENTREE_SW_VERSION = '1.5.0 dev' # Minimum supported Python version MIN_PYTHON_VERSION = (3, 11) From 09f11a27d9eebb1e2345dc457689ee2e3a453db5 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 24 Jun 2026 17:42:32 +1000 Subject: [PATCH 24/40] [report] Tweak datamatrix helper (#12240) * [report] Tweak datamatrix helper - Add support for "rectangular" display - Support different image output formats * Fix unit tests --- .../InvenTree/report/templatetags/barcode.py | 48 +++++++++++-------- src/backend/InvenTree/report/test_tags.py | 7 ++- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/src/backend/InvenTree/report/templatetags/barcode.py b/src/backend/InvenTree/report/templatetags/barcode.py index d6641a0abe..bc1abee247 100644 --- a/src/backend/InvenTree/report/templatetags/barcode.py +++ b/src/backend/InvenTree/report/templatetags/barcode.py @@ -1,6 +1,7 @@ """Template tags for rendering various barcodes.""" from django import template +from django.core.exceptions import ValidationError from django.utils.safestring import mark_safe import barcode as python_barcode @@ -70,7 +71,7 @@ def qrcode(data: str, **kwargs) -> str: data = str(data).strip() if not data: - raise ValueError("No data provided to 'qrcode' template tag") + raise ValidationError("qrcode: No data provided to 'qrcode' template tag") # Extract other arguments from kwargs fill_color = kwargs.pop('fill_color', 'black') @@ -115,7 +116,7 @@ def barcode(data: str, barcode_class='code128', **kwargs) -> str: data = str(data).strip() if not data: - raise ValueError("No data provided to 'barcode' template tag") + raise ValidationError("barcode: No data provided to 'barcode' template tag") constructor = python_barcode.get_barcode_class(barcode_class) @@ -134,17 +135,26 @@ def barcode(data: str, barcode_class='code128', **kwargs) -> str: @register.simple_tag() -def datamatrix(data: str, **kwargs) -> str: +def datamatrix( + data: str, + rectangular: bool = False, + fill_color: str = 'black', + back_color: str = 'white', + scale: float = 1.0, + border: int = 1, + fmt: str = 'PNG', + **kwargs, +) -> str: """Render a DataMatrix barcode. Arguments: data: Data to encode - - Keyword Arguments: - fill_color (str): Foreground color (default = 'black') - back_color (str): Background color (default = 'white') - scale (float): Matrix scaling factor (default = 1) - border (int): Border width (default = 1) + rectangular: Whether to generate a rectangular DataMatrix (default = False) + fill_color: Foreground color (default = 'black') + back_color: Background color (default = 'white') + scale: Scaling factor (default = 1) + border: Border width (default = 1) + fmt: Generated image format (default = 'PNG') Returns: image (str): base64 encoded image data @@ -154,14 +164,11 @@ def datamatrix(data: str, **kwargs) -> str: data = str(data).strip() if not data: - raise ValueError("No data provided to 'datamatrix' template tag") + raise ValidationError( + "datamatrix: No data provided to 'datamatrix' template tag" + ) - dm = DataMatrix(data) - - fill_color = kwargs.pop('fill_color', 'black') - back_color = kwargs.pop('back_color', 'white') - - border = kwargs.pop('border', 1) + dm = DataMatrix(data, rect=rectangular) try: border = int(border) @@ -180,8 +187,6 @@ def datamatrix(data: str, **kwargs) -> str: except Exception: bg = ImageColor.getcolor('white', 'RGB') - scale = kwargs.pop('scale', 1) - height = len(dm.matrix) + 2 * border width = len(dm.matrix[0]) + 2 * border @@ -193,7 +198,8 @@ def datamatrix(data: str, **kwargs) -> str: if value: img.putpixel((x + border, y + border), fg) - if scale != 1: - img = img.resize((int(width * scale), int(height * scale))) + img = img.resize( + (int(width * scale), int(height * scale)), Image.Resampling.NEAREST + ) - return image_data(img, fmt='PNG') + return image_data(img, fmt=fmt) diff --git a/src/backend/InvenTree/report/test_tags.py b/src/backend/InvenTree/report/test_tags.py index b5bf18f806..047ce6a686 100644 --- a/src/backend/InvenTree/report/test_tags.py +++ b/src/backend/InvenTree/report/test_tags.py @@ -440,7 +440,6 @@ class ReportTagTest(PartImageTestMixin, InvenTreeTestCase): ] for tz, fmt, locale, expected in tests: - print(tz, fmt, locale, expected) result = report_tags.format_datetime( time, timezone=tz, fmt=fmt, locale=locale ) @@ -857,7 +856,7 @@ class BarcodeTagTest(TestCase): self.assertTrue(barcode.startswith('data:image/bmp;')) # Test empty tag - with self.assertRaises(ValueError): + with self.assertRaises(ValidationError): barcode_tags.barcode('') def test_qrcode(self): @@ -877,7 +876,7 @@ class BarcodeTagTest(TestCase): self.assertEqual(len(qrcode), 309720) # Test empty tag - with self.assertRaises(ValueError): + with self.assertRaises(ValidationError): barcode_tags.qrcode('') def test_clean_barcode(self): @@ -908,7 +907,7 @@ class BarcodeTagTest(TestCase): ) # Test empty tag - with self.assertRaises(ValueError): + with self.assertRaises(ValidationError): barcode_tags.datamatrix('') # Failure cases with wrong args From de736ee5dee88c95a00c98c99a48a72f5af37a98 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Wed, 24 Jun 2026 09:42:35 +0200 Subject: [PATCH 25/40] !feat(backend): bump minimum python version (#12223) * bump ci versions * bump installer version * bump tooling version ref * bump doc refs * bump / refactor code refs * bump debug ref * remove now unneeded deps * bump release version * remove distutils * fix finder call * remove old compat code * add changelog entry * lower cov target for now --- .devcontainer/Dockerfile | 4 +- .devops/test_stats.yml | 2 +- .github/workflows/check_translations.yaml | 2 +- .github/workflows/docker.yaml | 6 +-- .github/workflows/frontend.yaml | 2 +- .github/workflows/import_export.yaml | 2 +- .github/workflows/qc_checks.yaml | 4 +- .github/workflows/release.yaml | 6 +-- .github/workflows/translations.yaml | 2 +- .pkgr.yml | 10 ++-- .pre-commit-config.yaml | 2 +- .vscode/launch.json | 2 +- CHANGELOG.md | 2 + codecov.yml | 2 +- contrib/packager.io/functions.sh | 2 +- contrib/packager.io/postinstall.sh | 2 +- docs/docs/hooks.py | 4 +- docs/docs/start/docker_install.md | 2 +- docs/mkdocs.yml | 2 +- pyproject.toml | 2 +- readthedocs.yml | 4 +- src/backend/InvenTree/InvenTree/version.py | 2 +- src/backend/InvenTree/common/setting/type.py | 14 +----- src/backend/InvenTree/plugin/helpers.py | 15 ++---- src/backend/InvenTree/plugin/installer.py | 3 +- src/backend/InvenTree/plugin/plugin.py | 7 ++- src/backend/InvenTree/plugin/registry.py | 12 ++--- src/backend/requirements-dev.txt | 49 -------------------- src/backend/requirements.txt | 5 -- src/frontend/netlify.toml | 2 +- 30 files changed, 49 insertions(+), 126 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 2c7fd1a0a9..c9f9675af3 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -3,7 +3,7 @@ # In contrast with the "production" image (which is based on an Alpine image) # we use a Debian-based image for the devcontainer -FROM mcr.microsoft.com/devcontainers/python:3.11-bookworm@sha256:e754c29c4e3ffcf6c794c1020e36a0812341d88ec9569a34704b975fa89e8848 +FROM mcr.microsoft.com/devcontainers/python:3.12-trixie@sha256:5440cb68898d190ad6c6e8a4634ce89d0645bea47f9c8beb75612bb8e3983711 # InvenTree paths ENV INVENTREE_HOME="/home/inventree" @@ -25,7 +25,7 @@ RUN chmod +x init.sh # Install required base packages RUN apt update && apt install -y \ - python3.11-dev python3.11-venv \ + python3.12-dev python3.12-venv \ postgresql-client \ libldap2-dev libsasl2-dev \ libpango1.0-0 libcairo2 \ diff --git a/.devops/test_stats.yml b/.devops/test_stats.yml index a0bc7ed680..5cf457b2e3 100644 --- a/.devops/test_stats.yml +++ b/.devops/test_stats.yml @@ -14,7 +14,7 @@ pool: strategy: matrix: Python39: - PYTHON_VERSION: '3.11' + PYTHON_VERSION: 3.12 maxParallel: 3 steps: diff --git a/.github/workflows/check_translations.yaml b/.github/workflows/check_translations.yaml index edbdc6a57c..37a31849bd 100644 --- a/.github/workflows/check_translations.yaml +++ b/.github/workflows/check_translations.yaml @@ -9,7 +9,7 @@ on: - l10 env: - python_version: 3.11 + python_version: 3.12 permissions: contents: read diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index df3770b803..42a292d3d5 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -62,7 +62,7 @@ jobs: contents: read env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - python_version: "3.11" + python_version: 3.12 runs-on: ubuntu-latest # in the future we can try to use alternative runners here steps: @@ -134,7 +134,7 @@ jobs: contents: read env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - python_version: "3.11" + python_version: 3.12 runs-on: ubuntu-latest # in the future we can try to use alternative runners here steps: @@ -158,7 +158,7 @@ jobs: id-token: write env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - python_version: "3.11" + python_version: 3.12 runs-on: ubuntu-latest # in the future we can try to use alternative runners here steps: diff --git a/.github/workflows/frontend.yaml b/.github/workflows/frontend.yaml index 82a261c5dd..2585d982d9 100644 --- a/.github/workflows/frontend.yaml +++ b/.github/workflows/frontend.yaml @@ -13,7 +13,7 @@ on: branches-ignore: ["l10*"] env: - python_version: 3.11 + python_version: 3.12 node_version: 24 # The OS version must be set per job server_start_sleep: 60 diff --git a/.github/workflows/import_export.yaml b/.github/workflows/import_export.yaml index 9b33ab8cab..5d692a5059 100644 --- a/.github/workflows/import_export.yaml +++ b/.github/workflows/import_export.yaml @@ -15,7 +15,7 @@ permissions: contents: read env: - python_version: 3.11 + python_version: 3.12 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/qc_checks.yaml b/.github/workflows/qc_checks.yaml index 2532796e03..d616acde94 100644 --- a/.github/workflows/qc_checks.yaml +++ b/.github/workflows/qc_checks.yaml @@ -9,7 +9,7 @@ on: branches-ignore: ["l10*"] env: - python_version: 3.11 + python_version: 3.12 node_version: 24 # The OS version must be set per job server_start_sleep: 60 @@ -379,7 +379,7 @@ jobs: continue-on-error: true # continue if a step fails so that coverage gets pushed strategy: matrix: - python_version: [3.11, 3.14] + python_version: [3.12, 3.14] env: INVENTREE_DB_NAME: ./inventree.sqlite diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 1795c7ce0e..314e2891a8 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -7,7 +7,7 @@ on: permissions: contents: read env: - python_version: 3.11 + python_version: 3.12 jobs: stable: @@ -151,9 +151,9 @@ jobs: fail-fast: false matrix: target: - - ubuntu:22.04 - ubuntu:24.04 - - debian:12 + - ubuntu:26.04 + - debian:13 steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # pin@v6.0.3 diff --git a/.github/workflows/translations.yaml b/.github/workflows/translations.yaml index 503eb02657..e1da913823 100644 --- a/.github/workflows/translations.yaml +++ b/.github/workflows/translations.yaml @@ -6,7 +6,7 @@ on: - master env: - python_version: 3.11 + python_version: 3.12 node_version: 24 permissions: diff --git a/.pkgr.yml b/.pkgr.yml index ac9dc06408..4be9b08a36 100644 --- a/.pkgr.yml +++ b/.pkgr.yml @@ -21,9 +21,9 @@ before: dependencies: - curl - poppler-utils - - "python3.11 | python3.12 | python3.13 | python3.14" - - "python3.11-venv | python3.12-venv | python3.13-venv | python3.14-venv" - - "python3.11-dev | python3.12-dev | python3.13-dev | python3.14-dev" + - "python3.12 | python3.13 | python3.14" + - "python3.12-venv | python3.13-venv | python3.14-venv" + - "python3.12-dev | python3.13-dev | python3.14-dev" - python3-pip - python3-cffi - python3-brotli @@ -36,6 +36,6 @@ dependencies: - jq - "libffi7 | libffi8" targets: - ubuntu-22.04: true ubuntu-24.04: true - debian-12: true + ubuntu-26.04: true + debian-13: true diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e56b3f2f3d..bc7e618931 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -97,4 +97,4 @@ repos: rev: 0.4.3 hooks: - id: teyit - language_version: python3.11 + language_version: python3.12 diff --git a/.vscode/launch.json b/.vscode/launch.json index 17186b6d37..6405c43bd5 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -47,7 +47,7 @@ "name": "InvenTree invoke schema", "type": "debugpy", "request": "launch", - "program": "${workspaceFolder}/.venv/lib/python3.11/site-packages/invoke/__main__.py", + "program": "${workspaceFolder}/.venv/lib/python3.12/site-packages/invoke/__main__.py", "cwd": "${workspaceFolder}", "args": [ "dev.schema","--ignore-warnings" diff --git a/CHANGELOG.md b/CHANGELOG.md index 01f796c624..410d9a6054 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Breaking Changes +- [#12223](https://github.com/inventree/InvenTree/pull/12223) removes support for python 3.11 and stops providing packages for Debian 11 and Ubuntu 20.04. + ### Added ### Changed diff --git a/codecov.yml b/codecov.yml index b80efb27e7..35e93ceb04 100644 --- a/codecov.yml +++ b/codecov.yml @@ -24,7 +24,7 @@ flag_management: carryforward: true statuses: - type: project - target: 40% + target: 38% - name: web carryforward: true statuses: diff --git a/contrib/packager.io/functions.sh b/contrib/packager.io/functions.sh index c4703d6eba..2705a369e8 100755 --- a/contrib/packager.io/functions.sh +++ b/contrib/packager.io/functions.sh @@ -79,7 +79,7 @@ function detect_python() { echo "${On_Red}" echo "# POI07| Python ${SETUP_PYTHON} not found - aborting!" echo "# POI07| Please ensure python can be executed with the command '$SETUP_PYTHON' by the current user '$USER'." - echo "# POI07| If you are using a different python version, please set the environment variable SETUP_PYTHON to the correct command - eg. 'python3.11'." + echo "# POI07| If you are using a different python version, please set the environment variable SETUP_PYTHON to the correct command - eg. 'python3.12'." echo "${Color_Off}" exit 1 fi diff --git a/contrib/packager.io/postinstall.sh b/contrib/packager.io/postinstall.sh index a3ae0b0802..5660900b65 100755 --- a/contrib/packager.io/postinstall.sh +++ b/contrib/packager.io/postinstall.sh @@ -26,7 +26,7 @@ export DATA_DIR=${APP_HOME}/data export SETUP_NGINX_FILE=${SETUP_NGINX_FILE:-/etc/nginx/sites-enabled/inventree.conf} export SETUP_ADMIN_PASSWORD_FILE=${CONF_DIR}/admin_password.txt export SETUP_NO_CALLS=${SETUP_NO_CALLS:-false} -export SETUP_PYTHON=${SETUP_PYTHON:-python3.11} +export SETUP_PYTHON=${SETUP_PYTHON:-python3.12} export SETUP_ADMIN_NOCREATION=${SETUP_ADMIN_NOCREATION:-false} # SETUP_DEBUG can be set to get debug info # SETUP_EXTRA_PIP can be set to install extra pip packages diff --git a/docs/docs/hooks.py b/docs/docs/hooks.py index b038738565..fc1f98e4a0 100644 --- a/docs/docs/hooks.py +++ b/docs/docs/hooks.py @@ -4,10 +4,10 @@ import json import os import re from datetime import datetime -from distutils.version import StrictVersion # type: ignore[import] from pathlib import Path import requests +from packaging.version import Version here = Path(__file__).parent @@ -57,7 +57,7 @@ def fetch_rtd_versions(): print('No RTD token found - skipping RTD version fetch') # Sort versions by version number - versions = sorted(versions, key=lambda x: StrictVersion(x['version']), reverse=True) + versions = sorted(versions, key=lambda x: Version(x['version']), reverse=True) # Add "latest" version first if not any(x['title'] == 'latest' for x in versions): diff --git a/docs/docs/start/docker_install.md b/docs/docs/start/docker_install.md index 44f60ffba1..045ef22c67 100644 --- a/docs/docs/start/docker_install.md +++ b/docs/docs/start/docker_install.md @@ -325,7 +325,7 @@ ARG INVENTREE_TAG # prebuild stage - needs a lot of build dependencies # make sure, the alpine and python version matches the version used in the inventree base image -FROM python:3.11-alpine3.18 as prebuild +FROM python:3.12-alpine3.18 as prebuild # Install whatever development dependency is needed (e.g. cups-dev, gcc, the musl-dev build tools and the pip pycups package) RUN apk add --no-cache cups-dev gcc musl-dev && \ diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 16f051309f..ca20e704c7 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -366,7 +366,7 @@ extra: # provider: google # property: UA-143467500-1 - min_python_version: 3.11 + min_python_version: 3.12 min_invoke_version: 2.0.0 django_version: 5.2 docker_postgres_version: 17 diff --git a/pyproject.toml b/pyproject.toml index e1216eaaf6..1bf6587443 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -97,7 +97,7 @@ skip-magic-trailing-comma = true line-ending = "auto" [tool.uv.pip] -python-version = "3.11" +python-version = "3.12" no-strip-extras=true generate-hashes=true diff --git a/readthedocs.yml b/readthedocs.yml index e2bf29c339..1d72620cfe 100644 --- a/readthedocs.yml +++ b/readthedocs.yml @@ -9,9 +9,9 @@ python: - requirements: src/backend/requirements.txt build: - os: "ubuntu-22.04" + os: "ubuntu-24.04" tools: - python: "3.11" + python: "3.12" jobs: post_install: - pip install -U invoke diff --git a/src/backend/InvenTree/InvenTree/version.py b/src/backend/InvenTree/InvenTree/version.py index dde7f3abe8..55bfefe838 100644 --- a/src/backend/InvenTree/InvenTree/version.py +++ b/src/backend/InvenTree/InvenTree/version.py @@ -18,7 +18,7 @@ from .api_version import INVENTREE_API_TEXT, INVENTREE_API_VERSION INVENTREE_SW_VERSION = '1.5.0 dev' # Minimum supported Python version -MIN_PYTHON_VERSION = (3, 11) +MIN_PYTHON_VERSION = (3, 12) logger = logging.getLogger('inventree') diff --git a/src/backend/InvenTree/common/setting/type.py b/src/backend/InvenTree/common/setting/type.py index 0e788c017f..3a704d5e24 100644 --- a/src/backend/InvenTree/common/setting/type.py +++ b/src/backend/InvenTree/common/setting/type.py @@ -1,19 +1,7 @@ """Types for settings.""" -import sys from collections.abc import Callable -from typing import Any, TypedDict - -if sys.version_info >= (3, 11): - from typing import NotRequired # pragma: no cover -else: - - class NotRequired: # pragma: no cover - """NotRequired type helper is only supported with Python 3.11+.""" - - def __class_getitem__(cls, item): - """Return the item.""" - return item +from typing import Any, NotRequired, TypedDict class SettingsKeyType(TypedDict, total=False): diff --git a/src/backend/InvenTree/plugin/helpers.py b/src/backend/InvenTree/plugin/helpers.py index 79b97f4647..485f8c91b8 100644 --- a/src/backend/InvenTree/plugin/helpers.py +++ b/src/backend/InvenTree/plugin/helpers.py @@ -108,9 +108,6 @@ def handle_error(error, do_raise: bool = True, do_log: bool = True, log_name: st def get_entrypoints(): """Returns list for entrypoints for InvenTree plugins.""" - # on python before 3.12, we need to use importlib_metadata - if sys.version_info < (3, 12): - return entry_points().get('inventree_plugins', []) return entry_points(group='inventree_plugins') @@ -190,13 +187,11 @@ def get_modules(pkg, path=None): continue try: - if sys.version_info < (3, 12): - module = finder.find_module(name).load_module(name) - else: - spec = finder.find_spec(name) - module = module_from_spec(spec) - sys.modules[name] = module - spec.loader.exec_module(module) + spec = finder.find_spec(name, path) + module = module_from_spec(spec) + sys.modules[name] = module + spec.loader.exec_module(module) + pkg_names = getattr(module, '__all__', None) for k, v in vars(module).items(): if not k.startswith('_') and (pkg_names is None or k in pkg_names): diff --git a/src/backend/InvenTree/plugin/installer.py b/src/backend/InvenTree/plugin/installer.py index acf6584a8d..acff2ea55a 100644 --- a/src/backend/InvenTree/plugin/installer.py +++ b/src/backend/InvenTree/plugin/installer.py @@ -117,8 +117,7 @@ def plugins_file_hash(): try: with pf.open('rb') as f: - # Note: Once we support 3.11 as a minimum, we can use hashlib.file_digest - return hashlib.sha256(f.read()).hexdigest() + return hashlib.file_digest(f, 'sha256').hexdigest() except Exception: log_error('plugins_file_hash', scope='plugins') return None diff --git a/src/backend/InvenTree/plugin/plugin.py b/src/backend/InvenTree/plugin/plugin.py index 1e9518cc99..0c031b1608 100644 --- a/src/backend/InvenTree/plugin/plugin.py +++ b/src/backend/InvenTree/plugin/plugin.py @@ -7,6 +7,7 @@ import warnings from datetime import datetime from importlib.metadata import PackageNotFoundError, metadata from pathlib import Path +from sysconfig import get_path from typing import Optional from django.conf import settings @@ -517,7 +518,6 @@ class InvenTreePlugin(VersionMixin, MixinBase, MetaBase): return InvenTree.helpers.pui_url(f'/settings/admin/plugin/{config.pk}/') return InvenTree.helpers.pui_url('/settings/admin/plugin/') - # region package info @mark_final def _get_package_commit(self): """Get last git commit for the plugin.""" @@ -527,10 +527,9 @@ class InvenTreePlugin(VersionMixin, MixinBase, MetaBase): @mark_final def is_editable(cls): """Returns if the current part is editable.""" - from distutils.sysconfig import get_python_lib - pkg_name = cls.__name__.split('.')[0] - dist_info = list(Path(get_python_lib()).glob(f'{pkg_name}-*.dist-info')) + py_lib = get_path('platlib') + dist_info = list(Path(py_lib).glob(f'{pkg_name}-*.dist-info')) return bool(len(dist_info) == 1) @classmethod diff --git a/src/backend/InvenTree/plugin/registry.py b/src/backend/InvenTree/plugin/registry.py index 46e57f0c10..4cac88f05b 100644 --- a/src/backend/InvenTree/plugin/registry.py +++ b/src/backend/InvenTree/plugin/registry.py @@ -585,15 +585,9 @@ class PluginsRegistry: # Gather Modules if parent_path: - # On python 3.12 use new loader method - if sys.version_info < (3, 12): - raw_module = _load_source( - plugin_dir, str(parent_obj.joinpath('__init__.py')) - ) - else: - raw_module = SourceFileLoader( - plugin_dir, str(parent_obj.joinpath('__init__.py')) - ).load_module() + raw_module = SourceFileLoader( + plugin_dir, str(parent_obj.joinpath('__init__.py')) + ).load_module() else: raw_module = importlib.import_module(plugin_dir) diff --git a/src/backend/requirements-dev.txt b/src/backend/requirements-dev.txt index ddac7da830..de265fdb59 100644 --- a/src/backend/requirements-dev.txt +++ b/src/backend/requirements-dev.txt @@ -594,55 +594,6 @@ sqlparse==0.5.5 \ # -c src/backend/requirements.txt # django # django-silk -tomli==2.4.1 \ - --hash=sha256:01f520d4f53ef97964a240a035ec2a869fe1a37dde002b57ebc4417a27ccd853 \ - --hash=sha256:0d85819802132122da43cb86656f8d1f8c6587d54ae7dcaf30e90533028b49fe \ - --hash=sha256:136443dbd7e1dee43c68ac2694fde36b2849865fa258d39bf822c10e8068eac5 \ - --hash=sha256:1d8591993e228b0c930c4bb0db464bdad97b3289fb981255d6c9a41aedc84b2d \ - --hash=sha256:2190f2e9dd7508d2a90ded5ed369255980a1bcdd58e52f7fe24b8162bf9fedbd \ - --hash=sha256:2c1c351919aca02858f740c6d33adea0c5deea37f9ecca1cc1ef9e884a619d26 \ - --hash=sha256:36d2bd2ad5fb9eaddba5226aa02c8ec3fa4f192631e347b3ed28186d43be6b54 \ - --hash=sha256:3d48a93ee1c9b79c04bb38772ee1b64dcf18ff43085896ea460ca8dec96f35f6 \ - --hash=sha256:47149d5bd38761ac8be13a84864bf0b7b70bc051806bc3669ab1cbc56216b23c \ - --hash=sha256:4ab97e64ccda8756376892c53a72bd1f964e519c77236368527f758fbc36a53a \ - --hash=sha256:4b605484e43cdc43f0954ddae319fb75f04cc10dd80d830540060ee7cd0243cd \ - --hash=sha256:504aa796fe0569bb43171066009ead363de03675276d2d121ac1a4572397870f \ - --hash=sha256:51529d40e3ca50046d7606fa99ce3956a617f9b36380da3b7f0dd3dd28e68cb5 \ - --hash=sha256:52c8ef851d9a240f11a88c003eacb03c31fc1c9c4ec64a99a0f922b93874fda9 \ - --hash=sha256:559db847dc486944896521f68d8190be1c9e719fced785720d2216fe7022b662 \ - --hash=sha256:5a881ab208c0baf688221f8cecc5401bd291d67e38a1ac884d6736cbcd8247e9 \ - --hash=sha256:5cb41aa38891e073ee49d55fbc7839cfdb2bc0e600add13874d048c94aadddd1 \ - --hash=sha256:5e262d41726bc187e69af7825504c933b6794dc3fbd5945e41a79bb14c31f585 \ - --hash=sha256:5ee18d9ebdb417e384b58fe414e8d6af9f4e7a0ae761519fb50f721de398dd4e \ - --hash=sha256:7008df2e7655c495dd12d2a4ad038ff878d4ca4b81fccaf82b714e07eae4402c \ - --hash=sha256:734e20b57ba95624ecf1841e72b53f6e186355e216e5412de414e3c51e5e3c41 \ - --hash=sha256:7c7e1a961a0b2f2472c1ac5b69affa0ae1132c39adcb67aba98568702b9cc23f \ - --hash=sha256:7f86fd587c4ed9dd76f318225e7d9b29cfc5a9d43de44e5754db8d1128487085 \ - --hash=sha256:7f94b27a62cfad8496c8d2513e1a222dd446f095fca8987fceef261225538a15 \ - --hash=sha256:88dceee75c2c63af144e456745e10101eb67361050196b0b6af5d717254dddf7 \ - --hash=sha256:8a650c2dbafa08d42e51ba0b62740dae4ecb9338eefa093aa5c78ceb546fcd5c \ - --hash=sha256:8d65a2fbf9d2f8352685bc1364177ee3923d6baf5e7f43ea4959d7d8bc326a36 \ - --hash=sha256:96481a5786729fd470164b47cdb3e0e58062a496f455ee41b4403be77cb5a076 \ - --hash=sha256:a120733b01c45e9a0c34aeef92bf0cf1d56cfe81ed9d47d562f9ed591a9828ac \ - --hash=sha256:b1d22e6e9387bf4739fbe23bfa80e93f6b0373a7f1b96c6227c32bef95a4d7a8 \ - --hash=sha256:b8c198f8c1805dc42708689ed6864951fd2494f924149d3e4bce7710f8eb5232 \ - --hash=sha256:c2541745709bad0264b7d4705ad453b76ccd191e64aa6f0fc66b69a293a45ece \ - --hash=sha256:c742f741d58a28940ce01d58f0ab2ea3ced8b12402f162f4d534dfe18ba1cd6a \ - --hash=sha256:c7f2c7f2b9ca6bdeef8f0fa897f8e05085923eb091721675170254cbc5b02897 \ - --hash=sha256:d312ef37c91508b0ab2cee7da26ec0b3ed2f03ce12bd87a588d771ae15dcf82d \ - --hash=sha256:d4d8fe59808a54658fcc0160ecfb1b30f9089906c50b23bcb4c69eddc19ec2b4 \ - --hash=sha256:da25dc3563bff5965356133435b757a795a17b17d01dbc0f42fb32447ddfd917 \ - --hash=sha256:eab21f45c7f66c13f2a9e0e1535309cee140182a9cdae1e041d02e47291e8396 \ - --hash=sha256:eb0dc4e38e6a1fd579e5d50369aa2e10acfc9cace504579b2faabb478e76941a \ - --hash=sha256:ec9bfaf3ad2df51ace80688143a6a4ebc09a248f6ff781a9945e51937008fcbc \ - --hash=sha256:ede3e6487c5ef5d28634ba3f31f989030ad6af71edfb0055cbbd14189ff240ba \ - --hash=sha256:f3c6818a1a86dd6dca7ddcaaf76947d5ba31aecc28cb1b67009a5877c9a64f3f \ - --hash=sha256:f758f1b9299d059cc3f6546ae2af89670cb1c4d48ea29c3cacc4fe7de3058257 \ - --hash=sha256:f8f0fc26ec2cc2b965b7a3b87cd19c5c6b8c5e5f436b984e85f486d652285c30 \ - --hash=sha256:fd0409a3653af6c147209d267a0e4243f0ae46b011aa978b1080359fddc9b6cf \ - --hash=sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9 \ - --hash=sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049 - # via coverage ty==0.0.51 \ --hash=sha256:08adbe53fb8bc9e7f00e89bf1d3c875a02cda76d83f109d2e6ab1ff35a7bfa8c \ --hash=sha256:25a5b31e6f23fd5dc63ad29087ded09932409e4154e2fe07bbaed015035990bb \ diff --git a/src/backend/requirements.txt b/src/backend/requirements.txt index 08533040af..991ee30ec6 100644 --- a/src/backend/requirements.txt +++ b/src/backend/requirements.txt @@ -8,10 +8,6 @@ asgiref==3.11.1 \ # django-allauth # django-cors-headers # django-structlog -async-timeout==5.0.1 \ - --hash=sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c \ - --hash=sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3 - # via redis attrs==26.1.0 \ --hash=sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 \ --hash=sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32 @@ -1929,7 +1925,6 @@ typing-extensions==4.15.0 \ --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 # via # django-redis - # dulwich # flexcache # flexparser # grpcio diff --git a/src/frontend/netlify.toml b/src/frontend/netlify.toml index 6d012187e9..8af67796dd 100644 --- a/src/frontend/netlify.toml +++ b/src/frontend/netlify.toml @@ -7,7 +7,7 @@ [build.environment] VITE_DEMO = "true" - PYTHON_VERSION = "3.11" + PYTHON_VERSION = "3.12" # Send requests to subpath From fa5591765903b26db7ebcceae5677e4b0aa7ed72 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 24 Jun 2026 21:56:39 +1000 Subject: [PATCH 26/40] Update devcontainer Dockerfile (#12244) - Update to python 3.14 - Fix base packages --- .devcontainer/Dockerfile | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index c9f9675af3..3b3fa1e979 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,9 +1,7 @@ # Dockerfile for the InvenTree devcontainer +# This container is used for development of the InvenTree project, and includes all necessary dependencies for both backend and frontend development. -# In contrast with the "production" image (which is based on an Alpine image) -# we use a Debian-based image for the devcontainer - -FROM mcr.microsoft.com/devcontainers/python:3.12-trixie@sha256:5440cb68898d190ad6c6e8a4634ce89d0645bea47f9c8beb75612bb8e3983711 +FROM mcr.microsoft.com/devcontainers/python:3.14-trixie@sha256:66af9ee0a89e76f83b5c54a0cfdc19966ec8e443e294707f8f9b45f465b42cf1 # InvenTree paths ENV INVENTREE_HOME="/home/inventree" @@ -25,10 +23,10 @@ RUN chmod +x init.sh # Install required base packages RUN apt update && apt install -y \ - python3.12-dev python3.12-venv \ + python3-dev python3-venv \ postgresql-client \ libldap2-dev libsasl2-dev \ - libpango1.0-0 libcairo2 \ + libpango-1.0-0 libcairo2 \ poppler-utils weasyprint # Install packages required for frontend development From 4cfefc18c156f995d2ea1a7005c9657ac39865c3 Mon Sep 17 00:00:00 2001 From: Neil Beukes Date: Wed, 24 Jun 2026 16:24:33 +0200 Subject: [PATCH 27/40] Allow stock transfer to merge into existing stock (optional) #6951 (#12022) * working on merge transfer * fix history when merging * update messaging, add 'added' line in history * reworked history logic * removed old transfer logic * remove formatting changes from vite file * Bumped API version, added entry in docs for new global setting * removed the tracking item overwrite, Use existing tracking event from transfer * run pre-commit checks --------- Co-authored-by: Matthias Mair --- docs/docs/settings/global.md | 1 + .../InvenTree/InvenTree/api_version.py | 7 +- .../InvenTree/common/setting/system.py | 8 + src/backend/InvenTree/stock/models.py | 93 ++++++++-- src/backend/InvenTree/stock/serializers.py | 53 +++++- src/backend/InvenTree/stock/test_api.py | 172 ++++++++++++++++++ src/backend/InvenTree/stock/tests.py | 7 + src/frontend/src/forms/StockForms.tsx | 48 ++++- .../pages/Index/Settings/SystemSettings.tsx | 1 + 9 files changed, 366 insertions(+), 24 deletions(-) diff --git a/docs/docs/settings/global.md b/docs/docs/settings/global.md index 2e22defb8e..ee5820408a 100644 --- a/docs/docs/settings/global.md +++ b/docs/docs/settings/global.md @@ -226,6 +226,7 @@ Configuration of stock item options {{ globalsetting("STOCK_SHOW_INSTALLED_ITEMS") }} {{ globalsetting("STOCK_ENFORCE_BOM_INSTALLATION") }} {{ globalsetting("STOCK_ALLOW_OUT_OF_STOCK_TRANSFER") }} +{{ globalsetting("STOCK_MERGE_ON_TRANSFER") }} {{ globalsetting("TEST_STATION_DATA") }} ### Build Orders diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index 14341d04fb..1bd9877491 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,11 +1,16 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 511 +INVENTREE_API_VERSION = 512 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v512 -> 2026-06-20 : https://github.com/inventree/InvenTree/pull/12022 + - Adds optional "merge" field to each item in the Stock Transfer API endpoint + - When merge is enabled, transferred stock is combined into compatible existing stock at the destination + - Stock merge tracking entries now include an "added" delta field. + v511 -> 2026-06-19 : https://github.com/inventree/InvenTree/pull/12204 - Adds new filtering options to PartCategoryTree and StockLocationTree API endpoints diff --git a/src/backend/InvenTree/common/setting/system.py b/src/backend/InvenTree/common/setting/system.py index d6fe3e3a6b..f950129187 100644 --- a/src/backend/InvenTree/common/setting/system.py +++ b/src/backend/InvenTree/common/setting/system.py @@ -793,6 +793,14 @@ SYSTEM_SETTINGS: dict[str, InvenTreeSettingsKeyType] = { 'default': False, 'validator': bool, }, + 'STOCK_MERGE_ON_TRANSFER': { + 'name': _('Merge stock with existing stock on transfer by default'), + 'description': _( + 'Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)' + ), + 'default': False, + 'validator': bool, + }, 'BUILDORDER_REFERENCE_PATTERN': { 'name': _('Build Order Reference Pattern'), 'description': _('Required pattern for generating Build Order reference field'), diff --git a/src/backend/InvenTree/stock/models.py b/src/backend/InvenTree/stock/models.py index c7c4f653fe..290377ff0b 100644 --- a/src/backend/InvenTree/stock/models.py +++ b/src/backend/InvenTree/stock/models.py @@ -2206,6 +2206,35 @@ class StockItem( return True + def find_merge_target(self, location): + """Find an existing stock item at location that can absorb this item.""" + if location is None: + return None + + candidates = list( + StockItem.objects + .filter(part=self.part, location=location) + .exclude(pk=self.pk) + .order_by('pk') + ) + + if not candidates: + return None + + if self.batch: + batch_matches = [c for c in candidates if c.batch == self.batch] + search_order = batch_matches + [ + c for c in candidates if c not in batch_matches + ] + else: + search_order = candidates + + for target in search_order: + if target.can_merge(other=self, raise_error=False): + return target + + return None + @transaction.atomic def merge_stock_items(self, other_items, raise_error=False, **kwargs): """Merge another stock item into this one; the two become one! @@ -2227,7 +2256,7 @@ class StockItem( user = kwargs.get('user') location = kwargs.get('location', self.location) - notes = kwargs.get('notes') + notes = kwargs.get('notes') or '' parent_id = self.parent.pk if self.parent else None @@ -2245,9 +2274,12 @@ class StockItem( ) return + merged_quantity = Decimal(0) + for other in other_items: tree_ids.add(other.tree_id) + merged_quantity += other.quantity self.quantity += other.quantity if other.purchase_price: @@ -2271,15 +2303,25 @@ class StockItem( other.delete() + transfer_deltas = kwargs.pop('transfer_deltas', None) + + tracking_deltas = { + 'quantity': float(self.quantity), + 'added': float(merged_quantity), + } + + if location: + tracking_deltas['location'] = location.pk + + if transfer_deltas: + tracking_deltas = {**transfer_deltas, **tracking_deltas} + self.add_tracking_entry( StockHistoryCode.MERGED_STOCK_ITEMS, user, quantity=self.quantity, notes=notes, - deltas={ - 'location': location.pk if location else None, - 'quantity': self.quantity, - }, + deltas=tracking_deltas, ) # Update the location of the item @@ -2340,6 +2382,8 @@ class StockItem( status: If provided, override the status (default = existing status) packaging: If provided, override the packaging (default = existing packaging) allow_production: If True, allow splitting of stock which is in production (default = False) + record_tracking: If False, skip tracking entries (for merge-on-transfer) + split_transfer_deltas: Optional dict to receive split tracking deltas Returns: The new StockItem object @@ -2352,6 +2396,8 @@ class StockItem( """ # Run initial checks to test if the stock item can actually be "split" allow_production = kwargs.get('allow_production', False) + record_tracking = kwargs.pop('record_tracking', True) + split_transfer_deltas = kwargs.pop('split_transfer_deltas', None) # Cannot split a stock item which is in production if self.is_building and not allow_production: @@ -2424,15 +2470,23 @@ class StockItem( new_stock.save(add_note=False) - # Add a stock tracking entry for the newly created item - new_stock.add_tracking_entry( - StockHistoryCode.SPLIT_FROM_PARENT, - user, - quantity=quantity, - notes=notes, - location=location, - deltas=deltas, - ) + if split_transfer_deltas is not None: + split_transfer_deltas.clear() + split_transfer_deltas.update(deltas) + + if location: + split_transfer_deltas['location'] = location.pk + + if record_tracking: + # Add a stock tracking entry for the newly created item + new_stock.add_tracking_entry( + StockHistoryCode.SPLIT_FROM_PARENT, + user, + quantity=quantity, + notes=notes, + location=location, + deltas=deltas, + ) # Copy the test results of this part to the new one new_stock.copyTestResultsFrom(self) @@ -2445,6 +2499,7 @@ class StockItem( notes=notes, location=location, stockitem=new_stock, + record_tracking=record_tracking, ) # Rebuild the tree for this parent item @@ -2754,7 +2809,10 @@ class StockItem( code: The stock history code to use notes: Optional notes for the stock removal status: Optionally adjust the stock status + record_tracking: If False, skip creating a tracking entry """ + record_tracking = kwargs.pop('record_tracking', True) + # Cannot remove items from a serialized part if self.serialized: return False @@ -2804,9 +2862,10 @@ class StockItem( self.save(add_note=False) - self.add_tracking_entry( - code, user, notes=kwargs.get('notes', ''), deltas=deltas - ) + if record_tracking: + self.add_tracking_entry( + code, user, notes=kwargs.get('notes', ''), deltas=deltas + ) return True diff --git a/src/backend/InvenTree/stock/serializers.py b/src/backend/InvenTree/stock/serializers.py index 90b1770e62..64be85b563 100644 --- a/src/backend/InvenTree/stock/serializers.py +++ b/src/backend/InvenTree/stock/serializers.py @@ -1648,7 +1648,7 @@ class StockAdjustmentItemSerializer(serializers.Serializer): class Meta: """Metaclass options.""" - fields = ['pk', 'quantity', 'batch', 'status', 'packaging'] + fields = ['pk', 'quantity', 'batch', 'status', 'packaging', 'merge'] def __init__(self, *args, **kwargs): """Initialize the serializer.""" @@ -1722,6 +1722,15 @@ class StockAdjustmentItemSerializer(serializers.Serializer): help_text=_('Packaging this stock item is stored in'), ) + merge = serializers.BooleanField( + default=False, + required=False, + label=_('Merge into existing stock'), + help_text=_( + 'Merge this item into existing stock at the destination if possible' + ), + ) + class StockAdjustmentSerializer(serializers.Serializer): """Base class for managing stock adjustment actions via the API.""" @@ -1888,6 +1897,7 @@ class StockTransferSerializer(StockAdjustmentSerializer): # Required fields stock_item = item['pk'] quantity = item['quantity'] + merge = item.get('merge', False) # Optional fields kwargs = {} @@ -1896,6 +1906,47 @@ class StockTransferSerializer(StockAdjustmentSerializer): if field_value := item.get(field_name, None): kwargs[field_name] = field_value + if merge: + target = stock_item.find_merge_target(location) + + if target: + merge_kwargs = { + 'location': location, + 'notes': notes, + 'user': request.user, + **kwargs, + } + + if quantity < stock_item.quantity: + transfer_deltas = {} + + piece = stock_item.splitStock( + quantity, + location, + request.user, + notes=notes, + allow_production=True, + record_tracking=False, + split_transfer_deltas=transfer_deltas, + **kwargs, + ) + merge_kwargs['transfer_deltas'] = transfer_deltas + target.merge_stock_items([piece], **merge_kwargs) + else: + transfer_deltas = {'stockitem': stock_item.pk} + + if location: + transfer_deltas['location'] = location.pk + + for field_name in StockItem.optional_transfer_fields(): + if field_name in kwargs: + transfer_deltas[field_name] = kwargs[field_name] + + merge_kwargs['transfer_deltas'] = transfer_deltas + target.merge_stock_items([stock_item], **merge_kwargs) + + continue + stock_item.move( location, notes, request.user, quantity=quantity, **kwargs ) diff --git a/src/backend/InvenTree/stock/test_api.py b/src/backend/InvenTree/stock/test_api.py index 4299cfa83c..fdc0ebce54 100644 --- a/src/backend/InvenTree/stock/test_api.py +++ b/src/backend/InvenTree/stock/test_api.py @@ -2412,6 +2412,178 @@ class StocktakeTest(StockAPITestCase): self.assertIn('does not exist', str(response.data['location'])) +class StockTransferMergeTest(StockAPITestCase): + """Tests for optional merge-on-transfer behavior.""" + + def setUp(self): + """Set up stock items for merge transfer tests.""" + super().setUp() + + self.part = Part.objects.get(pk=1) + self.dest = StockLocation.objects.get(pk=2) + self.source_loc = StockLocation.objects.get(pk=5) + self.url = reverse('api-stock-transfer') + + # Remove fixture stock at the destination so merge targets are deterministic + StockItem.objects.filter(part=self.part, location=self.dest).delete() + + def test_transfer_without_merge_creates_separate_lot(self): + """Transfer without merge leaves multiple stock rows at destination.""" + existing = StockItem.objects.create( + part=self.part, location=self.dest, quantity=100 + ) + incoming = StockItem.objects.create( + part=self.part, location=self.source_loc, quantity=50 + ) + + self.post( + self.url, + { + 'items': [{'pk': incoming.pk, 'quantity': 50, 'merge': False}], + 'location': self.dest.pk, + }, + expected_code=201, + ) + + self.assertEqual( + StockItem.objects.filter(part=self.part, location=self.dest).count(), 2 + ) + + existing.refresh_from_db() + self.assertEqual(existing.quantity, 100) + + def test_transfer_with_merge_combines_lots(self): + """Transfer with merge combines into an existing compatible lot.""" + existing = StockItem.objects.create( + part=self.part, location=self.dest, quantity=100 + ) + incoming = StockItem.objects.create( + part=self.part, location=self.source_loc, quantity=50 + ) + + self.post( + self.url, + { + 'items': [{'pk': incoming.pk, 'quantity': 50, 'merge': True}], + 'location': self.dest.pk, + }, + expected_code=201, + ) + + self.assertEqual( + StockItem.objects.filter(part=self.part, location=self.dest).count(), 1 + ) + + existing.refresh_from_db() + self.assertEqual(existing.quantity, 150) + self.assertFalse(StockItem.objects.filter(pk=incoming.pk).exists()) + + def test_transfer_mixed_merge_per_item(self): + """Each transfer line can merge or move independently.""" + existing = StockItem.objects.create( + part=self.part, location=self.dest, quantity=100 + ) + merge_incoming = StockItem.objects.create( + part=self.part, location=self.source_loc, quantity=30 + ) + separate_incoming = StockItem.objects.create( + part=self.part, location=self.source_loc, quantity=20 + ) + + self.post( + self.url, + { + 'items': [ + {'pk': merge_incoming.pk, 'quantity': 30, 'merge': True}, + {'pk': separate_incoming.pk, 'quantity': 20, 'merge': False}, + ], + 'location': self.dest.pk, + }, + expected_code=201, + ) + + self.assertEqual( + StockItem.objects.filter(part=self.part, location=self.dest).count(), 2 + ) + + existing.refresh_from_db() + self.assertEqual(existing.quantity, 130) + self.assertFalse(StockItem.objects.filter(pk=merge_incoming.pk).exists()) + self.assertTrue(StockItem.objects.filter(pk=separate_incoming.pk).exists()) + + def test_transfer_merge_does_not_copy_source_tracking(self): + """Transfer merge keeps destination history and adds a single merge entry.""" + existing = StockItem.objects.create( + part=self.part, location=self.dest, quantity=100 + ) + incoming = StockItem.objects.create( + part=self.part, location=self.source_loc, quantity=50 + ) + + incoming.add_tracking_entry( + StockHistoryCode.STOCK_UPDATE, self.user, notes='Source tracking entry' + ) + + incoming_pk = incoming.pk + tracking_count = existing.tracking_info.count() + + self.post( + self.url, + { + 'items': [{'pk': incoming.pk, 'quantity': 50, 'merge': True}], + 'location': self.dest.pk, + }, + expected_code=201, + ) + + existing.refresh_from_db() + + self.assertFalse( + existing.tracking_info.filter(notes='Source tracking entry').exists() + ) + self.assertEqual(existing.tracking_info.count(), tracking_count + 1) + merge_entry = existing.tracking_info.filter( + tracking_type=StockHistoryCode.MERGED_STOCK_ITEMS + ).first() + self.assertIsNotNone(merge_entry) + self.assertEqual(merge_entry.deltas['added'], 50.0) + self.assertEqual(merge_entry.deltas['quantity'], 150.0) + self.assertEqual(merge_entry.deltas['stockitem'], incoming_pk) + self.assertEqual(merge_entry.deltas['location'], self.dest.pk) + + def test_transfer_merge_partial_reuses_split_transfer_deltas(self): + """Partial merge reuses split transfer deltas on the merge tracking entry.""" + existing = StockItem.objects.create( + part=self.part, location=self.dest, quantity=100 + ) + incoming = StockItem.objects.create( + part=self.part, location=self.source_loc, quantity=100 + ) + + self.post( + self.url, + { + 'items': [{'pk': incoming.pk, 'quantity': 30, 'merge': True}], + 'location': self.dest.pk, + }, + expected_code=201, + ) + + incoming.refresh_from_db() + self.assertEqual(incoming.quantity, 70) + + merge_entry = existing.tracking_info.filter( + tracking_type=StockHistoryCode.MERGED_STOCK_ITEMS + ).first() + self.assertEqual(merge_entry.deltas['stockitem'], incoming.pk) + self.assertEqual(merge_entry.deltas['location'], self.dest.pk) + self.assertFalse( + incoming.tracking_info.filter( + tracking_type=StockHistoryCode.SPLIT_CHILD_ITEM + ).exists() + ) + + class StockItemDeletionTest(StockAPITestCase): """Tests for stock item deletion via the API.""" diff --git a/src/backend/InvenTree/stock/tests.py b/src/backend/InvenTree/stock/tests.py index 9495432366..999fc030b0 100644 --- a/src/backend/InvenTree/stock/tests.py +++ b/src/backend/InvenTree/stock/tests.py @@ -729,6 +729,13 @@ class StockTest(StockTestBase): self.assertEqual(s1.quantity, 60) self.assertIsNone(s1.purchase_price) + merge_entry = s1.tracking_info.filter( + tracking_type=StockHistoryCode.MERGED_STOCK_ITEMS + ).first() + self.assertIsNotNone(merge_entry) + self.assertEqual(merge_entry.deltas['added'], 50.0) + self.assertEqual(merge_entry.deltas['quantity'], 60.0) + part.stock_items.all().delete() # Create some stock items with pricing information diff --git a/src/frontend/src/forms/StockForms.tsx b/src/frontend/src/forms/StockForms.tsx index 99255cf0d5..a0de3608b2 100644 --- a/src/frontend/src/forms/StockForms.tsx +++ b/src/frontend/src/forms/StockForms.tsx @@ -33,8 +33,16 @@ import { IconUsersGroup } from '@tabler/icons-react'; import { useQuery, useSuspenseQuery } from '@tanstack/react-query'; + import dayjs from 'dayjs'; -import { type JSX, Suspense, useEffect, useMemo, useState } from 'react'; +import { + type JSX, + Suspense, + useCallback, + useEffect, + useMemo, + useState +} from 'react'; import { useFormContext } from 'react-hook-form'; import { useNavigate } from 'react-router-dom'; import { api } from '../App'; @@ -566,6 +574,7 @@ function StockOperationsRow({ add = false, setMax = false, merge = false, + transferMerge = false, returnStock = false, record }: { @@ -575,6 +584,7 @@ function StockOperationsRow({ add?: boolean; setMax?: boolean; merge?: boolean; + transferMerge?: boolean; returnStock?: boolean; record?: any; }) { @@ -742,6 +752,17 @@ function StockOperationsRow({ variant={packagingOpen ? 'filled' : 'transparent'} /> )} + {transferMerge && ( + } + tooltip={t`Merge into existing stock`} + onClick={() => + callChangeFn(props.idx, 'merge', !props.item?.merge) + } + variant={props.item?.merge ? 'filled' : 'transparent'} + /> + )} props.removeFn(props.idx)} /> @@ -789,9 +810,10 @@ type StockAdjustmentItem = { batch?: string; status?: number | '' | null; packaging?: string; + merge?: boolean; }; -function mapAdjustmentItems(items: any[]) { +function mapAdjustmentItems(items: any[], mergeDefault?: boolean) { const mappedItems: StockAdjustmentItemWithRecord[] = items.map((elem) => { return { pk: elem.pk, @@ -799,6 +821,7 @@ function mapAdjustmentItems(items: any[]) { batch: elem.batch || undefined, status: elem.status || undefined, packaging: elem.packaging || undefined, + merge: elem.merge ?? mergeDefault ?? false, obj: elem }; }); @@ -806,7 +829,10 @@ function mapAdjustmentItems(items: any[]) { return mappedItems; } -function stockTransferFields(items: any[]): ApiFormFieldSet { +function stockTransferFields( + items: any[], + mergeDefault = false +): ApiFormFieldSet { if (!items) { return {}; } @@ -819,7 +845,7 @@ function stockTransferFields(items: any[]): ApiFormFieldSet { const fields: ApiFormFieldSet = { items: { field_type: 'table', - value: mapAdjustmentItems(items), + value: mapAdjustmentItems(items, mergeDefault), modelRenderer: (row: TableFieldRowProps) => { const record = records[row.item.pk]; @@ -829,6 +855,7 @@ function stockTransferFields(items: any[]): ApiFormFieldSet { transfer changeStatus setMax + transferMerge key={record.pk} record={record} /> @@ -1379,9 +1406,20 @@ export function useRemoveStockItem(props: StockOperationProps) { } export function useTransferStockItem(props: StockOperationProps) { + const globalSettings = useGlobalSettingsState(); + + const fieldGenerator = useCallback( + (items: any[]) => + stockTransferFields( + items, + globalSettings.isSet('STOCK_MERGE_ON_TRANSFER') + ), + [globalSettings] + ); + return useStockOperationModal({ ...props, - fieldGenerator: stockTransferFields, + fieldGenerator: fieldGenerator, endpoint: ApiEndpoints.stock_transfer, title: t`Transfer Stock`, successMessage: t`Stock transferred`, diff --git a/src/frontend/src/pages/Index/Settings/SystemSettings.tsx b/src/frontend/src/pages/Index/Settings/SystemSettings.tsx index c272fddaed..f342daccb5 100644 --- a/src/frontend/src/pages/Index/Settings/SystemSettings.tsx +++ b/src/frontend/src/pages/Index/Settings/SystemSettings.tsx @@ -273,6 +273,7 @@ export default function SystemSettings() { 'STOCK_SHOW_INSTALLED_ITEMS', 'STOCK_ENFORCE_BOM_INSTALLATION', 'STOCK_ALLOW_OUT_OF_STOCK_TRANSFER', + 'STOCK_MERGE_ON_TRANSFER', 'TEST_STATION_DATA' ]} /> From d1f91e8b4ed08dd61076fcd82f7c895a060c5caa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 25 Jun 2026 10:51:57 +1000 Subject: [PATCH 28/40] New Crowdin translations by GitHub Action (#12238) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../InvenTree/locale/ar/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/bg/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/cs/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/da/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/de/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/el/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/en/LC_MESSAGES/django.po | 438 ++++++++--------- .../InvenTree/locale/es/LC_MESSAGES/django.po | 440 +++++++++--------- .../locale/es_MX/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/et/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/fa/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/fi/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/fr/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/he/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/hi/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/hu/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/id/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/it/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/ja/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/ko/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/lt/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/lv/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/nl/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/no/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/pl/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/pt/LC_MESSAGES/django.po | 440 +++++++++--------- .../locale/pt_BR/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/ro/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/ru/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/sk/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/sl/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/sr/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/sv/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/th/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/tr/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/uk/LC_MESSAGES/django.po | 440 +++++++++--------- .../InvenTree/locale/vi/LC_MESSAGES/django.po | 440 +++++++++--------- .../locale/zh_Hans/LC_MESSAGES/django.po | 440 +++++++++--------- .../locale/zh_Hant/LC_MESSAGES/django.po | 440 +++++++++--------- src/frontend/src/locales/ar/messages.po | 287 ++++++------ src/frontend/src/locales/bg/messages.po | 287 ++++++------ src/frontend/src/locales/cs/messages.po | 287 ++++++------ src/frontend/src/locales/da/messages.po | 287 ++++++------ src/frontend/src/locales/de/messages.po | 287 ++++++------ src/frontend/src/locales/el/messages.po | 287 ++++++------ src/frontend/src/locales/en/messages.po | 285 ++++++------ src/frontend/src/locales/es/messages.po | 287 ++++++------ src/frontend/src/locales/es_MX/messages.po | 287 ++++++------ src/frontend/src/locales/et/messages.po | 287 ++++++------ src/frontend/src/locales/fa/messages.po | 287 ++++++------ src/frontend/src/locales/fi/messages.po | 287 ++++++------ src/frontend/src/locales/fr/messages.po | 287 ++++++------ src/frontend/src/locales/he/messages.po | 287 ++++++------ src/frontend/src/locales/hi/messages.po | 287 ++++++------ src/frontend/src/locales/hu/messages.po | 287 ++++++------ src/frontend/src/locales/id/messages.po | 287 ++++++------ src/frontend/src/locales/it/messages.po | 287 ++++++------ src/frontend/src/locales/ja/messages.po | 287 ++++++------ src/frontend/src/locales/ko/messages.po | 287 ++++++------ src/frontend/src/locales/lt/messages.po | 287 ++++++------ src/frontend/src/locales/lv/messages.po | 287 ++++++------ src/frontend/src/locales/nl/messages.po | 287 ++++++------ src/frontend/src/locales/no/messages.po | 287 ++++++------ src/frontend/src/locales/pl/messages.po | 287 ++++++------ src/frontend/src/locales/pt/messages.po | 287 ++++++------ src/frontend/src/locales/pt_BR/messages.po | 287 ++++++------ src/frontend/src/locales/ro/messages.po | 287 ++++++------ src/frontend/src/locales/ru/messages.po | 287 ++++++------ src/frontend/src/locales/sk/messages.po | 287 ++++++------ src/frontend/src/locales/sl/messages.po | 287 ++++++------ src/frontend/src/locales/sr/messages.po | 287 ++++++------ src/frontend/src/locales/sv/messages.po | 287 ++++++------ src/frontend/src/locales/th/messages.po | 287 ++++++------ src/frontend/src/locales/tr/messages.po | 287 ++++++------ src/frontend/src/locales/uk/messages.po | 287 ++++++------ src/frontend/src/locales/vi/messages.po | 287 ++++++------ src/frontend/src/locales/zh_Hans/messages.po | 287 ++++++------ src/frontend/src/locales/zh_Hant/messages.po | 287 ++++++------ 78 files changed, 14428 insertions(+), 13921 deletions(-) diff --git a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po index 55d5fd2370..42d29c23fd 100644 --- a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Arabic\n" "Language: ar_SA\n" @@ -109,9 +109,9 @@ msgstr "" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "ملاحظات" @@ -550,13 +550,13 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "" msgid "Allocated" msgstr "" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "" @@ -2673,8 +2673,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po index d90b2d90f6..525e23765e 100644 --- a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" "Language: bg_BG\n" @@ -109,9 +109,9 @@ msgstr "" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Бележки" @@ -550,13 +550,13 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "" msgid "Allocated" msgstr "" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "" @@ -2673,8 +2673,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po index 3b6dedbd31..56fd688344 100644 --- a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Czech\n" "Language: cs_CZ\n" @@ -109,9 +109,9 @@ msgstr "Neplaté desetinné číslo" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Poznámky" @@ -550,13 +550,13 @@ msgstr "Stav objednávky" msgid "Parent Build" msgstr "Nadřazená sestava" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "Zahrnout varianty" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Objednávka nevyřízená" msgid "Allocated" msgstr "Přiděleno" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Spotřebováno" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Dostupné" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Na objednávku" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "Sestava nenalezena" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Výrobní příkaz" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Lokace" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "Výstup" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Filtrovat podle ID výstupní položky zásoby. Použijte 'null' pro nalezení odinstalovaných položek sestavení." @@ -1830,7 +1830,7 @@ msgstr "Definice" msgid "Unit definition" msgstr "Definice jednotky" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Příloha" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "Logický klíč statusu, který je rovný tomuto vlastnímu statusu v podnikové logice" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Hodnota" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "Data z odezvy z čárového kódu" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Výsledek" @@ -2673,8 +2673,8 @@ msgstr "Jak často aktualizovat směnné kurzy (pro vypnutí nastavte na nulu)" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "dny" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "Umožnit přesun skladových položek, které nejsou na skladě, mezi skladovými místy" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Referenční vzor objednávky sestavy" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Požadovaný vzor pro generování referenčního pole Objednávka sestavy" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "Vyžadovat odpovědného vlastníka" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "Ke každé objednávce musí být přiřazen odpovědný vlastník" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "Vyžadovat aktivní díl" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "Zabránit vytváření výrobních příkazů pro neaktivní díly" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "Vyžadovat uzamčený díl" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "Zabránit vytváření výrobních příkazů pro odemčené díly" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "Vyžadovat schválený kusovník" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "Zabránit vytváření výrobních příkazů, dokud není schválen kusovník" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "Vyžadovat uzavření podobjednávek" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "Zabránit dokončení výrobního příkazu dokud nebudou uzavřeny všechny podpříkazy" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "Externí výrobní příkazy" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "Povolit funkcionalitu externích výrobních příkazů" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "Vyžadovat externí výrobní příkazy" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "Vyžadovat externí výrobní příkaz při objenání montovaných dílů od externího dodavatele" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "Blokovat, dokud testy neprojdou" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Zabránit dokončení výstupů sestavy, dokud neprojdou všechny požadované testy" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "Povolit vracení objednávek" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Povolit funkci vrácení objednávky v uživatelském rozhraní" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Referenční vzor návratové objednávky" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "Požadovaný vzor pro vygenerování referenčního pole Návratová objednávka" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Úprava dokončených návratových objednávek" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Umožnit úpravu návratových objednávek po jejich dokončení" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Referenční vzor prodejní objednávky" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Požadovaný vzor pro generování referenčního pole prodejní objednávky" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Výchozí přeprava prodejní objednávky" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Povolit vytvoření výchozí přepravy s prodejními objednávkami" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Úprava dokončených prodejních objednávek" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Umožnit úpravy prodejních objednávek po jejich odeslání nebo dokončení" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "Zásilka vyžaduje kontrolu" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "Zabránit dokončení zásilek dokud nebudou zkontrolovány položky" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "Označit odeslané objednávky jako dokončené" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Prodejní objednávky označené jako odeslané se automaticky dokončí a obejdou stav „odesláno“" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "Povolit převodní příkazy" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "Povolit funkci převodních příkazů v uživatelském rozhraní" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "Referenční vzor převodního příkazu" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "Požadovaný vzor pro generování pole převodního příkazu" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "Blokovat nekompletné testy položky" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "Zabránit přiřazení skladových položek do prodejních objednávek, pokud jsou požadované testy neúplné" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Referenční vzor nákupní objednávky" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Požadovaný vzor pro generování referenčního pole nákupní objednávky" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Úprava dokončených nákupních objednávek" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Umožnit úpravy nákupních objednávek po jejich odeslání nebo dokončení" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "Převést měnu" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "Převést hodnotu předmětu na základní měnu při příjmu zásob" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Automatické dokončování nákupních objednávek" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Automaticky označit nákupní objednávky jako kompletní, jakmile jsou přijaty všechny řádkové položky" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Povolit pole zapomenutého hesla" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Povolení funkce zapomenutého hesla na přihlašovacích stránkách" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Povolit registrace" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Povolit samoregistraci uživatelů na přihlašovacích stránkách" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "Povolit SSO" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "Povolit SSO na přihlašovacích stránkách" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "Povolit SSO registraci" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Povolit samoregistraci uživatelů prostřednictvím SSO na přihlašovacích stránkách" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "Povolit synchronizaci SSO skupin" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "Povolit synchronizaci InvenTree skupin se skupinami poskytnutými IdP" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "klíč SSO skupiny" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "Název deklarace skupinového atributu poskytnutého IdP" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "mapa SSO skupiny" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "Mapování ze skupin SSO do místních InvenTree skupin. Pokud místní skupina neexistuje, bude vytvořena." -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "Odstranit skupiny mimo SSO" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "Zdali mají být skupiny přiřazené uživateli odstraněny pokud nemají backend of IdP. Vypnutí tohoto nastavení můžu způsobit problémy se zabezpečením" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "Vyžadován e-mail" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Požadovat, aby uživatel při registraci zadal e-mail" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "Automaticky vyplnit SSO uživatele" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Automaticky vyplnit údaje o uživateli z údajů o účtu SSO" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "Mail dvakrát" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "Při registraci dvakrát požádat uživatele o zadání e-mailu" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Heslo dvakrát" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "Při registraci dvakrát požádat uživatele o heslo" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Povolené domény" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Omezit registraci na určité domény (oddělené čárkou a začínající @)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Skupina při registraci" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "Skupina do které jsou nový uživatelé přiřazeni při registraci. Pokud je povolena synchronizace SSO skupin, tato skupina lze přiřadit pouze pokud nezle přiřadit skupinu od IdP." -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "Vynutit MFA" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Uživatelé musí používat vícefaktorové zabezpečení." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "Povolení tohoto nastavení bude vyžadovat více fázové ověření u všech uživatelů. Všechny relace budou okamžitě ukončeny." -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Zkontrolovat pluginy při spuštění" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Zkontrolujte, zda jsou při spuštění nainstalovány všechny pluginy - povolit v kontejnerových prostředích" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Zkontrolovat aktualizace pluginů" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "Povolit pravidelné kontroly aktualizací nainstalovaných pluginů" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "Povolit integraci URL" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "Povolit plug-inům přidávat trasy URL" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Povolit integraci navigace" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Povolit integrování pluginů do navigace" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "Povolit integraci aplikací" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Povolit pluginům přidávát aplikace" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Povolit integraci plánu" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Povolit pluginům spouštění naplánovaných úloh" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Povolit integraci událostí" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Povolit pluginům reagovat na interní události" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "Povolit rozhraní intergace" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "Povolit integrování pluginů do uživatelského rozhraní" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "Povolit integraci emailu" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "Povolit pluginům zpracování odchozích/příchozích emailů" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "Povolit projektové kódy" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "Povolit projektové kódy pro sledování projektů" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "Povolit inventuru" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "Povolit funkcionalitu pro zaznamenávání historických stavů zásob a hodnoty" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Vyloučit externí umístění" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Vyloučit skladové položky z externích lokací z inventury" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Perioda automatické inventury" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "Počet dní mezi automatickým záznamem inventury" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "Odstranit staré záznamy inventur" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "Odstranit záznamy inventur starší než zadaný počet dní" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "Interval odstranění inventury" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "Záznamy inventur budou odstraněny po zadaném počtu dní" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "Odstranit staré záznamy sledování zásob" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "Odstranit staré záznamy sledování zásob starší než zadaný počet dní" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "Interval odstranění sledování zásob" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "Záznamy sledování zásob budou odstraněny po zadaném počtu dní" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Zobrazit celá jména uživatelů" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Zobrazit plná jména uživatelů namísto uživatelských jmen" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "Zobrazit uživatelské profily" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "Zobrazit profily uživatelů na jejich profilové stránce" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "Týden začíná" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "Počáteční den v týdnu pro zobrazení v zobrazení kalendáře" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "Neděle" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "Pondělí" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "Úterý" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "Středa" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "Čtvrtek" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "Pátek" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "Sobota" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "Horizont kalendáře" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "Počet měsíců do budoucna, které se zobrazí v zobrazení kalendáře" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "měsíce" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "Povolit data zkušební stanice" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "Povolit sběr dat ze zkušební stanice pro výsledky testů" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "Povolit ping stroje" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "Povolit pravidelný úkol pingu registrovaných strojů pro kontrolu jejich stavu" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "Celkové dostupné zásoby v době inventury" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Datum" @@ -8084,77 +8092,77 @@ msgstr "Poskytuje podporu pro skenování TME čárových kódů" msgid "The Supplier which acts as 'TME'" msgstr "Dodavatel, který funguje jako 'TME'" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "Pouze superuživatelské účty mohou spravovat pluginy" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "Instalace pluginu je zakázana" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "Není k dispozici žádný název balíčku nebo URL pro instalaci" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "Neplatné znaky v názvu balíčku nebo v URL" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "Plugin byl úspěšně nainstalován" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Plugin nainstalovaný do {path}" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "Plugin nebyl nalezen v registru" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "Plugin není plugin balíček" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "Název balíčku pluginu nebyl nalezen" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "Pouze pracovníci mohou spravovat pluginy" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "Odinstalace pluginu je zakázána" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "Plugin nemůže být odinstalován, protože je aktuálně aktivní" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "Plugin nemůže být odinstalován, protože je povinný" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "Plugin nemůže být odinstalován, protože to je vzorový plugin" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "Plugin nemůže být odinstalován, protože to je vestavěný plugin" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "Plugin není nainstalován" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "Inslalace pluginu nebyla nalezena" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "Plugin odinstalován úspěšně" @@ -8206,21 +8214,21 @@ msgstr "Balíčkový plugin" msgid "Plugin" msgstr "Plugin" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Nebyl nalezen žádný autor" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "Plugin '{p}' není kompatibilní s aktuální verzí InvenTree {v}" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "Plugin vyžaduje alespoň verzi {v}" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "Plugin vyžaduje nanejvýš verzi {v}" @@ -9218,7 +9226,7 @@ msgstr "Množství neodpovídá sériovým číslům" msgid "Cannot assign stock to structural location" msgstr "Nelze přiřadit zásoby ke strukturálnímu umístění" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "Testovací šablona neexistuje" @@ -9238,7 +9246,7 @@ msgstr "Skladová položka obsahuje jiné položky" msgid "Stock item has been assigned to a customer" msgstr "Skladová položka byla přidělena zákazníkovi" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "Skladová položka je ve výrobě" @@ -9262,71 +9270,71 @@ msgstr "Skladové položky musí odkazovat na stejný díl dodavatele" msgid "Stock status codes must match" msgstr "Kódy stavu zásob se musí shodovat" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "Zásobová položka nemůže být přesunuta, protože není skladem" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "Sledování skladových položek" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Poznámky k záznamu" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "Výsledek testu skladové položky" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Pro tuto zkoušku musí být uvedena hodnota" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "Pro tento test musí být nahrána příloha" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "Neplatná hodnota pro tento test" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Výsledek testu" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Výstupní hodnota testu" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Příloha výsledků testu" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Poznámky testu" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "Testovací stanice" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "Identifikátor testovací stanice kde byl test proveden" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "Začátek" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "Čas začátku testu" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "Ukončeno" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "Čas dokončení testu" @@ -9440,8 +9448,8 @@ msgstr "Nebyla poskytnuta žádná skladová položka" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Množství nesmí překročit dostupné skladové množství ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Cílové skladové umístění" @@ -9565,7 +9573,7 @@ msgstr "Vybraná společnost není zákazník" msgid "Stock assignment notes" msgstr "Poznámky ke skladové položce" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "Musí být poskytnut seznam skladových položek" @@ -9613,27 +9621,31 @@ msgstr "Skladová položka je již na skladě" msgid "Quantity must not be negative" msgstr "Množství nesmí být záporné" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Poznámky ke skladovací transakci" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "Nastavit umístění zásob pro počítané položky (volitelné)" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "Sloučit do existující zásoby" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Poznámky ke skladovací transakci" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "Nastavit umístění zásob pro počítané položky (volitelné)" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "Sloučit vrácené položky do existujích položek, pokud je to možné" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "Další sériové číslo" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "Předchozí sériové číslo" diff --git a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po index 1689042d54..3a95a591b3 100644 --- a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Danish\n" "Language: da_DK\n" @@ -109,9 +109,9 @@ msgstr "Ugyldig decimalværdi" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Bemærkninger" @@ -550,13 +550,13 @@ msgstr "Ordre status" msgid "Parent Build" msgstr "Overordnet produktion" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Ordre Udestående" msgid "Allocated" msgstr "Allokeret" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Tilgængelig" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Produktionsordre" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Lokation" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Vedhæftning" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Værdi" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "" @@ -2673,8 +2673,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po index 9a26d021ad..48f0fd79f4 100644 --- a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -109,9 +109,9 @@ msgstr "Ungültiger Dezimalwert" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Notizen" @@ -550,13 +550,13 @@ msgstr "Bestellstatus" msgid "Parent Build" msgstr "Eltern-Bauauftrag" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "Varianten einschließen" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Offene Bestellung" msgid "Allocated" msgstr "Zugeordnet" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Verbraucht" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Verfügbar" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Bestellt" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Bauauftrag" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Lagerort" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "Bauprodukt" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "Definition" msgid "Unit definition" msgstr "Einheitsdefinition" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Anhang" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Wert" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Ergebnis" @@ -2673,8 +2673,8 @@ msgstr "Wie oft Wechselkurse aktualisiert werden sollen (auf Null zum Deaktivier #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "Tage" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "Lagerartikel, die nicht auf Lager sind, können zwischen Lagerstandorten übertragen werden" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Bauauftragsreferenz-Muster" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Bauaufträge" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "Verantwortlicher Besitzer erforderlich" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "Jeder Bestellung muss ein verantwortlicher Besitzer zugewiesen werden" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "Blockieren bis Test bestanden" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Verhindert die Fertigstellung bis alle erforderlichen Tests bestanden sind" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "Rücksendungen aktivieren" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Aktivieren der Rücksendung-Funktion in der Benutzeroberfläche" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Referenz Muster für Rücksendungen" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Rücksendungen" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Abgeschlossene Rücksendungen bearbeiten" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Bearbeitung von Rücksendungen nach Abschluss erlauben" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Auftragsreferenz-Muster" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Aufträge" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Auftrag Standardsendung" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Erstelle eine Standardsendung für Aufträge" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Abgeschlossene Aufträge bearbeiten" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Bearbeitung von Aufträgen nach Versand oder Abschluss erlauben" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "Versendete Bestellungen als abgeschlossen markieren" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Als versendet markierte Aufträge werden automatisch abgeschlossen und überspringen den Status \"Versandt\"" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Bestellungsreferenz-Muster" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Bestellungen" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Abgeschlossene Einkaufsaufträge bearbeiten" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Bearbeitung von Einkaufsaufträgen nach Versand oder Abschluss erlauben" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Bestellungen automatisch abschließen" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Bestellung automatisch als abgeschlossen markieren, wenn der Empfang aller Artikel bestätigt wurde" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Passwort vergessen aktivieren" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Registrierung erlauben" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "SSO aktivieren" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "SSO auf den Anmeldeseiten aktivieren" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "SSO Selbstregistrierung aktivieren" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Selbstregistrierung über SSO für Benutzer auf den Anmeldeseiten aktivieren" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "SSO Gruppensynchronisation aktivieren" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "SSO Gruppenschlüssel" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "Email-Adresse erforderlich" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "SSO-Benutzer automatisch ausfüllen" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "E-Mail zweimal" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "Bei der Registrierung den Benutzer zweimal nach der E-Mail-Adresse fragen" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Passwort zweimal" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Erlaubte Domains" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Anmeldung auf bestimmte Domänen beschränken (kommagetrennt, beginnend mit @)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Gruppe bei Registrierung" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "MFA erzwingen" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Plugins beim Start prüfen" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Beim Start überprüfen, ob alle Plugins installiert sind - Für Container aktivieren" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Nach Plugin-Aktualisierungen suchen" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "Periodische Überprüfungen auf Updates für installierte Plugins aktivieren" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "URL-Integration aktivieren" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "Plugins zum Hinzufügen von URLs aktivieren" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Navigations-Integration aktivieren" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Plugins zur Integration in die Navigation aktivieren" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "App-Integration aktivieren" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Plugins zum Hinzufügen von Apps aktivieren" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Terminplan-Integration aktivieren" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Geplante Aufgaben aktivieren" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Ereignis-Integration aktivieren" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Externe Standorte ausschließen" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Automatische Inventur-Periode" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Vollständige Namen von Benutzern anzeigen" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Vollständigen Namen von Benutzern anstatt Benutzername anzeigen" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "Teststation-Daten aktivieren" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "Teststation-Datenerfassung für Testergebnisse aktivieren" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Datum" @@ -8084,77 +8092,77 @@ msgstr "Unterstützt das Scannen von TME-Barcodes" msgid "The Supplier which acts as 'TME'" msgstr "Der Lieferant, der als 'TME' fungiert" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "Plugin-Installation ist deaktiviert" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "Plugin wurde erfolgreich installiert" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Plugin installiert in {path}" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "Plugin wurde nicht in der Registry gefunden" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "Plugin ist kein gepacktes Plugin" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "Plugin-Paketname nicht gefunden" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "Nur Mitarbeiter können Plugins verwalten" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "Plugin-Deinstallation ist deaktiviert" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "Plugin kann nicht deinstalliert werden, da es momentan aktiv ist" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "Plugin erfolgreich deinstallieren" @@ -8206,21 +8214,21 @@ msgstr "Paket-Plugin" msgid "Plugin" msgstr "Plugin" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Kein Autor gefunden" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "Plugin '{p}' ist nicht kompatibel mit der aktuellen InvenTree Version {v}" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "Plugin benötigt mindestens Version {v}" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "Plugin benötigt maximal Version {v}" @@ -9218,7 +9226,7 @@ msgstr "Anzahl stimmt nicht mit den Seriennummern überein" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "Testvorlage existiert nicht" @@ -9238,7 +9246,7 @@ msgstr "Lagerartikel enthält andere Artikel" msgid "Stock item has been assigned to a customer" msgstr "Artikel wurde einem Kunden zugewiesen" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "Lagerartikel wird aktuell produziert" @@ -9262,71 +9270,71 @@ msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen" msgid "Stock status codes must match" msgstr "Status-Codes müssen zusammenpassen" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagerartikel kann nicht bewegt werden, da kein Bestand vorhanden ist" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Wert muss für diesen Test angegeben werden" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "Anhang muss für diesen Test hochgeladen werden" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Testergebnis" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Test Ausgabe Wert" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Test Ergebnis Anhang" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Test Notizen" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "Teststation" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "Der Bezeichner der Teststation, in der der Test durchgeführt wurde" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "Gestartet" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "Der Zeitstempel des Teststarts" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "Fertiggestellt" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "Der Zeitstempel der Test-Beendigung" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Anzahl darf nicht die verfügbare Menge überschreiten ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Ziel-Bestand" @@ -9565,7 +9573,7 @@ msgstr "Ausgewählte Firma ist kein Kunde" msgid "Stock assignment notes" msgstr "Notizen zur Lagerzuordnung" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "Eine Liste der Lagerbestände muss angegeben werden" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Bestandsbewegungsnotizen" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Bestandsbewegungsnotizen" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "Nächste Seriennummer" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "Vorherige Seriennummer" diff --git a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po index 15494a6421..2cb2473cca 100644 --- a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -109,9 +109,9 @@ msgstr "Μη έγκυρη δεκαδική τιμή" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Σημειώσεις" @@ -550,13 +550,13 @@ msgstr "Κατάσταση παραγγελίας" msgid "Parent Build" msgstr "Γονική Κατασκευή" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "Συμπερίληψη παραλλαγών" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Εκκρεμής παραγγελία" msgid "Allocated" msgstr "Κατανεμημένο" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Καταναλωμένο" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Διαθέσιμο" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Σε παραγγελία" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Σειρά Κατασκευής" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Τοποθεσία" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "Έξοδος" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Φιλτράρισμα με βάση το ID του αποθέματος εξόδου. Χρησιμοποιήστε 'null' για να βρείτε μη εγκατεστημένα στοιχεία κατασκευής" @@ -1830,7 +1830,7 @@ msgstr "Ορισμός" msgid "Unit definition" msgstr "Ορισμός μονάδας" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Συνημμένο" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "Λογικό κλειδί κατάστασης που είναι ισοδύναμο με αυτή την προσαρμοσμένη κατάσταση στη λογική της εφαρμογής" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Τιμή" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "Δεδομένα απόκρισης από τη σάρωση barcode" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Αποτέλεσμα" @@ -2673,8 +2673,8 @@ msgstr "Κάθε πότε θα ενημερώνονται οι συναλλαγ #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "ημέρες" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "Να επιτρέπεται η μεταφορά στοιχείων αποθέματος που δεν είναι διαθέσιμα μεταξύ τοποθεσιών αποθέματος" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Πρότυπο αναφοράς εντολής κατασκευής" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Απαιτούμενο πρότυπο για τη δημιουργία του πεδίου αναφοράς εντολής κατασκευής" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "Απαίτηση υπεύθυνου κατόχου" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "Πρέπει να οριστεί υπεύθυνος ιδιοκτήτης για κάθε παραγγελία" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "Απαίτηση ενεργού προϊόντος" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "Αποτροπή δημιουργίας εντολής παραγωγής για ανενεργά προϊόντα" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "Απαίτηση κλειδωμένου προϊόντος" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "Αποτροπή δημιουργίας εντολής παραγωγής για ξεκλείδωτα προϊόντα" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "Απαίτηση έγκυρης BOM" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "Αποτροπή δημιουργίας εντολής παραγωγής αν δεν έχει επικυρωθεί η BOM" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "Απαίτηση κλειστών θυγατρικών εντολών" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "Αποτροπή ολοκλήρωσης εντολής παραγωγής μέχρι να κλείσουν όλες οι θυγατρικές εντολές" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "Εξωτερικές εντολές παραγωγής" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "Ενεργοποίηση λειτουργίας εξωτερικών εντολών παραγωγής" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "Φραγή έως ότου περάσουν τα τεστ" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Αποτροπή ολοκλήρωσης εξόδων παραγωγής μέχρι να περάσουν όλα τα απαιτούμενα τεστ" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "Ενεργοποίηση εντολών επιστροφής" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Ενεργοποίηση λειτουργίας εντολών επιστροφής στη διεπαφή χρήστη" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Μοτίβο αναφοράς εντολής επιστροφής" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "Απαιτούμενο μοτίβο για τη δημιουργία του πεδίου αναφοράς εντολής επιστροφής" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Επεξεργασία ολοκληρωμένων εντολών επιστροφής" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Επιτρέπει την επεξεργασία εντολών επιστροφής μετά την ολοκλήρωσή τους" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Μοτίβο αναφοράς εντολής πώλησης" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Απαιτούμενο μοτίβο για τη δημιουργία του πεδίου αναφοράς εντολής πώλησης" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Προεπιλεγμένη αποστολή εντολής πώλησης" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Ενεργοποίηση δημιουργίας προεπιλεγμένης αποστολής με τις εντολές πώλησης" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Επεξεργασία ολοκληρωμένων εντολών πώλησης" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Επιτρέπει την επεξεργασία εντολών πώλησης μετά την αποστολή ή ολοκλήρωσή τους" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "Η αποστολή απαιτεί έλεγχο" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "Αποτροπή ολοκλήρωσης αποστολών μέχρι να ελεγχθούν τα είδη" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "Σήμανση αποσταλμένων εντολών ως ολοκληρωμένων" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Οι εντολές πώλησης που επισημαίνονται ως αποσταλμένες ολοκληρώνονται αυτόματα, παρακάμπτοντας την κατάσταση «απεσταλμένο»" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Μοτίβο αναφοράς εντολής αγοράς" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Απαιτούμενο μοτίβο για τη δημιουργία του πεδίου αναφοράς εντολής αγοράς" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Επεξεργασία ολοκληρωμένων εντολών αγοράς" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Επιτρέπει την επεξεργασία εντολών αγοράς μετά την αποστολή ή ολοκλήρωσή τους" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "Μετατροπή νομίσματος" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "Μετατροπή της αξίας είδους στο βασικό νόμισμα κατά την παραλαβή αποθέματος" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Αυτόματη ολοκλήρωση εντολών αγοράς" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Αυτόματη σήμανση εντολών αγοράς ως ολοκληρωμένων όταν έχουν παραληφθεί όλα τα είδη" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Ενεργοποίηση υπενθύμισης κωδικού" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Ενεργοποίηση λειτουργίας υπενθύμισης κωδικού στις σελίδες σύνδεσης" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Ενεργοποίηση εγγραφής" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Ενεργοποίηση αυτοεγγραφής χρηστών στις σελίδες σύνδεσης" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "Ενεργοποίηση SSO" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "Ενεργοποίηση SSO στις σελίδες σύνδεσης" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "Ενεργοποίηση εγγραφής μέσω SSO" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Ενεργοποίηση αυτοεγγραφής μέσω SSO στις σελίδες σύνδεσης" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "Ενεργοποίηση συγχρονισμού ομάδων SSO" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "Ενεργοποίηση συγχρονισμού ομάδων InvenTree με ομάδες από τον IdP" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "Κλειδί ομάδας SSO" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "Το όνομα του πεδίου ομάδων που παρέχεται από τον IdP" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "Χάρτης ομάδων SSO" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "Χαρτογράφηση ομάδων SSO σε τοπικές ομάδες InvenTree. Αν η ομάδα δεν υπάρχει, θα δημιουργηθεί." -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "Αφαίρεση ομάδων εκτός SSO" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "Αν πρέπει να αφαιρούνται ομάδες από τον χρήστη όταν δεν παρέχονται από τον IdP. Η απενεργοποίηση μπορεί να προκαλέσει προβλήματα ασφαλείας" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "Απαίτηση email" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Απαίτηση συμπλήρωσης email κατά την εγγραφή" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "Αυτόματη συμπλήρωση χρηστών SSO" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Αυτόματη συμπλήρωση στοιχείων χρήστη από τα δεδομένα SSO" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "Email δύο φορές" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "Κατά την εγγραφή ζητείται το email δύο φορές" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Κωδικός δύο φορές" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "Κατά την εγγραφή ζητείται ο κωδικός δύο φορές" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Επιτρεπόμενοι τομείς" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Περιορισμός εγγραφής σε συγκεκριμένους τομείς (χωρισμένοι με κόμμα, ξεκινούν με @)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Ομάδα κατά την εγγραφή" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "Ομάδα στην οποία εκχωρούνται οι νέοι χρήστες κατά την εγγραφή. Με ενεργό SSO sync, χρησιμοποιείται μόνο όταν δεν μπορεί να δοθεί ομάδα από τον IdP." -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "Επιβολή MFA" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Οι χρήστες πρέπει να χρησιμοποιούν πολυπαραγοντική ασφάλεια" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Έλεγχος plugins κατά την εκκίνηση" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Έλεγχος ότι όλα τα plugins είναι εγκατεστημένα κατά την εκκίνηση – χρήσιμο σε container περιβάλλοντα" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Έλεγχος για ενημερώσεις plugin" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "Ενεργοποίηση περιοδικών ελέγχων για ενημερώσεις εγκατεστημένων plugins" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "Ενεργοποίηση URL integration" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "Ενεργοποίηση προσθήκης URL routes από plugins" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Ενεργοποίηση ενσωμάτωσης στην πλοήγηση" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Ενεργοποίηση ενσωμάτωσης των plugins στην πλοήγηση" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "Ενεργοποίηση ενσωμάτωσης εφαρμογών" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Ενεργοποίηση προσθήκης εφαρμογών από plugins" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Ενεργοποίηση ενσωμάτωσης χρονοπρογραμματισμού" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Ενεργοποίηση εκτέλεσης χρονοπρογραμματισμένων εργασιών από plugins" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Ενεργοποίηση ενσωμάτωσης γεγονότων" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Ενεργοποίηση απόκρισης plugins σε εσωτερικά γεγονότα" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "Ενεργοποίηση ενσωμάτωσης διεπαφής" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "Ενεργοποίηση ενσωμάτωσης plugins στη διεπαφή χρήστη" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "Ενεργοποίηση ενσωμάτωσης email" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "Ενεργοποίηση επεξεργασίας εισερχόμενων/εξερχόμενων emails από plugins" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "Ενεργοποίηση κωδικών έργου" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "Ενεργοποίηση κωδικών έργου για την παρακολούθηση projects" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "Ενεργοποίηση καταγραφής ιστορικών επιπέδων και αξιών αποθέματος" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Εξαίρεση εξωτερικών τοποθεσιών" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Περίοδος αυτόματης απογραφής" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Εμφάνιση πλήρους ονόματος χρηστών" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Εμφάνιση του πλήρους ονόματος των χρηστών αντί για το όνομα χρήστη" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "Εμφάνιση προφίλ χρηστών" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "Εμφάνιση προφίλ χρηστών στη σελίδα προφίλ τους" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "Ενεργοποίηση δεδομένων σταθμού δοκιμών" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "Ενεργοποίηση συλλογής δεδομένων σταθμού δοκιμών για τα αποτελέσματα δοκιμών" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "Ενεργοποίηση ping μηχανημάτων" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "Ενεργοποίηση περιοδικού ping των καταχωρημένων μηχανημάτων για έλεγχο της κατάστασής τους" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "Συνολικό διαθέσιμο απόθεμα κατά τον χρόνο απογραφής" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Ημερομηνία" @@ -8084,77 +8092,77 @@ msgstr "Παρέχει υποστήριξη για σάρωση barcodes TME" msgid "The Supplier which acts as 'TME'" msgstr "Ο προμηθευτής που λειτουργεί ως 'TME'" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "Η εγκατάσταση πρόσθετων είναι απενεργοποιημένη" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "Το πρόσθετο εγκαταστάθηκε με επιτυχία" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Το πρόσθετο εγκαταστάθηκε στο {path}" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "Το πρόσθετο δεν βρέθηκε στο μητρώο" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "Το πρόσθετο δεν είναι πακεταρισμένο πρόσθετο" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "Δεν βρέθηκε όνομα πακέτου πρόσθετου" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "Μόνο οι χρήστες προσωπικού μπορούν να διαχειρίζονται πρόσθετα" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "Η απεγκατάσταση προσθέτων είναι απενεργοποιημένη" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "Το πρόσθετο δεν μπορεί να απεγκατασταθεί καθώς είναι αυτή τη στιγμή ενεργό" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "Το πρόσθετο δεν μπορεί να απεγκατασταθεί καθώς είναι υποχρεωτικό" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "Το πρόσθετο δεν μπορεί να απεγκατασταθεί καθώς είναι δείγμα πρόσθετου" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "Το πρόσθετο δεν μπορεί να απεγκατασταθεί καθώς είναι ενσωματωμένο πρόσθετο" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "Το πρόσθετο δεν είναι εγκατεστημένο" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "Η εγκατάσταση του πρόσθετου δεν βρέθηκε" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "Το πρόσθετο απεγκαταστάθηκε με επιτυχία" @@ -8206,21 +8214,21 @@ msgstr "Πρόσθετο πακέτου" msgid "Plugin" msgstr "Πρόσθετο" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Δεν βρέθηκε δημιουργός" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "Το πρόσθετο '{p}' δεν είναι συμβατό με την τρέχουσα έκδοση InvenTree {v}" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "Το πρόσθετο απαιτεί τουλάχιστον την έκδοση {v}" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "Το πρόσθετο απαιτεί το πολύ την έκδοση {v}" @@ -9218,7 +9226,7 @@ msgstr "Η ποσότητα δεν αντιστοιχεί στους σειρι msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "Το πρότυπο δοκιμής δεν υπάρχει" @@ -9238,7 +9246,7 @@ msgstr "Το είδος αποθέματος περιέχει άλλα είδη" msgid "Stock item has been assigned to a customer" msgstr "Το είδος αποθέματος έχει αντιστοιχιστεί σε πελάτη" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "Το είδος αποθέματος βρίσκεται αυτή τη στιγμή σε παραγωγή" @@ -9262,71 +9270,71 @@ msgstr "Τα είδη αποθέματος πρέπει να αναφέροντ msgid "Stock status codes must match" msgstr "Οι κωδικοί κατάστασης αποθέματος πρέπει να ταιριάζουν" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "Το StockItem δεν μπορεί να μετακινηθεί καθώς δεν βρίσκεται σε απόθεμα" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "Ιχνηλάτηση είδους αποθέματος" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Σημειώσεις καταχώρησης" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "Αποτέλεσμα δοκιμής είδους αποθέματος" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Πρέπει να δοθεί τιμή για αυτή τη δοκιμή" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "Πρέπει να μεταφορτωθεί συνημμένο για αυτή τη δοκιμή" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "Μη έγκυρη τιμή για αυτή τη δοκιμή" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Αποτέλεσμα δοκιμής" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Τιμή αποτελέσματος δοκιμής" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Συνημμένο αποτελέσματος δοκιμής" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Σημειώσεις δοκιμής" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "Σταθμός δοκιμής" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "Ο αναγνωριστικός κωδικός του σταθμού δοκιμής όπου πραγματοποιήθηκε η δοκιμή" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "Έναρξη" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "Χρονική σήμανση έναρξης της δοκιμής" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "Ολοκλήρωση" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "Χρονική σήμανση λήξης της δοκιμής" @@ -9440,8 +9448,8 @@ msgstr "Δεν δόθηκε είδος αποθέματος" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Η ποσότητα δεν πρέπει να υπερβαίνει το διαθέσιμο απόθεμα ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Τοποθεσία προορισμού αποθέματος" @@ -9565,7 +9573,7 @@ msgstr "Η επιλεγμένη εταιρεία δεν είναι πελάτη msgid "Stock assignment notes" msgstr "Σημειώσεις απόδοσης αποθέματος" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "Πρέπει να δοθεί λίστα ειδών αποθέματος" @@ -9613,27 +9621,31 @@ msgstr "Το είδος βρίσκεται ήδη σε απόθεμα" msgid "Quantity must not be negative" msgstr "Η ποσότητα δεν πρέπει να είναι αρνητική" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Σημειώσεις συναλλαγής αποθέματος" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "Συγχώνευση με υπάρχον απόθεμα" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Σημειώσεις συναλλαγής αποθέματος" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "Συγχώνευση επιστρεφόμενων ειδών με υπάρχοντα είδη αποθέματος, όπου είναι δυνατό" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "Επόμενος σειριακός αριθμός" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "Προηγούμενος σειριακός αριθμός" diff --git a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po index 21d7d2ba02..b00403199c 100644 --- a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -110,9 +110,9 @@ msgstr "" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "" @@ -551,13 +551,13 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -693,52 +693,52 @@ msgstr "" msgid "Allocated" msgstr "" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1831,7 +1831,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "" @@ -1949,7 +1949,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "" @@ -2284,7 +2284,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "" @@ -2674,8 +2674,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "" @@ -3278,538 +3278,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6644,7 +6652,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "" @@ -8085,77 +8093,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8207,21 +8215,21 @@ msgstr "" msgid "Plugin" msgstr "" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9219,7 +9227,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9239,7 +9247,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9263,71 +9271,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9441,8 +9449,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9566,7 +9574,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9614,27 +9622,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po index addf67b5e2..6c2116cbd8 100644 --- a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -109,9 +109,9 @@ msgstr "Número decimal no válido" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Notas" @@ -550,13 +550,13 @@ msgstr "Estado del pedido" msgid "Parent Build" msgstr "Construcción o Armado Superior" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "Incluye Variantes" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Pedido pendiente" msgid "Allocated" msgstr "Asignadas" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Agotado" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Disponible" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "En pedido" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Construir órden" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Ubicación" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "Salida" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "Definición" msgid "Unit definition" msgstr "Definición de unidad" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Archivo adjunto" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Valor" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "Respuesta de datos del escaneo de código de barras" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Resultado" @@ -2673,8 +2673,8 @@ msgstr "Con qué frecuencia actualizar los tipos de cambio (establecer a cero pa #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "días" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "Permitir que artículos del inventario sin existencias puedan ser transferidos entre ubicaciones de inventario" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Patrón de Referencia de Ordenes de Armado" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Patrón requerido para generar el campo de referencia de la Orden de Ensamblado" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "Requerir Dueño Responsable" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "Se debe asignar un dueño responsable a cada orden" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "Requerir Parte Activa" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "Impedir la creación de órdenes de fabricación para partes inactivas" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "Requerir Parte Bloqueada" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "Impedir la creación de órdenes de fabricación para partes bloqueadas" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "Impedir la creación de órdenes de fabricación a menos que se haya validado la lista de materiales" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "Prevenir la finalización de la orden de construcción hasta que todas las órdenes hijas estén cerradas" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "Bloquear hasta que los Tests pasen" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Evitar que las construcciones sean completadas hasta que todas las pruebas requeridas pasen" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "Habilitar órdenes de devolución" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Habilitar la funcionalidad de orden de devolución en la interfaz de usuario" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Patrón de referencia de orden de devolución" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "Patrón requerido para generar el campo de referencia de devolución de la orden" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Editar ordenes de devolución completadas" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Permitir la edición de ordenes de devolución después de que hayan sido completados" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Patrón de Referencia de Ordenes de Venta" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Patrón requerido para generar el campo de referencia de la orden de venta" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Envío Predeterminado de Ordenes de Venta" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Habilitar la creación de envío predeterminado con ordenes de entrega" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Editar Ordenes de Venta Completados" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Permitir la edición de ordenes de venta después de que hayan sido enviados o completados" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "Marcar pedidos enviados como completados" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Los pedidos marcados como enviados se completarán automáticamente, evitando el estado de \"envío\"" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Patrón de Referencia de Orden de Compra" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Patrón requerido para generar el campo de referencia de la Orden de Compra" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Editar Ordenes de Compra Completados" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Permitir la edición de órdenes de venta después de que hayan sido enviados o completados" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "Convertir moneda" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Autocompletar Ordenes de compra" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Marcar automáticamente las órdenes de compra como completas cuando se reciben todos los artículos de línea" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Habilitar función de contraseña olvidada" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Activar la función olvido de contraseña en las páginas de inicio de sesión" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Habilitar registro" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Activar auto-registro para usuarios en las páginas de inicio de sesión" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "Habilitar SSO" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "Habilitar SSO en las páginas de inicio de sesión" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "Habilitar registro SSO" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Activar autoregistro a través de SSO para usuarios en las páginas de inicio de sesión" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "Habilitar sincronización de grupo SSO" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "Habilitar la sincronización de grupos de Inventree con grupos proporcionados por el IdP" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "Clave de grupo SSO" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "El nombre del atributo reclamado por el grupo proporcionado por el IdP" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "Mapa del grupo SSO" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "Un mapeo de grupos SSO a grupos de Inventree locales. Si el grupo local no existe, se creará." -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "Eliminar grupos fuera de SSO" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "Email requerido" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Requiere usuario para suministrar correo al registrarse" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "Auto-rellenar usuarios SSO" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Rellenar automáticamente los datos de usuario de la cuenta SSO" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "Correo dos veces" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "Al registrarse pregunte dos veces a los usuarios por su correo" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Contraseña dos veces" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "Al registrarse, preguntar dos veces a los usuarios por su contraseña" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Dominios permitidos" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Restringir el registro a ciertos dominios (separados por comas, comenzando por @)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Grupo al registrarse" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "Grupo al que se asignan nuevos usuarios al registrarse. Si la sincronización de grupo SSO está activada, este grupo sólo se establece si no se puede asignar ningún grupo desde el IdP." -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "Forzar MFA" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Los usuarios deben utilizar seguridad multifactor." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Comprobar complementos al iniciar" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Comprobar que todos los complementos están instalados en el arranque - habilitar en entornos de contenedores" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Revisar actualizaciones del plugin" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "Habilitar comprobaciones periódicas para actualizaciones de plugins instalados" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "Habilitar integración de URL" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "Habilitar plugins para añadir rutas de URL" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Habilitar integración de navegación" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Habilitar plugins para integrar en la navegación" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "Habilitar integración de la aplicación" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Habilitar plugins para añadir aplicaciones" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Habilitar integración de programación" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Habilitar plugins para ejecutar tareas programadas" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Habilitar integración de eventos" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Habilitar plugins para responder a eventos internos" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "Habilitar integración de interfaz" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "Habilitar complementos para integrar en la interfaz de usuario" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "Habilitar códigos de proyecto para rastrear proyectos" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Excluir Ubicaciones Externas" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Periodo de inventario automático" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Mostrar nombres completos de los usuarios" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Mostrar nombres completos de usuarios en lugar de nombres de usuario" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "Habilitar datos de estación de prueba" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "Habilitar la recolección de datos de estaciones de prueba para resultados de prueba" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Fecha" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "El complemento no está instalado" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "Instalación del complemento no encontrada" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "Complemento" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "No se encontró autor" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "El complemento '{p}' no es compatible con la versión actual de InvenTree {v}" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "El complemento requiere al menos la versión {v}" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "El complemento requiere como máximo la versión {v}" @@ -9218,7 +9226,7 @@ msgstr "La cantidad no coincide con los números de serie" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "Artículo de stock contiene otros artículos" msgid "Stock item has been assigned to a customer" msgstr "Artículo de stock ha sido asignado a un cliente" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "El artículo de stock está en producción" @@ -9262,71 +9270,71 @@ msgstr "Los artículos de stock deben referirse a la misma parte del proveedor" msgid "Stock status codes must match" msgstr "Los códigos de estado del stock deben coincidir" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stock no se puede mover porque no está en stock" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Notas de entrada" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Debe proporcionarse un valor para esta prueba" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "El archivo adjunto debe ser subido para esta prueba" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Resultado de la prueba" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Valor de salida de prueba" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Adjunto de resultados de prueba" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Notas de prueba" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "Finalizó" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "La cantidad no debe exceder la cantidad disponible de stock ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Ubicación de stock de destino" @@ -9565,7 +9573,7 @@ msgstr "La empresa seleccionada no es un cliente" msgid "Stock assignment notes" msgstr "Notas de asignación de stock" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "Debe proporcionarse una lista de artículos de stock" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Notas de transacción de stock" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Notas de transacción de stock" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po index 4da5c62b94..79387a5e36 100644 --- a/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Language: es_MX\n" @@ -109,9 +109,9 @@ msgstr "Número decimal inválido" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Notas" @@ -550,13 +550,13 @@ msgstr "Estado del pedido" msgid "Parent Build" msgstr "Construcción o Armado Superior" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "Incluye Variantes" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Pedido pendiente" msgid "Allocated" msgstr "Asignadas" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Disponible" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "En pedido" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Construir órden" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Ubicación" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "Definición" msgid "Unit definition" msgstr "Definición de unidad" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Archivo adjunto" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "Clave lógica del estado que es igual a este estado personalizado en la lógica de negocios" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Valor" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "Respuesta de datos del escaneo de código de barras" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Resultado" @@ -2673,8 +2673,8 @@ msgstr "Con qué frecuencia actualizar los tipos de cambio (establecer a cero pa #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "días" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "Permitir que artículos del inventario sin existencias puedan ser transferidos entre ubicaciones de inventario" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Patrón de Referencia de Ordenes de Armado" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Patrón requerido para generar el campo de referencia de la Orden de Ensamblado" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "Requerir Dueño Responsable" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "Se debe asignar un dueño responsable a cada orden" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "Requerir Parte Activa" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "Impedir la creación de órdenes de fabricación para partes inactivas" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "Requerir Parte Bloqueada" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "Impedir la creación de órdenes de fabricación para partes bloqueadas" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "Impedir la creación de órdenes de fabricación a menos que se haya validado la lista de materiales" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "Prevenir la finalización de la orden de construcción hasta que todas las órdenes hijas estén cerradas" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "Bloquear hasta que los Tests pasen" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Evitar que las construcciones sean completadas hasta que todas las pruebas requeridas pasen" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "Habilitar órdenes de devolución" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Habilitar la funcionalidad de orden de devolución en la interfaz de usuario" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Patrón de referencia de orden de devolución" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "Patrón requerido para generar el campo de referencia de devolución de la orden" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Editar ordenes de devolución completadas" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Permitir la edición de ordenes de devolución después de que hayan sido completados" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Patrón de Referencia de Ordenes de Venta" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Patrón requerido para generar el campo de referencia de la orden de venta" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Envío Predeterminado de Ordenes de Venta" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Habilitar la creación de envío predeterminado con ordenes de entrega" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Editar Ordenes de Venta Completados" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Permitir la edición de ordenes de venta después de que hayan sido enviados o completados" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "Marcar pedidos enviados como completados" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Los pedidos marcados como enviados se completarán automáticamente, evitando el estado de \"envío\"" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Patrón de Referencia de Orden de Compra" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Patrón requerido para generar el campo de referencia de la Orden de Compra" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Editar Ordenes de Compra Completados" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Permitir la edición de órdenes de venta después de que hayan sido enviados o completados" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Autocompletar Ordenes de compra" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Marcar automáticamente las órdenes de compra como completas cuando se reciben todos los artículos de línea" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Habilitar función de contraseña olvidada" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Activar la función olvido de contraseña en las páginas de inicio de sesión" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Habilitar registro" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Activar auto-registro para usuarios en las páginas de inicio de sesión" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "Habilitar SSO" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "Habilitar SSO en las páginas de inicio de sesión" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "Habilitar registro SSO" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Activar autoregistro a través de SSO para usuarios en las páginas de inicio de sesión" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "Habilitar sincronización de grupo SSO" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "Habilitar la sincronización de grupos de Inventree con grupos proporcionados por el IdP" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "Clave de grupo SSO" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "El nombre del atributo reclamado por el grupo proporcionado por el IdP" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "Mapa del grupo SSO" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "Un mapeo de grupos SSO a grupos de Inventree locales. Si el grupo local no existe, se creará." -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "Eliminar grupos fuera de SSO" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "Email requerido" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Requiere usuario para suministrar correo al registrarse" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "Auto-rellenar usuarios SSO" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Rellenar automáticamente los datos de usuario de la cuenta SSO" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "Correo dos veces" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "Al registrarse pregunte dos veces a los usuarios por su correo" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Contraseña dos veces" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "Al registrarse, preguntar dos veces a los usuarios por su contraseña" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Dominios permitidos" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Restringir el registro a ciertos dominios (separados por comas, comenzando por @)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Grupo al registrarse" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "Grupo al que se asignan nuevos usuarios al registrarse. Si la sincronización de grupo SSO está activada, este grupo sólo se establece si no se puede asignar ningún grupo desde el IdP." -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "Forzar MFA" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Los usuarios deben utilizar seguridad multifactor." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Comprobar complementos al iniciar" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Comprobar que todos los complementos están instalados en el arranque - habilitar en entornos de contenedores" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Revisar actualizaciones del plugin" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "Habilitar comprobaciones periódicas para actualizaciones de plugins instalados" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "Habilitar integración de URL" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "Habilitar plugins para añadir rutas de URL" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Habilitar integración de navegación" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Habilitar plugins para integrar en la navegación" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "Habilitar integración de la aplicación" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Habilitar plugins para añadir aplicaciones" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Habilitar integración de programación" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Habilitar plugins para ejecutar tareas programadas" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Habilitar integración de eventos" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Habilitar plugins para responder a eventos internos" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "Habilitar integración de interfaz" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "Habilitar complementos para integrar en la interfaz de usuario" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Excluir Ubicaciones Externas" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Periodo de inventario automático" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Mostrar nombres completos de los usuarios" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Mostrar nombres completos de usuarios en lugar de nombres de usuario" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "Habilitar datos de estación de prueba" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "Habilitar la recolección de datos de estaciones de prueba para resultados de prueba" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Fecha" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "El complemento no está instalado" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "Instalación del complemento no encontrada" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "Complemento" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "No se encontró autor" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "El complemento '{p}' no es compatible con la versión actual de InvenTree {v}" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "El complemento requiere al menos la versión {v}" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "El complemento requiere como máximo la versión {v}" @@ -9218,7 +9226,7 @@ msgstr "La cantidad no coincide con los números de serie" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "Artículo de stock contiene otros artículos" msgid "Stock item has been assigned to a customer" msgstr "Artículo de stock ha sido asignado a un cliente" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "El artículo de stock está en producción" @@ -9262,71 +9270,71 @@ msgstr "Los artículos de stock deben referirse a la misma parte del proveedor" msgid "Stock status codes must match" msgstr "Los códigos de estado del stock deben coincidir" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stock no se puede mover porque no está en stock" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Notas de entrada" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Debe proporcionarse un valor para esta prueba" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "El archivo adjunto debe ser subido para esta prueba" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Resultado de la prueba" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Valor de salida de prueba" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Adjunto de resultados de prueba" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Notas de prueba" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "Finalizó" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "La cantidad no debe exceder la cantidad disponible de stock ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Ubicación de stock de destino" @@ -9565,7 +9573,7 @@ msgstr "La empresa seleccionada no es un cliente" msgid "Stock assignment notes" msgstr "Notas de asignación de stock" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "Debe proporcionarse una lista de artículos de stock" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Notas de transacción de stock" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Notas de transacción de stock" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po index 6dc901ad1b..f1f7880a2c 100644 --- a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Estonian\n" "Language: et_EE\n" @@ -109,9 +109,9 @@ msgstr "" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Märkmed" @@ -550,13 +550,13 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "" msgid "Allocated" msgstr "" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Saadaval" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Asukoht" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "Definitsioon" msgid "Unit definition" msgstr "Ühiku definitsioon" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Manus" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Tulemus" @@ -2673,8 +2673,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "päeva" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "Luba liidese integreerimine" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "Luba pluginatel integreeruda kasutajaliidesesse" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "Paki plugin" msgid "Plugin" msgstr "Plugin" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Autorit ei leitud" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Testitulemused" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po index de988bd3c3..e0066fd70b 100644 --- a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Persian\n" "Language: fa_IR\n" @@ -109,9 +109,9 @@ msgstr "مقدار اعشاری نامعتبر است" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "یادداشت" @@ -550,13 +550,13 @@ msgstr "وضعیت سفارش" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "سفارش معوق" msgid "Allocated" msgstr "اختصاص داده شده" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "در دسترس" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "سفارش ساخت" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "مکان" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "" @@ -2673,8 +2673,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po index 0d94561899..3d4f0e0044 100644 --- a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Language: fi_FI\n" @@ -109,9 +109,9 @@ msgstr "" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Merkinnät" @@ -550,13 +550,13 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "" msgid "Allocated" msgstr "" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Saatavilla" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Sijainti" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Liite" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Arvo" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "" @@ -2673,8 +2673,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "päivää" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Salli salasananpalautus" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Salli rekisteröinti" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "Salli SSO" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "Salli SSO kirjautumissivuilla" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "Salli SSO rekisteröinti" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "Sähköposti vaaditaan" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "Sähköpostiosoite kahdesti" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Salasana kahdesti" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Sallitut verkkotunnukset" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "Pakota MFA" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Päivämäärä" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po index 5c3af1ebb8..db9c659246 100644 --- a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -109,9 +109,9 @@ msgstr "Valeur décimale invalide" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Notes" @@ -550,13 +550,13 @@ msgstr "Statut de la commande" msgid "Parent Build" msgstr "Fabrication parente" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "Inclure les variantes" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Commande en cours" msgid "Allocated" msgstr "Allouée" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Consommé" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Disponible" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "En Commande" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Ordre de Fabrication" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Emplacement" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "Sortie" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Filtrer par l'identifiant (ID) des articles du stock de sortie. Utilisez 'null' pour trouver les éléments de fabrication non installés." @@ -1830,7 +1830,7 @@ msgstr "Définition" msgid "Unit definition" msgstr "Définition de l'unité" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Pièce jointe" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "Clé logique de l'état qui est égale à cet état personnalisé dans la logique métier" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Valeur" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "Données de réponse provenant de la lecture du code-barres" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Résultat" @@ -2673,8 +2673,8 @@ msgstr "Fréquence de mise à jour des taux de change (définir à zéro pour d #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "jours" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "Permettre le transfert d'articles qui ne sont pas en stock d'un magasin à l'autre" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Modèle de référence de commande de construction" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Modèle requis pour générer le champ de référence de l'ordre de construction" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "Nécessite un Responsable propriétaire" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "Un propriétaire responsable doit être assigné à chaque commande" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "Exiger une partie active" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "Empêcher la création d'un ordre de fabrication pour les pièces inactives" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "Requiert une pièce verrouillée" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "Empêcher la création d'un ordre de fabrication pour les pièces non verrouillées" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "Exiger une nomenclature valide" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "Empêcher la création d'un ordre de fabrication si la nomenclature n'a pas été validée" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "Exiger des ordonnances fermées pour les enfants" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "Empêcher l'achèvement de l'ordre de construction jusqu'à ce que tous les ordres d'enfants soient clôturés" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "Ordres de fabrication externes" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "Activer la fonctionnalité d'ordre de fabrication externe" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "Blocage jusqu'à la réussite des tests" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Empêcher l'achèvement des résultats de la construction jusqu'à ce que tous les tests requis soient réussis" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "Activer les retours de commandes" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Activer la fonctionnalité de retour de commande dans l'interface utilisateur" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Modèle de référence de retour de commande" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "Modèle requis pour générer le champ de référence de la commande de retour" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Modifier les retours de commandes terminées" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Autoriser la modification des retours après leur enregistrement" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Modèle de référence de bon de commande" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Modèle requis pour générer le champ de référence du bon de commande" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Expédition par défaut du bon de commande" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Activer la création d'expédition par défaut avec les bons de commandes" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Modifier les commandes de vente terminées" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Autoriser la modification des commandes de vente après avoir été expédiées ou complétées" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "L'expédition nécessite une vérification" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "Empêcher l'achèvement des envois jusqu'à ce que les articles aient été vérifiés" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "Marquer les commandes expédiées comme achevées" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Les commandes marquées comme expédiées seront automatiquement complétées, en contournant le statut « expédié »" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Modèle de référence de commande d'achat" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Modèle requis pour générer le champ de référence de bon de commande" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Modifier les bons de commande terminés" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Autoriser la modification des bons de commande après avoir été expédiés ou complétés" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "Convertir la monnaie" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "Convertir la valeur de l'article dans la devise de base lors de la réception du stock" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Achat automatique des commandes" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Marquer automatiquement les bons de commande comme terminés lorsque tous les articles de la ligne sont reçus" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Activer les mots de passe oubliés" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Activer la fonction \"Mot de passe oublié\" sur les pages de connexion" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Activer les inscriptions" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Activer l'auto-inscription pour les utilisateurs sur les pages de connexion" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "Activer le SSO" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "Activer le SSO sur les pages de connexion" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "Activer l'inscription SSO" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Activer l'auto-inscription via SSO pour les utilisateurs sur les pages de connexion" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "Activer la synchronisation du groupe SSO" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "Permettre la synchronisation des groupes InvenTree avec les groupes fournis par l'IdP" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "Clé du groupe SSO" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "Le nom de l'attribut de revendication de groupe fourni par l'IdP" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "Carte de groupe SSO" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "Une correspondance entre les groupes SSO et les groupes InvenTree locaux. Si le groupe local n'existe pas, il sera créé." -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "Supprimer les groupes en dehors de SSO" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "Indique si les groupes attribués à l'utilisateur doivent être supprimés s'ils ne sont pas gérés par l'IdP. La désactivation de ce paramètre peut entraîner des problèmes de sécurité" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "Email requis" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Exiger que l'utilisateur fournisse un mail lors de l'inscription" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "Saisie automatique des utilisateurs SSO" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Remplir automatiquement les détails de l'utilisateur à partir des données de compte SSO" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "Courriel en double" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mail" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Mot de passe deux fois" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mot de passe" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Domaines autorisés" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Restreindre l'inscription à certains domaines (séparés par des virgules, commençant par @)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Grouper sur inscription" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "Groupe auquel les nouveaux utilisateurs sont assignés lors de l'enregistrement. Si la synchronisation des groupes SSO est activée, ce groupe n'est défini que si aucun groupe ne peut être attribué par l'IdP." -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "Forcer l'authentification multifacteurs" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Les utilisateurs doivent utiliser l'authentification multifacteurs." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "Activer ce paramètre demandera à tous les utilisateurs de configurer l'authentification multi-facteurs. Toutes les sessions seront déconnectées immédiatement." -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Vérifier les plugins au démarrage" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Vérifier que tous les plugins sont installés au démarrage - activer dans les environnements conteneurs" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Vérifier les mises à jour des plugins" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "Activer les vérifications périodiques pour les mises à jour des plugins installés" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "Activer l'intégration d'URL" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "Autoriser les plugins à ajouter des chemins URL" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Activer l'intégration de navigation" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Activer les plugins à s'intégrer dans la navigation" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "Activer l'intégration de plugins" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Activer l'intégration de plugin pour ajouter des apps" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Activer l'intégration du planning" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Autoriser les plugins à éxécuter des tâches planifiées" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Activer l'intégration des évènements" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Autoriser les plugins à répondre aux évènements internes" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "Permettre l'intégration de l'interface" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "Permettre aux plugins de s'intégrer dans l'interface utilisateur" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "Activer l'intégration mail" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "Autoriser les plugins à traiter les mails entrants/sortants" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "Activer les codes de projet" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "Activer les codes de projet pour le suivi des projets" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "Activer la fonctionnalité d'enregistrement des historiques de niveaux de stock et de leur valeur" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Exclure les localisations externes" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Période de l'inventaire automatique" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Afficher les noms des utilisateurs" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Afficher les noms complets des utilisateurs au lieu des noms d'utilisateur" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "Afficher les profils d'utilisateur" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "Afficher les profils des utilisateurs sur leur page de profil" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "Activer les données de station de test" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "Activer la collecte des données de la station de test pour les résultats de test" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "Stock total disponible au moment de l'inventaire" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Date" @@ -8084,77 +8092,77 @@ msgstr "Prise en charge de la lecture des codes-barres TME" msgid "The Supplier which acts as 'TME'" msgstr "Le fournisseur qui agit en tant que \"TME" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "L'installation du plugin est désactivée" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "Installation réussie du plugin" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Installation du plugin dans {path}" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "Le plugin n'a pas été trouvé dans le registre" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "Le plugin n'est pas un plugin packagé" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "Le nom du paquet du plugin n'a pas été trouvé" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "Seuls les membres du personnel peuvent administrer les plugins" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "La désinstallation des plugins est désactivée" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "Le plugin ne peut pas être désinstallé car il est actuellement actif" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "Le plugin n'est pas installé" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "L'installation du plugin n'a pas été trouvée" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "Désinstallation réussie du plugin" @@ -8206,21 +8214,21 @@ msgstr "Plugin Package" msgid "Plugin" msgstr "Extension" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Aucun auteur trouvé" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "Le plugin '{p}' n'est pas compatible avec la version actuelle d'InvenTree {v}" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "Le plugin nécessite au moins la version {v}" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "Le plugin nécessite au maximum la version {v}" @@ -9218,7 +9226,7 @@ msgstr "La quantité ne correspond pas au nombre de numéros de série" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "Le modèle de test n'existe pas" @@ -9238,7 +9246,7 @@ msgstr "L'article de stock contient d'autres articles" msgid "Stock item has been assigned to a customer" msgstr "Un article de stock a été affecté à un client" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "L'article de stock est actuellement en production" @@ -9262,71 +9270,71 @@ msgstr "Les articles en stock doivent se référer à la même pièce du fournis msgid "Stock status codes must match" msgstr "Les codes d'état des stocks doivent correspondre" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "StockItem ne peut pas être déplacé car il n'est pas en stock" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "Suivi des articles en stock" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Notes d'entrée" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "Résultat du test de l'article en stock" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Une valeur doit être fournie pour ce test" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "La pièce jointe doit être téléchargée pour ce test" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "Valeur non valide pour ce test" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Résultat du test" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Valeur de sortie du test" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Pièce jointe au résultat du test" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Notes de test" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "Station de test" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "L'identifiant de la station de test où le test a été effectué" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "Commencé" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "Horodatage du début du test" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "Fini" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "Horodatage de la fin du test" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "La quantité ne doit pas dépasser la quantité disponible en stock ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Emplacement du stock de destination" @@ -9565,7 +9573,7 @@ msgstr "L'entreprise sélectionnée n'est pas un client" msgid "Stock assignment notes" msgstr "Notes d'affectation des stocks" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "Une liste des articles en stock doit être fournie" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Notes sur les transactions boursières" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Notes sur les transactions boursières" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "Numéro de série suivant" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "Numéro de série précédent" diff --git a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po index 29b573ac5d..622651df47 100644 --- a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -109,9 +109,9 @@ msgstr "" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "" @@ -550,13 +550,13 @@ msgstr "" msgid "Parent Build" msgstr "מקור הבנייה" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "" msgid "Allocated" msgstr "" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "קובץ מצורף" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "" @@ -2673,8 +2673,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po index 88617dec56..641b4d51d5 100644 --- a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Hindi\n" "Language: hi_IN\n" @@ -109,9 +109,9 @@ msgstr "" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "" @@ -550,13 +550,13 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "" msgid "Allocated" msgstr "" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "" @@ -2673,8 +2673,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po index 1d97eed35c..b8f67b71d6 100644 --- a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -109,9 +109,9 @@ msgstr "Érvénytelen decimális érték" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Megjegyzések" @@ -550,13 +550,13 @@ msgstr "Rendelés állapota" msgid "Parent Build" msgstr "Szülő gyártás" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "Változatokkal együtt" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Befejezetlen rendelés" msgid "Allocated" msgstr "Lefoglalva" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Felhasználva" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Elérhető" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Rendelve" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "Gyártás nem található" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Gyártási utasítás" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Hely" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "Kimenet" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Szűrés a kimeneti készlet tétel azonosítójára. Használj 'null'-t ha a be nem épített gyártási tételeket keresed." @@ -1831,7 +1831,7 @@ msgstr "Definíció" msgid "Unit definition" msgstr "Mértékegység definíció" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Melléklet" @@ -1949,7 +1949,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "Az állapot logikai kulcsa amely megegyezik az üzleti logika egyedi állapotával" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Érték" @@ -2284,7 +2284,7 @@ msgid "Response data from the barcode scan" msgstr "Vonalkód olvasó válasz adat" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Eredmény" @@ -2674,8 +2674,8 @@ msgstr "Milyen gyakran frissítse az árfolyamokat (nulla a kikapcsoláshoz)" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "nap" @@ -3278,538 +3278,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "Lehet-e olyan készleteket mozgatni készlethelyek között amik nincsenek raktáron" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Gyártási utasítás azonosító minta" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Szükséges minta a gyártási utasítás azonosító mező előállításához" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "Felelős tulajdonos szükséges" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "Minden rendeléshez felelőst kell rendelni" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "Szükséges Aktív Alkatrész" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "Inaktív alkatrészekre nem lehet Gyártási Rendelést létrehozni" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "Elvárás a Lezárt Alkatrész" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "Megakadályozza, hogy nem lezárt alkatrészekre gyártási rendelést lehessen indítani" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "Jóváhagyott Alkatrészjegyzék Kötelező" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "Megakadályozza gyártási rendelés készítését ha nincsen az Alkatrészjegyzék jóváhagyva" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "Leszármazott Gyártásoknak Lezártnak Kell Lennie" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "Amíg minden leszármazott gyártás le nincsen zárva nem lehet a szülő gyártást lezárni" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "Külső Gyártási Rendelések" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "Engedélyezze a külső gyártási rendelés funkciót" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "Blokkolás a tesztek sikeres végrehajtásáig" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Nem lehet gyártási tételt befejezni amíg valamennyi kötelező teszt sikeres nem lett" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "Visszavétel engedélyezése" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Visszavételek engedélyezése a felületen" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Visszavétel azonosító minta" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "Szükséges minta a visszavétel azonosító mező előállításához" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Befejezett visszavétel szerkesztése" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Visszavétel szerkesztésének engedélyezése befejezés után" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Vevői rendelés azonosító minta" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Szükséges minta a vevői rendelés azonosító mező előállításához" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Vevői rendeléshez alapértelmezett szállítmány" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Szállítmány automatikus létrehozása az új vevő rendelésekhez" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Befejezett vevői rendelés szerkesztése" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Vevői rendelések szerkesztésének engedélyezése szállítás vagy befejezés után" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "Szállítmány Ellenőrzést Igényel" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "Megakadályozza a szállítmányok befejezését, amíg a tételeket nem ellenőrizték" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "Leszállított Rendelések Készre jelölése" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Leszállítottnak jelölt Értékesítési rendelések automatikusan Kész-re lesznek állítva, a \"Leszállított\" állapot átugrásával" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Beszerzési rendelés azonosító minta" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Szükséges minta a beszerzési rendelés azonosító mező előállításához" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Befejezett beszerzési rendelés szerkesztése" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Beszérzési rendelések szerkesztésének engedélyezése kiküldés vagy befejezés után" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "Jelenlegi pénznem" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "Tétel érték bázis-pénznemre váltása készlet beérkezéskor" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Beszerzési rendelések automatikus befejezése" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "A beszerzési rendelés automatikus befejezése ha minden sortétel beérkezett" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Elfelejtett jelszó engedélyezése" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Elfelejtett jelszó funkció engedélyezése a bejentkező oldalon" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Regisztráció engedélyezése" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése a bejelentkező oldalon" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "SSO engedélyezése" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "SSO engedélyezése a bejelentkező oldalon" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "SSO regisztráció engedélyezése" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése SSO-n keresztül a bejelentkező oldalon" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "SSO csoport szinkronizálás engedélyezése" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "Az InvenTree csoportok szinkronizálása a hitelesítésszolgáltatóhoz" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "SSO csoport kulcs" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "A csoportkérés tulajdonság neve amit a hitelesítésszolgáltató nyújt" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "SSO csoport hozzárendelés" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "Az SSO csoportok hozzárendelése az InvenTree csoportokhoz. Ha a helyi csoport nem létezik, létre lesz hozva." -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "Az SSO-n kívüli csoportok eltávolítása" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "Ha egy felhasználóhoz rendelt csoport nem létezik az azonosításszolgáltatóban azt eltávolítsuk el. Ennek a kikapcsolása biztonsági problémákhoz vezethet" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "Email szükséges" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Kötelező email megadás regisztrációkor" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "SSO felhasználók automatikus kitöltése" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Felhasználó adatainak automatikus kitöltése az SSO fiókadatokból" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "Email kétszer" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "Regisztráláskor kétszer kérdezze a felhasználó email címét" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Jelszó kétszer" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "Regisztráláskor kétszer kérdezze a felhasználó jelszavát" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Engedélyezett domainek" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Feliratkozás korlátozása megadott domain-ekre (vesszővel elválasztva, @-al kezdve)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Csoport regisztráláskor" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "Ehhez a csoporthoz lesznek az új felhasználók rendelve. Ha az SSO csoport szinkronizálás engedélyezve van, akkor ez a csoport csak akkor lesz hozzárendelve a felhasználóhoz ha az azonosítás szolgáltató semmilyen csoportot nem rendelt hozzá." -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "Többfaktoros hitelesítés kényszerítése" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "A felhasználóknak többfaktoros hitelesítést kell használniuk." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Pluginok ellenőrzése indításkor" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Ellenőrizze induláskor hogy minden plugin telepítve van - engedélyezd konténer környezetben (docker)" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Plugin frissítések ellenőrzése" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "Frissítések periódikus ellenőrzésének engedélyezése a telepített pluginokra" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "URL integráció engedélyezése" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "URL útvonalalak hozzáadásának engedélyezése a pluginok számára" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Navigációs integráció engedélyezése" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Navigációs integráció engedélyezése a pluginok számára" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "App integráció engedélyezése" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "App hozzáadásának engedélyezése a pluginok számára" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Ütemezés integráció engedélyezése" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Háttérben futó feladatok hozzáadásának engedélyezése a pluginok számára" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Esemény integráció engedélyezése" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Belső eseményekre reagálás engedélyezése a pluginok számára" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "Interfész integráció engedélyezése" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "Pluginok felhasználói felületbe épülésének engedélyezése" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "Email integráció engedélyezése" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "Pluginok bejövő/kimenő levelekhez hozzáférésének engedélyezése" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "Projektszámok engedélyezése" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "Projectek nyomkövetéséhez projekt kódok engedélyezése" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "A készletek korábbi mennyiségének és értékének naplózásának engedélyezés" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Külső helyek nélkül" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Automatikus leltár időpontja" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "Készlettörténet törlési gyakoriság" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Felhasználók teljes nevének megjelenítése" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Felhasználói név helyett a felhasználók teljes neve jelenik meg" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "Felhasználói profilok megjelenítése" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "Felhasználói profilok megjelenítése a profil oldalukon" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "Teszt állomás adatok engedélyezése" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "Tesztállomás adatok gyűjtésének teszt eredménybe gyűjtésének engedélyezése" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "Gép Ping Engedélyezése" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "Időszakos ping feladat engedélyezése a regisztrált gépekhez az állapotuk ellenőrzésére" @@ -6644,7 +6652,7 @@ msgid "Total available stock at time of stocktake" msgstr "Teljes készlet a leltárkor" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Dátum" @@ -8085,77 +8093,77 @@ msgstr "TME vonalkódok támogatása" msgid "The Supplier which acts as 'TME'" msgstr "A 'TME' beszállító" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "Plugin telepítés letiltva" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "Plugin telepítése sikeres" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Plugin telepítve ide: {path}" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "Ez a plugin nem található a tárolóban" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "A plugin nem egy csomagolt plugin" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "Plugin csomag neve nem található" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "Csak a személyzeti felhasználók adminisztrálhatják a pluginokat" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "Plugin eltávolítás letiltva" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "Plugin nem eltávolítható mivel még aktív" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "Kötelező plugint nem lehet uninstallálni" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "Plugin nem uninstallálható mert mintaplugin" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "Plugin nem uninstallálható mert beépített plugin" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "Plugin nincs telepítve" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "Plugin telepítés nem található" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "Plugin eltávolítása sikeres" @@ -8207,21 +8215,21 @@ msgstr "Csomag plugin" msgid "Plugin" msgstr "Bővítmény" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Nincs szerző" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "A '{p}' plugin nem kompatibilis az aktuális applikáció verzióval {v}" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "A pluginhoz minimum {v} verzió kell" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "A pluginhoz maximum {v} verzió kell" @@ -9219,7 +9227,7 @@ msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával" msgid "Cannot assign stock to structural location" msgstr "Nem lehet készletet strukturális helyre rendelni" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "Ez a Teszt sablon nem létezik" @@ -9239,7 +9247,7 @@ msgstr "A készlet tétel más tételeket tartalmaz" msgid "Stock item has been assigned to a customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "Készlet tétel gyártás alatt" @@ -9263,71 +9271,71 @@ msgstr "A készlet tétel ugyanarra a beszállítói alkatrészre kell vonatkozz msgid "Stock status codes must match" msgstr "Készlet tételek állapotainak egyeznie kell" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "Készlet tétel nem mozgatható mivel nincs készleten" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "Készlettörténet" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Bejegyzés megjegyzései" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "Készlet Tétel Ellenőrzés Eredménye" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Ehhez a teszthez meg kell adni értéket" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "Ehhez a teszthez fel kell tölteni mellékletet" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "A teszt eredménye érvénytelen" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Teszt eredménye" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Teszt kimeneti értéke" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Teszt eredmény melléklet" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Tesztek megjegyzései" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "Teszt állomás" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "A tesztet elvégző tesztállomás azonosítója" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "Elkezdődött" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "A teszt indításának időpontja" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "Befejezve" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "A teszt befejezésének időpontja" @@ -9441,8 +9449,8 @@ msgstr "Nincsen készlettétel megadva" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "A mennyiség nem lépheti túl a rendelkezésre álló készletet ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Cél készlet hely" @@ -9566,7 +9574,7 @@ msgstr "A kiválasztott cég nem egy vevő" msgid "Stock assignment notes" msgstr "Készlet hozzárendelés megjegyzései" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "A készlet tételek listáját meg kell adni" @@ -9614,27 +9622,31 @@ msgstr "Készlettétel már készleten van" msgid "Quantity must not be negative" msgstr "Mennyiség nem lehet negatív" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Készlet tranzakció megjegyzései" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "Meglévő készletbe olvasztás" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Készlet tranzakció megjegyzései" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "Visszaérkezett tételek beolvasztása a készlettételekbe ha lehetséges" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "Következő sorozatszám" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "Előző Sorozatszám" diff --git a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po index a6f25b3013..f671dee065 100644 --- a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -109,9 +109,9 @@ msgstr "" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Catatan" @@ -550,13 +550,13 @@ msgstr "" msgid "Parent Build" msgstr "Produksi Induk" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "" msgid "Allocated" msgstr "" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Tersedia" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Order Produksi" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Lokasi" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Lampiran" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "" @@ -2673,8 +2673,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "Hari" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "Surel diperlukan" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "Aktifkan Integrasi Antarmuka" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Tanggal" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "Lampiran perlu diunggah untuk tes ini" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po index c84f131971..10d15adb82 100644 --- a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -109,9 +109,9 @@ msgstr "Valore decimale non valido" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Note" @@ -550,13 +550,13 @@ msgstr "Stato dell'ordine" msgid "Parent Build" msgstr "Produzione Genitore" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "Includi Varianti" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Ordine In Corso" msgid "Allocated" msgstr "Allocato" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Utilizzato" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Disponibile" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Ordinato" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Ordine di Produzione" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Posizione" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "Output" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Filtra per ID articolo stock di output. Usa 'null' per trovare elementi di produzione disinstallati." @@ -1830,7 +1830,7 @@ msgstr "Definizione" msgid "Unit definition" msgstr "Definizione unità" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Allegato" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "Chiave logica dello stato che è uguale a questo stato personalizzato nella logica commerciale" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Valore" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "Dati di risposta dalla scansione del codice a barre" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Risultato" @@ -2673,8 +2673,8 @@ msgstr "Quanto spesso aggiornare i tassi di cambio (impostare a zero per disabil #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "giorni" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "Consenti il trasferimento di articoli non disponibili a magazzino tra le diverse ubicazioni di magazzino" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Modello Di Riferimento Ordine Di Produzione" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Modello richiesto per generare il campo di riferimento ordine di produzione" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "È richiesto il Proprietario Responsabile" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "A ogni ordine deve essere assegnato un proprietario responsabile" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "Richiede Articolo Attivo" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "Impedisci la creazione di ordini di produzione per gli articolo inattivi" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "Richiede Articolo Bloccato" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "Impedisci la creazione di ordini di costruzione per le parti sbloccate" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "Richiede un BOM valido" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "Previene la creazione di ordini di costruzione a meno che BOM non sia stato convalidato" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "Richiedi Ordini Dei Figli Chiusi" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "Impedisci il completamento dell'ordine di costruzione fino alla chiusura di tutti gli ordini figli" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "Ordini di Produzione Esterni" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "Abilita funzionalità ordini di produzione esterni" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "Blocca Fino Al Passaggio Dei Test" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Impedisci che gli output di costruzione siano completati fino al superamento di tutti i test richiesti" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "Abilita Ordini Di Reso" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Abilita la funzionalità ordine di reso nell'interfaccia utente" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Motivo di Riferimento per ordine di reso" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "Modello richiesto per generare il campo di riferimento ordine di reso" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Modifica Ordini Di Reso Completati" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Consenti la modifica degli ordini di reso dopo che sono stati completati" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Modello Di Riferimento Ordine Di Vendita" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Modello richiesto per generare il campo di riferimento ordine di vendita" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Spedizione Predefinita Ordine Di Vendita" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Abilita la creazione di spedizioni predefinite con ordini di vendita" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Modifica Ordini Di Vendita Completati" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Consenti la modifica degli ordini di vendita dopo che sono stati spediti o completati" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "La Spedizione Richiede Controllo" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "Impedire il completamento delle spedizioni fino a quando gli articoli sono stati controllati" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "Segna gli ordini spediti come completati" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Gli ordini di vendita contrassegnati come spediti saranno automaticamente completati, bypassando lo stato \"spedito\"" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Modello di Riferimento Ordine D'Acquisto" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Modello richiesto per generare il campo di riferimento ordine di acquisto" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Modifica Ordini Di Acquisto Completati" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Consenti la modifica degli ordini di acquisto dopo che sono stati spediti o completati" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "Converti Valuta" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "Converti il valore dell'elemento in valuta base quando si riceve lo stock" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Completa Automaticamente Gli Ordini D'Acquisto" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Contrassegna automaticamente gli ordini di acquisto come completi quando tutti gli elementi della riga sono ricevuti" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Abilita password dimenticata" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Abilita la funzione password dimenticata nelle pagine di accesso" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Abilita registrazione" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "SSO abilitato" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "Abilita SSO nelle pagine di accesso" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "Abilita registrazione SSO" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Abilita l'auto-registrazione tramite SSO per gli utenti nelle pagine di accesso" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "Abilita sincronizzazione dei gruppi SSO" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "Abilita la sincronizzazione dei gruppi InvenTree con i gruppi forniti dall'IdP" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "Chiave gruppo SSO" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "Il nome dell'attributo di richiesta di gruppi fornito dall'IdP" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "Mappa del gruppo SSO" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "Una mappatura dai gruppi SSO ai gruppi InvenTree locali. Se il gruppo locale non esiste, verrà creato." -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "Rimuovere i gruppi al di fuori dell'SSO" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "Indica se i gruppi assegnati all'utente debbano essere rimossi se non sono backend dall'IdP. La disattivazione di questa impostazione potrebbe causare problemi di sicurezza" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "Email richiesta" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "Riempimento automatico degli utenti SSO" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Compila automaticamente i dettagli dell'utente dai dati dell'account SSO" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "Posta due volte" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "Al momento della registrazione chiedere due volte all'utente l'indirizzo di posta elettronica" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Password due volte" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "Al momento della registrazione chiedere agli utenti due volte l'inserimento della password" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Domini consentiti" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Limita la registrazione a determinati domini (separati da virgola, a partire da @)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Gruppo iscrizione" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "Gruppo a cui i nuovi utenti sono assegnati alla registrazione. Se la sincronizzazione di gruppo SSO è abilitata, questo gruppo è impostato solo se nessun gruppo può essere assegnato dall'IdP." -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "Applica MFA" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Gli utenti devono utilizzare la sicurezza a due fattori." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "Abilitare questa impostazione richiederà a tutti gli utenti di impostare l'autenticazione multi fattore. Tutte le sessioni saranno disconnesse immediatamente." -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Controlla i plugin all'avvio" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Controlla che tutti i plugin siano installati all'avvio - abilita in ambienti contenitore" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Controlla gli aggiornamenti dei plugin" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "Abilita controlli periodici per gli aggiornamenti dei plugin installati" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "Abilita l'integrazione URL" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "Attiva plugin per aggiungere percorsi URL" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Attiva integrazione navigazione" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Abilita i plugin per l'integrazione nella navigazione" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "Abilita l'app integrata" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Abilita plugin per aggiungere applicazioni" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Abilita integrazione pianificazione" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Abilita i plugin per eseguire le attività pianificate" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Abilita eventi integrati" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Abilita plugin per rispondere agli eventi interni" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "Abilita integrazione interfaccia" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "Abilita i plugin per l'integrazione nell'interfaccia utente" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "Abilita integrazione email" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "Abilita i plugin per elaborare le email in uscita/in arrivo" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "Abilita codici progetto" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "Abilita i codici del progetto per tracciare i progetti" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "Abilita la funzionalità per registrare i livelli storici e il valore del magazzino" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Escludi Posizioni Esterne" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Inventario periodico automatico" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Visualizza i nomi completi degli utenti" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Mostra nomi completi degli utenti invece che nomi utente" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "Visualizza Profili Utente" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "Visualizza i profili degli utenti sulla pagina del loro profilo" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "Abilita Dati Stazione Di Prova" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "Abilita la raccolta dati della stazione di prova per i risultati del test" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "Abilita Ping Macchina" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "Abilita l'attività di ping periodico delle macchine registrate per controllarne lo stato" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "Totale delle scorte disponibili al momento dell'inventario" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Data" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "L'installazione dei plugin è disattivata" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "Plugin installato con successo" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Plugin installato in {path}" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "Plugin" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Nessun autore trovato" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "La quantità non corrisponde ai numeri di serie" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "L'elemento di magazzino contiene altri elementi" msgid "Stock item has been assigned to a customer" msgstr "L'elemento di magazzino è stato assegnato a un cliente" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "L'elemento di magazzino è attualmente in produzione" @@ -9262,71 +9270,71 @@ msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo fornitor msgid "Stock status codes must match" msgstr "I codici di stato dello stock devono corrispondere" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "Le giacenze non possono essere spostate perché non disponibili" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Note d'ingresso" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Il valore deve essere fornito per questo test" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "L'allegato deve essere caricato per questo test" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Risultato Test" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Test valore output" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Risultato della prova allegato" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Note del test" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "La quantità non deve superare la quantità disponibile ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Posizione magazzino di destinazione" @@ -9565,7 +9573,7 @@ msgstr "L'azienda selezionata non è un cliente" msgid "Stock assignment notes" msgstr "Note sull'assegnazione delle scorte" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "Deve essere fornito un elenco degli elementi di magazzino" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Note sugli spostamenti di magazzino" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Note sugli spostamenti di magazzino" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po index 3770082aa7..7d9d8be78c 100644 --- a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -109,9 +109,9 @@ msgstr "無効な10進数値" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "メモ" @@ -550,13 +550,13 @@ msgstr "注文ステータス" msgid "Parent Build" msgstr "親ビルド" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "バリアントを含む" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "受注残高" msgid "Allocated" msgstr "割り当てられた" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "消費されました" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "利用可能" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "注文中" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "ビルドが見つかりません" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "組立注文" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "場所" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "出力" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "出力ストックアイテムIDでフィルタリングします。未インストールビルドアイテムを検索するには「null」をご使用ください。" @@ -1830,7 +1830,7 @@ msgstr "定義" msgid "Unit definition" msgstr "ユニットの定義" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "添付ファイル" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "ビジネスロジックでこのカスタムステートに等しいステート論理キー" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "値" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "バーコードスキャンによるレスポンスデータ" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "結果" @@ -2673,8 +2673,8 @@ msgstr "為替レートの更新頻度 (ゼロに設定すると無効になり #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "日" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "在庫のないストックアイテムをストックロケーション間で移動可能" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "ビルド・オーダー参照パターン" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Build Order参照フィールドの生成に必要なパターン" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "責任ある所有者を要求" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "各注文には、責任ある所有者を指定する必要があります。" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "アクティブパートが必要" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "非稼動部品の製造オーダー作成を防止" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "ロックされた部分を要求" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "ロックされていない部品の製造オーダー作成を防止" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "有効なBOMが必要" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "BOMが検証されない限り、製造オーダーが作成されないようにします。" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "クローズド・チャイルド・オーダー" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "すべてのチャイルドオーダーが終了するまで、ビルドオーダーの完了を防止します。" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "外部ビルドオーダー" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "外部ビルドオーダー機能の有効化" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "外部ビルドオーダーを必須とする" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "外部サプライヤーから組み立て済み部品を発注する際は、外部ビルドオーダーを指定する必要があります" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "テストがパスするまでブロック" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "必要なテストがすべて合格するまで、ビルド出力が完了しないようにします。" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "返品注文の有効化" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "ユーザーインターフェイスで返品注文機能を有効にします。" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "リターンオーダー参照パターン" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "返品注文参照フィールドの生成に必要なパターン" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "完了した返品注文の編集" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "注文完了後の返品注文の編集が可能" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "販売注文参照パターン" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "販売注文参照フィールドの生成に必要なパターン" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "販売注文のデフォルト出荷" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "販売注文でデフォルト出荷を作成可能" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "完了した販売注文の編集" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "出荷または完了後の販売注文の編集を許可します。" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "出荷には確認が必要です" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "商品が確認されるまで、出荷の完了をお控えください。" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "出荷された注文を完了としてマーク" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "出荷済みと表示された販売注文は、「出荷済み」ステータスを回避して自動的に完了します。" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "在庫移動指示を有効" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "ユーザーインターフェースで在庫移動指示機能を有効にします" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "在庫移動指示コード採番フォーマット" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "在庫移動指示コードを自動採番するために使用するフォーマット(必須項目)" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "未完了項目のテストのブロック" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "必要な品目チェックが完了していない場合、販売注文への在庫品目の割り当てを防止します" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "発注書参照パターン" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "発注書参照フィールドの生成に必要なパターン" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "完了した発注書の編集" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "出荷後または完了後の発注書の編集が可能" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "通貨の変換" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "在庫を受け取る際、商品価値を基準通貨に変換" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "自動発注" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "すべての品目を受領した時点で、発注書を完了として自動的にマーク" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "パスワード忘れ" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "ログインページでのパスワード忘れ防止機能の有効化" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "登録の有効化" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "ログインページでユーザーの自己登録を可能にします。" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "SSOの有効化" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "ログインページでSSOを有効化" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "SSO登録の有効化" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "ログインページでSSOによるユーザーの自己登録を可能にします。" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "SSOグループ同期の有効化" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "InvenTreeグループとIdPが提供するグループの同期を有効にします。" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "SSOグループキー" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "IdP が提供する groups claim 属性の名前。" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "SSOグループマップ" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "SSOグループからローカルのInvenTreeグループへのマッピング。ローカル・グループが存在しない場合は、作成されます。" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "SSO外のグループを削除" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "ユーザーに割り当てられたグループがIdPによってバックエンドされていない場合に削除するかどうか。この設定を無効にすると、セキュリティ上の問題が発生する可能性があります。" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "メールアドレスは必須です" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "サインアップ時にメールの入力を要求" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "SSOユーザーの自動入力" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "SSOアカウントデータからユーザー詳細を自動入力" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "メール2回" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "サインアップの際、ユーザーに2度メールを尋ねます。" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "パスワード2回" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "サインアップ時にパスワードを2回要求" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "許可ドメイン" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "特定のドメイン(@で始まるカンマ区切り)へのサインアップを制限します。" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "登録時のグループ" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "新規ユーザ登録時に割り当てられるグループ。SSOグループ同期が有効な場合、このグループはIdPからグループを割り当てられない場合にのみ設定されます。" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "MFAの実施" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "ユーザーは多要素セキュリティを使用する必要があります。" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "この設定を有効にすると、すべてのユーザーに多要素認証の設定が必須となります。すべてのセッションは直ちに切断されます。" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "起動時にプラグインをチェック" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "起動時にすべてのプラグインがインストールされていることを確認 - コンテナ環境では有効にします。" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "プラグインのアップデートの確認" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "インストールされているプラグインのアップデートを定期的にチェックします。" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "URL統合の有効化" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "プラグインがURLルートを追加できるようにします" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "ナビゲーション統合の有効化" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "プラグインをナビゲーションに統合可能" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "アプリとの統合" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "プラグインを有効にしてアプリを追加" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "スケジュール統合の有効化" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "スケジュールタスクを実行するプラグインの有効化" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "イベント統合の有効化" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "プラグインが内部イベントに応答できるようにします。" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "インターフェース統合の有効化" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "プラグインがユーザー・インターフェースに統合できるようにします。" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "メール連携を有効にする" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "プラグインを有効にして、送信/受信メールを処理できるようにします" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "プロジェクトコードの有効化" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "プロジェクトを追跡するためのプロジェクトコードの有効化" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "棚卸機能を有効" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "過去の在庫数量および価値を記録する機能を有効にします" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "外部ロケーションを除く" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "外部拠点にある在庫品を棚卸計算から除外します" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "自動引取期間" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "自動棚卸記録の間隔(日数)" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "古い棚卸の記録を削除" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "指定した日数より古い棚卸し記録を削除します" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "棚卸しの削除間隔" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "棚卸し記録は、指定された日数が経過すると削除されます" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "古い在庫追跡記録を削除" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "指定した日数より古い在庫追跡記録を削除します" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "在庫追跡記録の削除間隔" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "在庫追跡記録は、指定された日数が経過すると削除されます" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "ユーザーのフルネームを表示" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "ユーザー名の代わりにフルネームを表示" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "ユーザープロファイルの表示" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "プロフィールページにユーザーのプロフィールを表示" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "週の始まり" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "カレンダー表示における週開始曜日" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "日曜日" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "月曜日" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "火曜日" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "水曜日" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "木曜日" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "金曜日" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "土曜日" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "テストステーションデータの有効化" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "テスト結果のテストステーションデータ収集の有効化" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "マシン ping を有効にする" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "登録されたマシンの状態を確認するため、定期的なpingタスクを有効にしてください" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "ストックテイク時の在庫可能量" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "日付" @@ -8084,77 +8092,77 @@ msgstr "TMEバーコードのスキャンをサポートします。" msgid "The Supplier which acts as 'TME'" msgstr "「TME」として活動するサプライヤー" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "プラグインの管理ができるのは、スーパーユーザーアカウントのみです" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "プラグインのインストールが無効" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "インストール用のパッケージ名またはURLが指定されていません" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "パッケージ名またはURLに無効な文字が含まれています" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "プラグインのインストールに成功しました" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "{path} にプラグインをインストール" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "プラグインがレジストリに見つかりませんでした" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "プラグインはパッケージ化されていません" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "プラグインパッケージ名が見つかりません" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "スタッフユーザーのみがプラグインを管理できます" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "プラグインのアンインストールが無効" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "プラグインがアクティブなため、アンインストールできません。" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "このプラグインは必須のため、アンインストールすることはできません。" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "このプラグインはサンプルプラグインのため、アンインストールすることはできません。" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "プラグインは組み込みプラグインのため、アンインストールすることはできません。" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "プラグインがインストールされていません" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "プラグインのインストールが見つかりません" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "プラグインのアンインストールに成功" @@ -8206,21 +8214,21 @@ msgstr "パッケージプラグイン" msgid "Plugin" msgstr "プラグイン" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "著者は見つかりませんでした" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "プラグイン'{p}'は現在のInvenTreeバージョン{v}と互換性がありません。" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "プラグインには少なくともバージョン {v} が必要です。" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "プラグインに必要なバージョンは最大で{v}です。" @@ -9218,7 +9226,7 @@ msgstr "数量がシリアル番号と一致しません" msgid "Cannot assign stock to structural location" msgstr "構造上ロケーションに在庫を割り当てることはできません" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "テストテンプレートが存在しません" @@ -9238,7 +9246,7 @@ msgstr "在庫商品には他の商品が含まれています。" msgid "Stock item has been assigned to a customer" msgstr "在庫商品が顧客に割り当てられました" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "在庫品は現在生産中です。" @@ -9262,71 +9270,71 @@ msgstr "在庫品は同じサプライヤーの部品を参照する必要があ msgid "Stock status codes must match" msgstr "在庫状況コードが一致していること" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "在庫がないため移動できません。" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "ストックアイテムのトラッキング" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "記入上の注意" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "在庫品テスト結果" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "このテストには値を指定する必要があります。" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "このテストには添付ファイルをアップロードする必要があります。" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "このテストでは無効な値です。" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "試験結果" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "テスト出力値" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "試験結果添付" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "テストノート" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "テストステーション" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "試験が実施された試験ステーションの識別子。" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "開始" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "テスト開始のタイムスタンプ" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "修了済み" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "テスト終了のタイムスタンプ" @@ -9440,8 +9448,8 @@ msgstr "在庫品目がしていされていません" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "数量は在庫数 ({q}) を超えてはなりません。" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "仕向け地" @@ -9565,7 +9573,7 @@ msgstr "選択された企業は顧客ではありません" msgid "Stock assignment notes" msgstr "株式譲渡に関する注意事項" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "在庫品のリストが必要です。" @@ -9613,27 +9621,31 @@ msgstr "在庫品目は既に在庫にあります" msgid "Quantity must not be negative" msgstr "数量は負の数であってはなりません。" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "株式取引に関する注記" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "既存の在庫に統合します" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "株式取引に関する注記" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "可能なら、返品された商品を既存の在庫商品に統合してください" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "次のシリアル番号" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "以前のシリアル番号" diff --git a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po index 8a9b7e84a0..0b32f2cb32 100644 --- a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -109,9 +109,9 @@ msgstr "잘못된 소수 값" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "메모" @@ -550,13 +550,13 @@ msgstr "주문 상태" msgid "Parent Build" msgstr "직상위 빌드" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "변형(Variant) 포함" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "미결 주문" msgid "Allocated" msgstr "할당됨" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "소모됨" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "사용 가능" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "주문 중" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "빌드를 찾을 수 없습니다" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "작업 지시서" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "위치" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "산출물" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "산출물 재고 항목 ID로 필터링합니다. 설치되지 않은 빌드 항목을 찾으려면 'null'을 사용하세요." @@ -1830,7 +1830,7 @@ msgstr "정의" msgid "Unit definition" msgstr "단위 정의" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "첨부파일" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "업무 로직에서 이 사용자 정의 상태와 동일한 상태 논리 키" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "값" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "바코드 스캔의 응답 데이터" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "결과" @@ -2673,8 +2673,8 @@ msgstr "환율을 업데이트하는 주기(0으로 설정하면 비활성화)" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "일" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "재고가 없는 재고 항목을 재고 위치 간에 이동할 수 있도록 허용합니다" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "작업 지시서 참조번호 패턴" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "작업 지시서 참조번호 필드를 생성하기 위한 필수 패턴" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "책임자 필수" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "각 주문에는 책임자가 지정되어야 합니다" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "활성 부품 필수" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "비활성 부품에 대해 작업 지시서 생성을 방지합니다" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "잠긴 부품 필수" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "잠기지 않은 부품에 대해 작업 지시서 생성을 방지합니다" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "유효한 BOM 필수" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "BOM이 검증되지 않으면 작업 지시서 생성을 방지합니다" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "하위 주문 종료 필수" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "모든 하위 주문이 종료될 때까지 작업 지시서 완료를 방지합니다" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "외주 생산 작업 지시서" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "외주 생산 작업 지시서 기능 사용" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "테스트 통과 전까지 차단" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "필수 테스트가 모두 통과될 때까지 생산 완제품 완료를 방지합니다" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "반품 주문 사용" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "사용자 인터페이스에서 반품 주문 기능을 사용합니다" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "반품 주문 참조 패턴" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "반품 주문 참조 필드를 생성하기 위한 필수 패턴" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "완료된 반품 주문 편집" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "반품 주문이 완료된 후에도 편집을 허용합니다" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "판매 주문 참조 패턴" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "판매 주문 참조 필드를 생성하기 위한 필수 패턴" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "판매 주문 기본 배송" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "판매 주문과 함께 기본 배송 생성 사용" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "완료된 판매 주문 편집" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "판매 주문이 배송되었거나 완료된 후에도 편집을 허용합니다" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "배송 확인 필요" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "항목이 확인될 때까지 배송 완료를 방지합니다" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "배송된 주문을 완료로 표시" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "\"배송됨\" 상태를 건너뛰고, 배송된 것으로 표시된 판매 주문을 자동으로 완료 처리합니다" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "구매 주문 참조 패턴" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "구매 주문 참조 필드를 생성하기 위한 필수 패턴" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "완료된 구매 주문 편집" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "구매 주문이 배송되었거나 완료된 후에도 편집을 허용합니다" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "통화 변환" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "재고 수령 시 항목 값을 기준 통화로 변환합니다" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "구매 주문 자동 완료" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "모든 라인 항목을 수령하면 구매 주문을 자동으로 완료로 표시합니다" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "비밀번호 찾기 사용" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "로그인 페이지에서 비밀번호 찾기 기능을 사용합니다" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "회원가입 사용" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "로그인 페이지에서 사용자 자기 등록(회원가입)을 사용합니다" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "SSO 사용" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "로그인 페이지에서 SSO를 사용합니다" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "SSO 등록 사용" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "로그인 페이지에서 SSO를 통한 자기 등록(회원가입)을 사용합니다" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "SSO 그룹 동기화 사용" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "IdP에서 제공하는 그룹과 InvenTree 그룹의 동기화를 사용합니다" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "SSO 그룹 키" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "IdP에서 제공하는 groups 클레임 속성의 이름" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "SSO 그룹 매핑" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "SSO 그룹을 로컬 InvenTree 그룹으로 매핑합니다. 로컬 그룹이 없으면 생성됩니다." -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "SSO 외부 그룹 제거" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "IdP에서 제공되지 않는 그룹이 사용자에게 할당되어 있으면 제거할지 여부입니다. 이 설정을 비활성화하면 보안 문제가 발생할 수 있습니다" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "이메일 필수" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "회원가입 시 이메일 입력을 요구합니다" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "SSO 사용자 자동 입력" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "SSO 계정 데이터에서 사용자 상세 정보를 자동으로 채웁니다" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "이메일 2회 입력" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "회원가입 시 이메일을 두 번 입력하도록 요청합니다" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "비밀번호 2회 입력" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "회원가입 시 비밀번호를 두 번 입력하도록 요청합니다" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "허용된 도메인" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "특정 도메인으로 회원가입을 제한합니다(쉼표로 구분, @로 시작)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "회원가입 시 그룹" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "등록 시 새 사용자가 할당될 그룹입니다. SSO 그룹 동기화가 활성화된 경우, IdP에서 그룹을 할당할 수 없을 때만 이 그룹이 설정됩니다." -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "MFA 강제" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "사용자는 다중 요소 보안을 사용해야 합니다." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "이 설정을 활성화하면 모든 사용자가 다중 요소 인증을 설정해야 합니다. 모든 세션이 즉시 연결 해제됩니다." -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "시작 시 플러그인 확인" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "시작 시 모든 플러그인이 설치되어 있는지 확인합니다(컨테이너 환경에서 사용)" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "플러그인 업데이트 확인" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "설치된 플러그인의 업데이트를 주기적으로 확인합니다" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "URL 통합 사용" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "플러그인이 URL 라우트를 추가할 수 있도록 허용합니다" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "내비게이션 통합 사용" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "플러그인이 내비게이션에 통합될 수 있도록 허용합니다" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "앱 통합 사용" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "플러그인이 앱을 추가할 수 있도록 허용합니다" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "스케줄 통합 사용" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "플러그인이 예약 작업을 실행할 수 있도록 허용합니다" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "이벤트 통합 사용" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "플러그인이 내부 이벤트에 응답할 수 있도록 허용합니다" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "인터페이스 통합 사용" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "플러그인이 사용자 인터페이스에 통합될 수 있도록 허용합니다" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "메일 통합 사용" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "플러그인이 발신/수신 메일을 처리할 수 있도록 허용합니다" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "프로젝트 코드 사용" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "프로젝트를 추적하기 위한 프로젝트 코드를 사용합니다" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "재고 실사 사용" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "과거 재고 수준과 가치를 기록하는 기능을 사용합니다" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "외부 위치 제외" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "외부 위치의 재고 품목을 재고 실사 계산에서 제외합니다" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "자동 재고 실사 주기" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "자동 재고 실사 기록 간격(일)" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "오래된 재고 실사 항목 삭제" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "지정된 일수보다 오래된 재고 실사 항목을 삭제합니다" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "재고 실사 삭제 간격" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "재고 실사 항목은 지정된 일수 후 삭제됩니다" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "오래된 재고 추적 항목 삭제" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "지정된 일수보다 오래된 재고 추적 항목을 삭제합니다" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "재고 추적 삭제 간격" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "재고 추적 항목은 지정된 일수 후 삭제됩니다" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "사용자 전체 이름 표시" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "사용자 이름 대신 사용자 전체 이름을 표시합니다" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "사용자 프로필 표시" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "프로필 페이지에 사용자 프로필을 표시합니다" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "테스트 스테이션 데이터 사용" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "테스트 결과를 위한 테스트 스테이션 데이터 수집을 사용합니다" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "장비 핑 사용" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "등록된 장비의 상태를 확인하기 위해 주기적으로 핑 작업을 수행합니다" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "재고 조사 시점의 사용 가능한 총 재고" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "날짜" @@ -8084,77 +8092,77 @@ msgstr "TME 바코드 스캔을 지원합니다" msgid "The Supplier which acts as 'TME'" msgstr "'TME' 역할을 하는 공급업체" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "슈퍼유저 계정만 플러그인을 관리할 수 있습니다" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "플러그인 설치가 비활성화되어 있습니다" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "설치할 패키지 이름 또는 URL이 제공되지 않았습니다" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "패키지 이름 또는 URL에 잘못된 문자가 있습니다" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "플러그인을 성공적으로 설치했습니다" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "플러그인을 {path}에 설치했습니다" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "레지스트리에서 플러그인을 찾을 수 없습니다" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "플러그인이 패키지 플러그인이 아닙니다" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "플러그인 패키지 이름을 찾을 수 없습니다" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "스태프 사용자만 플러그인을 관리할 수 있습니다" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "플러그인 제거가 비활성화되어 있습니다" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "플러그인이 현재 활성 상태이므로 제거할 수 없습니다" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "플러그인이 필수이므로 제거할 수 없습니다" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "플러그인이 샘플 플러그인이므로 제거할 수 없습니다" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "플러그인이 내장 플러그인이므로 제거할 수 없습니다" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "플러그인이 설치되어 있지 않습니다" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "플러그인 설치 정보를 찾을 수 없습니다" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "플러그인을 성공적으로 제거했습니다" @@ -8206,21 +8214,21 @@ msgstr "패키지 플러그인" msgid "Plugin" msgstr "플러그인" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "작성자를 찾을 수 없습니다" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "플러그인 '{p}'은(는) 현재 InvenTree 버전 {v}와 호환되지 않습니다" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "플러그인은 최소 버전 {v}가 필요합니다" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "플러그인은 최대 버전 {v}까지 지원합니다" @@ -9218,7 +9226,7 @@ msgstr "수량이 시리얼 번호와 일치하지 않습니다" msgid "Cannot assign stock to structural location" msgstr "구조적 위치에 재고를 할당할 수 없습니다" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "테스트 템플릿이 존재하지 않습니다" @@ -9238,7 +9246,7 @@ msgstr "재고 품목에 다른 품목이 포함되어 있습니다" msgid "Stock item has been assigned to a customer" msgstr "재고 품목이 고객에게 할당되었습니다" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "재고 품목이 현재 생산 중입니다" @@ -9262,71 +9270,71 @@ msgstr "재고 항목은 동일한 공급업체 부품을 참조해야 합니다 msgid "Stock status codes must match" msgstr "재고 상태 코드는 일치해야 합니다" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "재고에 없으므로 재고 항목을 이동할 수 없습니다" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "재고 항목 추적" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "항목 메모" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "재고 항목 테스트 결과" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "이 테스트에는 값을 제공해야 합니다" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "이 테스트에는 첨부 파일을 업로드해야 합니다" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "이 테스트의 값이 올바르지 않습니다" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "테스트 결과" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "테스트 출력 값" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "테스트 결과 첨부 파일" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "테스트 메모" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "테스트 스테이션" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "테스트가 수행된 테스트 스테이션의 식별자" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "시작됨" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "테스트 시작 시각" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "완료됨" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "테스트 종료 시각" @@ -9440,8 +9448,8 @@ msgstr "재고 항목이 제공되지 않았습니다" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "수량은 사용 가능한 재고 수량({q})을(를) 초과할 수 없습니다" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "대상 재고 위치" @@ -9565,7 +9573,7 @@ msgstr "선택한 회사는 고객이 아닙니다" msgid "Stock assignment notes" msgstr "재고 할당 메모" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "재고 항목 목록을 제공해야 합니다" @@ -9613,27 +9621,31 @@ msgstr "재고 항목이 이미 재고에 있습니다" msgid "Quantity must not be negative" msgstr "수량은 음수일 수 없습니다" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "재고 거래 메모" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "기존 재고로 병합" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "재고 거래 메모" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "가능하면 반품된 항목을 기존 재고 항목에 병합합니다" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "다음 일련 번호" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "이전 일련 번호" diff --git a/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po index 5aa37f323a..e1487a2ee8 100644 --- a/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Lithuanian\n" "Language: lt_LT\n" @@ -109,9 +109,9 @@ msgstr "Neteisinga dešimtainė reikšmė" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Pastabos" @@ -550,13 +550,13 @@ msgstr "Užsakymo būsena" msgid "Parent Build" msgstr "Pirminė gamyba" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "Įtraukti variantus" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Liko neįvykdytų užsakymų" msgid "Allocated" msgstr "Priskirta" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Prieinama" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Užsakyta" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Gamybos užsakymas" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Vieta" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "Apibrėžimas" msgid "Unit definition" msgstr "Vieneto apibrėžimas" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Priedas" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "Loginis būsenos raktas, atitinkantis šią pasirinkitinę būseną" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Reikšmė" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "Atsako duomenys iš brūkšninio kodo nuskaitymo" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Rezultatas" @@ -2673,8 +2673,8 @@ msgstr "Kaip dažnai atnaujinti valiutų kursus (nulis – išjungti)" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "dienos" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "Leisti perkelti atsargas tarp vietų net jei jų nėra atsargose" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Gamybos užsakymo nuorodos šablonas" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Privalomas šablonas gamybos užsakymo nuorodos laukui generuoti" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "Reikalauti atsakingo savininko" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "Kiekvienam užsakymui turi būti priskirtas atsakingas savininkas" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "Reikalauti aktyvios detalės" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "Neleidžia kurti gamybos užsakymų neaktyvioms detalėms" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "Reikalauti užrakintos detalės" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "Neleidžia kurti gamybos užsakymų neužrakintoms detalėms" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "Reikalauti galiojančio komplektavimo sąrašo (BOM)" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "Neleidžia kurti gamybos užsakymų, kol BOM nėra patvirtintas" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "Reikalauti uždarytų antrinių užsakymų" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "Neleidžia užbaigti gamybos užsakymo, kol visi antriniai užsakymai neuždaryti" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "Blokuoti, kol testai bus išlaikyti" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Neleidžia užbaigti gaminių, kol visi privalomi testai nėra išlaikyti" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "Įjungti grąžinimo užsakymus" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Įjungia grąžinimo užsakymų funkciją vartotojo sąsajoje" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Grąžinimo užsakymo nuorodos šablonas" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "Būtinas šablonas grąžinimo užsakymo nuorodos laukui generuoti" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Redaguoti užbaigtus grąžinimo užsakymus" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Leisti redaguoti grąžinimo užsakymus po jų užbaigimo" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Pardavimo užsakymo nuorodos šablonas" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Būtinas šablonas pardavimo užsakymo nuorodos laukui generuoti" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Numatytasis siuntinys pardavimo užsakymui" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Leisti automatiškai sukurti siuntinį kartu su pardavimo užsakymu" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Redaguoti užbaigtus pardavimo užsakymus" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Leisti redaguoti pardavimo užsakymus po jų išsiuntimo arba užbaigimo" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "Pažymėti išsiųstus užsakymus kaip užbaigtus" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Pardavimo užsakymai, pažymėti kaip išsiųsti, bus automatiškai užbaigti, praleidžiant būseną „išsiųsta“" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Pirkimo užsakymo nuorodos šablonas" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Būtinas šablonas pirkimo užsakymo nuorodos laukui generuoti" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Redaguoti užbaigtus pirkimo užsakymus" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Leisti redaguoti pirkimo užsakymus po jų išsiuntimo arba užbaigimo" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "Konvertuoti valiutą" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "Konvertuoti prekių vertę į pagrindinę valiutą priimant prekes" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Automatiškai užbaigti pirkimo užsakymus" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Automatiškai pažymėti pirkimo užsakymus kaip užbaigtus, kai visos eilutės yra gautos" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Įjungti pamiršto slaptažodžio funkciją" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Leisti naudoti pamiršto slaptažodžio funkciją prisijungimo puslapyje" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Įjungti registraciją" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Leisti vartotojams savarankiškai registruotis prisijungimo puslapyje" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "Įjungti vieningą prisijungimą (SSO)" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "Įjungti vieningą prisijungimą (SSO) prisijungimo puslapyje" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "Įjungti registraciją per SSO" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Leisti vartotojams registruotis per SSO prisijungimo puslapyje" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "Įjungti SSO grupių sinchronizavimą" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "Įjungti InvenTree grupių sinchronizavimą su tapatybės tiekėjo (IdP) grupėmis" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "SSO grupės raktas" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "Grupių atributo pavadinimas, kurį pateikia tapatybės tiekėjas (IdP)" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "SSO grupių susiejimas" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "SSO grupių susiejimas su vietinėmis InvenTree grupėmis. Jei vietinė grupė neegzistuoja, ji bus sukurta." -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "Pašalinti grupes, nepriklausančias SSO" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "Ar pašalinti vartotojui priskirtas grupes, jei jos nėra pateikiamos per IdP. Išjungus gali kilti saugumo problemų" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "El. paštas privalomas" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Reikalauti vartotojo el. pašto registracijos metu" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "Automatiškai užpildyti SSO naudotojų duomenis" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Automatiškai užpildyti vartotojo informaciją pagal SSO paskyros duomenis" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "Įvesti el. paštą du kartus" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "Registracijos metu prašyti vartotojų du kartus įvesti el. paštą" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Įvesti slaptažodį du kartus" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "Registracijos metu prašyti vartotojų du kartus įvesti slaptažodį" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Leidžiami domenai" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Riboti registraciją tik tam tikriems domenams (atskiriama kableliais, prasideda @)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Grupė registruojantis" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "Grupė, į kurią priskiriami nauji vartotojai registracijos metu. Jei įjungta SSO grupių sinchronizacija, ši grupė nustatoma tik tuo atveju, jei grupė negaunama iš IdP." -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "Reikalauti kelių veiksnių autentifikacijos (MFA)" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Vartotojai privalo naudoti kelių veiksnių apsaugą." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Tikrinti įskiepius paleidimo metu" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Tikrina, ar visi įskiepiai įdiegti paleidžiant – naudoti konteinerių aplinkose" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Tikrinti įskiepių atnaujinimus" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "Įjungti periodinius įdiegtų įskiepių atnaujinimų tikrinimus" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "Įjungti URL integravimą" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "Leisti įskiepiams pridėti URL maršrutus" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Įjungti navigacijos integraciją" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Leisti įskiepiams integruotis į navigaciją" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "Įjungti programų integraciją" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Leisti įskiepiams pridėti programas" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Įjungti planavimo integraciją" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Leisti įskiepiams vykdyti suplanuotas užduotis" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Įjungti įvykių integraciją" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Leisti įskiepiams reaguoti į vidinius įvykius" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "Įjungti sąsajos integraciją" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "Leisti įskiepiams integruotis į vartotojo sąsają" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "Įjungti projektų kodus" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "Įjungti projektų kodų naudojimą projektų sekimui" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Neįtraukti išorinių vietų" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Automatinės inventorizacijos periodas" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Rodyti pilnus vartotojų vardus" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Rodyti pilnus vardus vietoj vartotojo vardų" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "Rodyti vartotojų profilius" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "Rodyti vartotojų profilius jų paskyros puslapyje" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "Įjungti bandymų stoties duomenis" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "Įjungti bandymų stoties duomenų rinkimą testų rezultatams" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "Bendras prieinamas atsargų kiekis inventorizacijos metu" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Data" @@ -8084,77 +8092,77 @@ msgstr "Suteikia palaikymą TME brūkšninių kodų nuskaitymui" msgid "The Supplier which acts as 'TME'" msgstr "Tiekėjas, veikiantis kaip 'TME'" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "Įskiepių diegimas išjungtas" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "Įskiepis sėkmingai įdiegtas" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Įskiepis įdiegtas į {path}" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "Įskiepis neaptiktas registre" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "Įskiepis nėra supakuotas įskiepis" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "Įskiepio paketo pavadinimas nerastas" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "Tik personalo vartotojai gali tvarkyti įskiepius" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "Įskiepių šalinimas išjungtas" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "Įskiepis negali būti pašalintas, nes šiuo metu yra aktyvus" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "Įskiepis neįdiegtas" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "Įskiepio diegimas nerastas" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "Įskiepis sėkmingai pašalintas" @@ -8206,21 +8214,21 @@ msgstr "Pakuotės įskiepis" msgid "Plugin" msgstr "Įskiepis" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Autorius nerastas" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "Įskiepis '{p}' nesuderinamas su dabartine InvenTree versija {v}" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "Įskiepiui reikalinga bent versija {v}" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "Įskiepiui reikalinga ne aukštesnė nei versija {v}" @@ -9218,7 +9226,7 @@ msgstr "Kiekis nesutampa su serijos numeriais" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "Bandomasis šablonas neegzistuoja" @@ -9238,7 +9246,7 @@ msgstr "Atsargų elementas turi kitų elementų" msgid "Stock item has been assigned to a customer" msgstr "Atsargų elementas buvo priskirtas klientui" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "Atsargų elementas šiuo metu gaminamas" @@ -9262,71 +9270,71 @@ msgstr "Atsargų elementai turi būti susiję su ta pačia tiekėjo detale" msgid "Stock status codes must match" msgstr "Atsargų būsenos kodai turi sutapti" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "Atsargų elemento negalima perkelti, nes jo nėra sandėlyje" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "Atsargų elemento sekimas" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Įrašo pastabos" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "Atsargų elemento bandymo rezultatas" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Šiam bandymui turi būti pateikta reikšmė" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "Šiam bandymui turi būti įkeltas priedas" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "Netinkama reikšmė šiam bandymui" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Bandymo rezultatas" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Bandymo išvesties reikšmė" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Bandymo rezultato priedas" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Bandymo pastabos" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "Bandymų stotis" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "Bandymų stoties identifikatorius, kurioje atliktas bandymas" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "Pradėta" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "Bandymo pradžios laiko žyma" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "Pabaigta" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "Bandymo pabaigos laiko žyma" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Kiekis negali viršyti galimų atsargų kiekio ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Paskirties atsargų vieta" @@ -9565,7 +9573,7 @@ msgstr "Pasirinkta įmonė nėra klientas" msgid "Stock assignment notes" msgstr "Atsargų priskyrimo pastabos" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "Turi būti pateiktas atsargų elementų sąrašas" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Atsargų operacijos pastabos" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Atsargų operacijos pastabos" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "Kitas serijos numeris" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "Ankstesnis serijos numeris" diff --git a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po index ec7a5c0613..64fe7515ed 100644 --- a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Latvian\n" "Language: lv_LV\n" @@ -109,9 +109,9 @@ msgstr "" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Piezīmes" @@ -550,13 +550,13 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "" msgid "Allocated" msgstr "" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "" @@ -2673,8 +2673,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po index 867b17aaec..91fe4c7168 100644 --- a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -109,9 +109,9 @@ msgstr "Ongeldige decimale waarde" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Opmerkingen" @@ -550,13 +550,13 @@ msgstr "Status van bestelling" msgid "Parent Build" msgstr "Bovenliggende Productie" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "Inclusief varianten" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Openstaande order" msgid "Allocated" msgstr "Toegewezen" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Verbruikt" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Beschikbaar" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "In bestelling" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "Build niet gevonden" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Productieorder" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Locatie" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "Uitvoer" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Filter op uitvoer standaard item ID. Gebruik 'null' om niet geïnstalleerde build items te vinden." @@ -1830,7 +1830,7 @@ msgstr "Definitie" msgid "Unit definition" msgstr "Definitie van eenheid" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Bijlage" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "Staat logische sleutel die gelijk is aan deze staat in zakelijke logica" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Waarde" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "Reactiegegevens van de barcode scan" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Resultaat" @@ -2673,8 +2673,8 @@ msgstr "Hoe vaak te controleren op updates (nul om uit te schakelen)" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "dagen" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "Toestaan dat voorraadartikelen die niet op voorraad zijn worden overgebracht tussen voorraadlocaties" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Productieorderreferentiepatroon" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Vereist patroon voor het genereren van het Bouworderreferentieveld" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "Vereis verantwoordelijke eigenaar" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "Een verantwoordelijke eigenaar moet worden toegewezen aan elke bestelling" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "Vereist een actief onderdeel" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "Voorkom het maken van orders voor inactieve onderdelen" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "Vergrendeld onderdeel vereisen" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "Voorkom het maken van orders voor ontgrendelde onderdelen" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "Vereist een geldige BOM" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "Voorkom het creëren van bouworders tenzij BOM is gevalideerd" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "Onderliggende bestellingen vereist" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "Voorkom voltooiing van de bouw tot alle sub orders gesloten zijn" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "Externe Bouw Orders" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "Inschakelen externe build order functionaliteit" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "Blokkeren tot test geslaagd" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Voorkom dat de bouw van de uitvoer wordt voltooid totdat alle vereiste testen zijn geslaagd" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "Retourorders inschakelen" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Retourorder functionaliteit inschakelen in de gebruikersinterface" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Retourorder referentie patroon" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "Verplicht patroon voor het genereren van Retourorder referentie veld" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Bewerk voltooide retourorders" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Bewerken van retourorders toestaan nadat deze zijn voltooid" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Verkooporderreferentiepatroon" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Vereist patroon voor het genereren van het Verkooporderreferentieveld" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Standaard Verzending Verkooporder" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Aanmaken standaard verzending bij verkooporders inschakelen" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Bewerk voltooide verkooporders" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Bewerken van verkooporders toestaan nadat deze zijn verzonden of voltooid" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "Zending moet gecontroleerd worden" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "Voorkom voltooiing van verzendingen totdat items zijn gecontroleerd" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "Verstuurde bestellingen markeren als voltooid" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Verkooporders gemarkeerd als verzonden zullen automatisch worden voltooid, zonder de status \"verzonden\"" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Inkooporderreferentiepatroon" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Vereist patroon voor het genereren van het Inkooporderreferentieveld" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Bewerk voltooide verkooporders" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Bewerken van inkooporders toestaan nadat deze zijn verzonden of voltooid" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "Valuta converteren" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "Verander artikelwaarde naar basisvaluta bij het ontvangen van voorraad" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Inkooporders automatisch voltooien" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Markeer orders automatisch als voltooid wanneer alle regelitems worden ontvangen" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Wachtwoord vergeten functie inschakelen" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Wachtwoord vergeten functie inschakelen op de inlogpagina's" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Registratie inschakelen" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Zelfregistratie voor gebruikers op de inlogpagina's inschakelen" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "SSO inschakelen" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "SSO inschakelen op de inlogpagina's" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "Schakel gebruikersregistratie met SSO in" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Zelfregistratie voor gebruikers middels SSO op de inlogpagina's inschakelen" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "SSO-groep synchroniseren inschakelen" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "Inschakelen van het synchroniseren van InvenTree groepen met groepen geboden door de IdP" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "SSO groep sleutel" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "De naam van de groepen claim attribuut van de IdP" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "SSO groep kaart" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "Een mapping van SSO-groepen naar lokale InvenTree groepen. Als de lokale groep niet bestaat, zal deze worden aangemaakt." -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "Verwijder groepen buiten SSO" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "Of groepen die zijn toegewezen aan de gebruiker moeten worden verwijderd als ze geen backend zijn door de IdP. Het uitschakelen van deze instelling kan beveiligingsproblemen veroorzaken" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "E-mailadres verplicht" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Vereis gebruiker om e-mailadres te registreren bij aanmelding" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "SSO-gebruikers automatisch invullen" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Gebruikersdetails van SSO-accountgegevens automatisch invullen" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "E-mail twee keer" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "Bij inschrijving gebruikers twee keer om hun e-mail vragen" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Wachtwoord tweemaal" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "Laat gebruikers twee keer om hun wachtwoord vragen tijdens het aanmelden" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Toegestane domeinen" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Inschrijven beperken tot bepaalde domeinen (komma-gescheiden, beginnend met @)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Groep bij aanmelding" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "Groep waaraan nieuwe gebruikers zijn toegewezen op registratie. Als SSO-groepssynchronisatie is ingeschakeld, is deze groep alleen ingesteld als er geen groep vanuit de IdP kan worden toegewezen." -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "MFA afdwingen" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Gebruikers moeten multifactor-beveiliging gebruiken." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "Het inschakelen van deze instelling zal ervoor zorgen dat alle gebruikers multifactor authenticatie instellen. Alle sessies worden onmiddellijk verbroken." -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Controleer plugins bij het opstarten" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Controleer of alle plug-ins zijn geïnstalleerd bij het opstarten - inschakelen in container-omgevingen" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Controleren op plug-in updates" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "Schakel periodieke controles voor updates voor geïnstalleerde plug-ins in" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "Activeer URL-integratie" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "Plugins toestaan om URL-routes toe te voegen" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Activeer navigatie integratie" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Plugins toestaan om te integreren in navigatie" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "Activeer app integratie" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Activeer plug-ins om apps toe te voegen" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Activeer planning integratie" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Activeer plugin om periodiek taken uit te voeren" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Activeer evenement integratie" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Activeer plugin om op interne evenementen te reageren" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "Interface integratie activeren" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "Plug-ins inschakelen om te integreren in de gebruikersinterface" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "E-mail integratie inschakelen" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "Schakel plug-ins in om uitgaande / inkomende mails te verwerken" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "Activeer project codes" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "Schakel projectcodes in voor het bijhouden van projecten" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "Voorraadcontrole inschakelen" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "Functionaliteit voor het opnemen van historische voorraadniveaus en -waarde inschakelen" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Externe locaties uitsluiten" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Voorraadartikelen op externe locaties uitsluiten van voorraadberekeningen" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Automatische Voorraadcontrole Periode" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "Aantal dagen tussen automatische voorraadgegevens opnemen" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "Oude voorraadgegevens verwijderen" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "Voorraadgegevens verwijderen die ouder zijn dan het opgegeven aantal dagen" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "Interval Voorraadgegevens verwijderen" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "Voorraadgegevens zal worden verwijderd na het opgegeven aantal dagen" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "Oude voorraadgegevens verwijderen" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "Inverval voor verwijderen van voorraadtracking" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Gebruikers volledige namen weergeven" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Laat gebruikers volledige namen zien in plaats van gebruikersnamen" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "Gebruikersprofielen tonen" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "Toon gebruikersprofielen op hun profielpagina" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "De week begint op" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "Eerste dat van de week, voor in de kalenderweergaven" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "Zondag" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "Maandag" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "Dinsdag" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "woensdag" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "Donderdag" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "Vrijdag" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "Zaterdag" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "maanden" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "Inschakelen van teststation data" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "Schakel teststation gegevensverzameling in voor testresultaten" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "Machine Ping inschakelen" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "Schakel periodieke ping taak van geregistreerde machines in om hun status te controleren" @@ -6644,7 +6652,7 @@ msgid "Total available stock at time of stocktake" msgstr "Totale voorraad op het moment van voorraadcontrole" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Datum" @@ -8085,77 +8093,77 @@ msgstr "Biedt ondersteuning voor het scannen van TME barcodes " msgid "The Supplier which acts as 'TME'" msgstr "De leverancier die als \"TME” optreedt " -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "Plug-in installatie is uitgeschakeld" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "Plug-in succesvol geïnstalleerd" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Plug-in geïnstalleerd in {path}" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "De plug-in is niet gevonden in het register" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "De plug-in is geen verpakte plug-in" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "Naam van plug-in pakket niet gevonden" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "Alleen medewerker gebruikers kunnen plug-ins beheren" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "Verwijderen van plug-in is uitgeschakeld" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "De plug-in kan niet worden verwijderd omdat deze momenteel actief is" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "De plug-in kan niet gedeïnstalleerd worden omdat deze verplicht is" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "De plug-in kan niet worden gedeïnstalleerd omdat het een voorbeeld plug-in is" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "De plug-in kan niet worden gedeïnstalleerd omdat het een ingebouwde plug-in is" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "De plug-in is niet geïnstalleerd" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "Plug-in installatie niet gevonden" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "Deïnstalleerde plug-in succesvol" @@ -8207,21 +8215,21 @@ msgstr "Pakket plug-in" msgid "Plugin" msgstr "Plug-in" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Geen auteur gevonden" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "De plug-in '{p}' is niet compatibel met de huidige InvenTree versie {v}" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "De plug-in vereist minimaal versie {v}" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "Plug-in vereist op de hoogste versie {v}" @@ -9219,7 +9227,7 @@ msgstr "Hoeveelheid komt niet overeen met serienummers" msgid "Cannot assign stock to structural location" msgstr "Kan voorraad niet toewijzen aan structurele locatie" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "Testsjabloon bestaat niet" @@ -9239,7 +9247,7 @@ msgstr "Voorraadartikel bevat andere producten" msgid "Stock item has been assigned to a customer" msgstr "Voorraadartikel is aan een klant toegewezen" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "Voorraad item is momenteel in productie" @@ -9263,71 +9271,71 @@ msgstr "Voorraadartikelen moeten verwijzen naar dezelfde leveranciersdeel" msgid "Stock status codes must match" msgstr "De voorraad statuscodes moeten overeenkomen" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "Voorraadartikel kan niet worden verplaatst omdat het niet op voorraad is" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "Voorraad item volgen" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Item notities" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "Resultaat voorraad test resultaten" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Waarde moet voor deze test worden opgegeven" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "Bijlage moet worden geüpload voor deze test" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "Ongeldige waarde voor deze test" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Test resultaat" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Test uitvoer waarde" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Test resultaat bijlage" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Test notities" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "Test station" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "De identificatie van het teststation waar de test werd uitgevoerd" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "Gestart" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "Het tijdstip van de start test" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "Afgerond" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "Het tijdstip van de afgeronde test" @@ -9441,8 +9449,8 @@ msgstr "Geen voorraad item opgegeven" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Hoeveelheid mag niet hoger zijn dan de beschikbare voorraad ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Locatie van bestemming" @@ -9566,7 +9574,7 @@ msgstr "Geselecteerde bedrijf is geen klant" msgid "Stock assignment notes" msgstr "Voorraad toewijzing notities" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "Een lijst met voorraad artikelen moet worden opgegeven" @@ -9614,27 +9622,31 @@ msgstr "Voorraad artikel is al in voorraad" msgid "Quantity must not be negative" msgstr "Hoeveelheid mag niet negatief zijn" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Voorraad transactie notities" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "Samenvoegen in bestaande voorraad" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Voorraad transactie notities" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "Voeg indien mogelijk geretourneerde items samen in bestaande voorraad" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "Volgend serienummer" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "Vorig serienummer" diff --git a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po index 438a19ca1c..4d6f3dd788 100644 --- a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -109,9 +109,9 @@ msgstr "" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Notater" @@ -550,13 +550,13 @@ msgstr "Ordrestatus" msgid "Parent Build" msgstr "Overordnet produksjon" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "" msgid "Allocated" msgstr "Tildelt" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Tilgjengelig" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "I bestilling" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Produksjonsordre" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Plassering" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "Definisjon" msgid "Unit definition" msgstr "Enhetsdefinisjon" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Vedlegg" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Verdi" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Resultat" @@ -2673,8 +2673,8 @@ msgstr "Hvor ofte valutakurser skal oppdateres (sett til null for å deaktiverer #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "dager" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Produksjonsordre-referansemønster" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Nødvendig mønster for å generere Produksjonsordre-referansefeltet" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "Aktiver returordrer" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Aktiver returordrefunksjonalitet i brukergrensesnittet" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Returordre-referansemønster" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Rediger fullførte returordrer" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Tillat redigering av returordrer etter de er fullført" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Salgsordre-referansemønster" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Påkrevd mønster for å generere salgsordrereferansefelt" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Salgsordre standard fraktmetode" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Aktiver opprettelse av standard forsendelse med salgsordrer" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Rediger fullførte salgsordrer" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Tillat redigering av salgsordrer etter de har blitt sendt eller fullført" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Referansemønster for innkjøpsordre" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Obligatorisk mønster for generering av referansefelt for innkjøpsordre" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Rediger fullførte innkjøpsordre" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Tillat redigering av innkjøpsordre etter at de har blitt sendt eller fullført" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Autofullfør innkjøpsordrer" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Automatisk merk innkjøpsordre som fullført når alle ordrelinjer er mottatt" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Aktiver passord glemt" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Ativer funskjon for glemt passord på innloggingssidene" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Aktiver registrering" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Aktiver egenregistrerting for brukerer på påloggingssidene" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "Aktiver SSO" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "Aktiver SSO på innloggingssidene" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "Aktiver SSO-registrering" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Aktiver selvregistrering via SSO for brukere på innloggingssiden" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "E-postadresse kreves" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Krevt at brukere angir e-post ved registrering" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "Auto-utfyll SSO-brukere" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Fyll automatisk ut brukeropplysninger fra SSO-kontodata" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "E-post to ganger" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "Spør brukeren om e-post to ganger ved registrering" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Passord to ganger" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "Spør brukeren om passord to ganger ved registrering" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Tillatte domener" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Begrens registrering til bestemte domener (kommaseparert, begynner med @)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Gruppe ved registrering" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "Krev MFA" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Brukere må bruke flerfaktorsikkerhet." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Sjekk utvidelser ved oppstart" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Sjekk at alle utvidelser er installert ved oppstart - aktiver i containermiljøer" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "Aktiver URL-integrasjon" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "Tillat utvidelser å legge til URL-ruter" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Aktiver navigasjonsintegrasjon" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Tillat utvidelser å integrere mot navigasjon" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "Aktiver app-integrasjon" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Tillat utvidelser å legge til apper" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Aktiver tidsplanintegrasjon" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Tillat utvidelser å kjøre planlagte oppgaver" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Aktiver hendelsesintegrasjon" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Tillat utvidelser å reagere på interne hendelser" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Ekskluder eksterne plasseringer" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Automatisk varetellingsperiode" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Vis brukernes fulle navn" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Vis brukernes fulle navn istedet for brukernavn" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Dato" @@ -8084,77 +8092,77 @@ msgstr "Gir støtte for å skanne TME-strekkoder" msgid "The Supplier which acts as 'TME'" msgstr "Leverandøren som fungerer som \"TME\"" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "Installasjon av utvidelse vellykket" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Installerte utvidelsen til {path}" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "Utvidelse" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Ingen forfatter funnet" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "Utvidensen '{p}' er ikke kompatibel med nåværende InvenTree-versjon {v}" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "Utvidelsen krever minst versjon {v}" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "Utvidelsen krever maks versjon {v}" @@ -9218,7 +9226,7 @@ msgstr "Antallet stemmer ikke overens med serienumrene" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "Lagervare inneholder andre artikler" msgid "Stock item has been assigned to a customer" msgstr "Lagervare har blitt tildelt til en kunde" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "Lagervare er for tiden i produksjon" @@ -9262,71 +9270,71 @@ msgstr "Lagervarer må referere til samme leverandørdel" msgid "Stock status codes must match" msgstr "Lagerstatuskoder må være like" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagervare kan ikke flyttes fordi den ikke er på lager" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Oppføringsnotater" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Verdi må angis for denne testen" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "Vedlegg må lastes opp for denne testen" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Testresultat" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Testens verdi" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Vedlegg til testresultat" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Testnotater" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Antall kan ikke overstige tilgjengelig lagerbeholdning ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Til Lagerplassering" @@ -9565,7 +9573,7 @@ msgstr "Valgt firma er ikke en kunde" msgid "Stock assignment notes" msgstr "Lagervare-tildelignsnotater" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "En liste av lagervarer må oppgis" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Lager transaksjonsnotater" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Lager transaksjonsnotater" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po index 0b530ebf61..30079e5287 100644 --- a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -109,9 +109,9 @@ msgstr "Niepoprawna wartość dziesiętna" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Uwagi" @@ -550,13 +550,13 @@ msgstr "Status zamówienia" msgid "Parent Build" msgstr "Budowa nadrzędna" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "Obejmuje warianty" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Zaległe zamówienie" msgid "Allocated" msgstr "Przydzielono" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Dostępne" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "W Zamówieniu" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Zlecenie Budowy" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Lokalizacja" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "Wyjście" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "Definicja" msgid "Unit definition" msgstr "Definicja jednostki" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Załącznik" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Wartość" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Wynik" @@ -2673,8 +2673,8 @@ msgstr "Jak często aktualizować kursy wymiany walut (ustaw zero aby wyłączy #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "dni" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "Przekonwertuj walutę" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "Konwertuj wartość przedmiotu na walutę bazową podczas otrzymywania zapasów" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Automatycznie wypełniaj zlecenia zakupu" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Automatycznie oznacz zlecenia jako zakończone po odebraniu wszystkich pozycji" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Włącz opcję zapomnianego hasła" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Włącz funkcję zapomnianego hasła na stronach logowania" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Włącz rejestrację" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Włącz samodzielną rejestrację dla użytkowników na stronach logowania" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "Włącz SSO" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "Włącz SSO na stronach logowania" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "Włącz rejestrację SSO" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Włącz samodzielną rejestrację przez SSO dla użytkowników na stronach logowania" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "Włącz synchronizację grupy SSO" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "Włącz synchronizację grup InvenTree z grupami dostarczonymi przez IdP" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "Adres e-mail jest wymagany" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "Autouzupełnianie użytkowników SSO" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Automatycznie wypełnij dane użytkownika z danych konta SSO" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "E-mail dwa razy" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich adres e-mail" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Hasło dwukrotnie" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich hasło" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Grupuj przy rejestracji" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "Wymuś MFA" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Użytkownicy muszą używać zabezpieczeń wieloskładnikowych." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Sprawdź wtyczki przy starcie" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Sprawdź dostępność aktualizacji wtyczek" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "Włącz okresowe sprawdzanie aktualizacji zainstalowanych wtyczek" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "Włącz integrację URL" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "Włącz wtyczki, aby dodać ścieżki URL" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "Włącz integrację z aplikacją" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Włącz wtyczki, aby dodać aplikacje" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Włącz wtyczki, aby uruchamiać zaplanowane zadania" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "Włącz kody projektów" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "Włącz kody projektów do śledzenia projektów" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "Włącz funkcjonalność dla zapisywania historycznych poziomów zapasów i wartości" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Data" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "Wtyczka" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Nie znaleziono autora" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Notatki do wpisu" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Należy podać wartość dla tego testu" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Wynik testu" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po index cce1b30e52..4fe73003da 100644 --- a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Portuguese\n" "Language: pt_PT\n" @@ -109,9 +109,9 @@ msgstr "" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Anotações" @@ -550,13 +550,13 @@ msgstr "Situação do pedido" msgid "Parent Build" msgstr "Produção Progenitor" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "" msgid "Allocated" msgstr "Alocado" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Disponível" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "No pedido" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Ordem de Produção" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Local" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "Definição" msgid "Unit definition" msgstr "Definição de unidade" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Anexo" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Valor" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Resultado" @@ -2673,8 +2673,8 @@ msgstr "Com que frequência atualizar as taxas de câmbio (defina como zero para #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "dias" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "Permitir que os itens que não estão em estoque sejam transferidos entre locais de estoque" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Modelo de Referência de Pedidos de Produção" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Modelo necessário para gerar campo de referência do Pedido de Produção" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "Requer Proprietário Responsável" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "Um proprietário responsável deve ser atribuído a cada ordem" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "Bloquear até os Testes serem Aprovados" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Impedir que as saídas da produção sejam concluídas até que todos os testes sejam aprovados" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "Ativar Pedidos de Devolução" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Ativar funcionalidade de pedido de retorno na interface do usuário" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Modelo de Referência de Pedidos de Devolução" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Editar os Pedidos de Devolução Concluídos" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Permitir a edição de pedidos de devolução após serem enviados ou concluídos" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Modelo de Referência de Pedidos de Venda" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Modelo necessário para gerar campo de referência do Pedido de Venda" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Envio Padrão de Pedidos de Venda" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Habilitar criação de envio padrão com Pedidos de Vendas" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Editar os Pedidos de Vendas concluídos" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Permitir a edição de pedidos de vendas após serem enviados ou concluídos" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Modelo de Referência de Pedidos de Compras" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Modelo necessário para gerar campo de referência do Pedido de Compra" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Editar Pedidos de Compra Concluídos" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Permitir a edição de pedidos de compras após serem enviados ou concluídos" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Autocompletar Pedidos de Compra" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Marcar automaticamente os pedidos de compra como concluídos quando todos os itens de linha forem recebidos" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Habitar esquecer senha" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Habilitar a função \"Esqueci minha senha\" nas páginas de acesso" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Habilitar cadastro" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Ativar auto-registro para usuários na página de entrada" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "Ativar SSO" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "Ativar SSO na página de acesso" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "Ativar registro SSO" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Ativar auto-registro por SSO para usuários na página de entrada" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "Email obrigatório" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Exigir do usuário o e-mail no cadastro" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "Auto-preencher usuários SSO" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Preencher automaticamente os detalhes do usuário a partir de dados da conta SSO" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "Enviar email duplo" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "No registro pedir aos usuários duas vezes pelo email" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Senha duas vezes" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "No registro pedir aos usuários duas vezes pela senha" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Domínios permitidos" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Restringir registros a certos domínios (separados por vírgula, começando com @)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Grupo no cadastro" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "Forçar AMF" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Os usuários devem usar uma segurança multifator." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Checar extensões no início" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Checar que todas as extensões instaladas no início — ativar em ambientes de contêineres" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Verificar por atualizações de plugin" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "Habilitar verificações periódicas de atualizações para plugins instalados" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "Ativar integração URL" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "Ativar extensão para adicionar rotas URL" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Ativar integração de navegação" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Ativar extensões para integrar à navegação" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "Ativa integração com aplicativo" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Ativar extensões para adicionar aplicativos" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Ativar integração do calendário" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Ativar extensões para executar tarefas agendadas" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Ativar integração de eventos" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Ativar extensões para responder a eventos internos" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Excluir Locais Externos" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Período de Balanço Automático" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Mostrar nomes completos dos usuários" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Mostrar Nomes Completos em vez de Nomes de Usuário" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "Estoque total disponível no momento do balanço" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Data" @@ -8084,77 +8092,77 @@ msgstr "Fornece suporte para escanear códigos de barras TME" msgid "The Supplier which acts as 'TME'" msgstr "O fornecedor que atua como 'TME'" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "Plugin instalado com sucesso" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Plugin instalado na {path}" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "Extensões" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Nenhum autor encontrado" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "A extensão '{p}' não é compatível com a versão atual do InvenTree {v}" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "Extensão requer pelo menos a versão {v}" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "Extensão requer no máximo a versão {v}" @@ -9218,7 +9226,7 @@ msgstr "A quantidade não corresponde aos números de série" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "item em estoque contem outro(s) items" msgid "Stock item has been assigned to a customer" msgstr "Item em estoque foi reservado para outro cliente" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "Item no estoque está em produção no momento" @@ -9262,71 +9270,71 @@ msgstr "Itens de estoque devem se referir à mesma peça do fornecedor" msgid "Stock status codes must match" msgstr "Códigos de estado do estoque devem corresponder" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "Item do estoque não pode ser realocado se não houver estoque da mesma" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Observações de entrada" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Deve-se fornecer o valor desse teste" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "O anexo deve ser enviado para este teste" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Resultado do teste" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Valor da saída do teste" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Anexo do resultado do teste" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Notas do teste" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Quantidade não deve exceder a quantidade disponível em estoque ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Local de destino do estoque" @@ -9565,7 +9573,7 @@ msgstr "A empresa selecionada não é um cliente" msgid "Stock assignment notes" msgstr "Nodas atribuídas a estoque" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "Uma lista de item de estoque deve ser providenciada" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Notas da transação de estoque" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Notas da transação de estoque" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po index f4485cf01e..f54a06c881 100644 --- a/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -109,9 +109,9 @@ msgstr "Valor decimal inválido" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Observações" @@ -550,13 +550,13 @@ msgstr "Status de pedido" msgid "Parent Build" msgstr "Produção principal" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "Incluir variáveis" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Pedido pendente" msgid "Allocated" msgstr "Alocado" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Consumido" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Disponível" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Em pedido" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "Produção não encontrada" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Pedido de produção" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Local" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "Saída" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Filtrar por ID do item de estoque de saída. Use 'null' para encontrar itens de produção não instalados." @@ -1830,7 +1830,7 @@ msgstr "Definição" msgid "Unit definition" msgstr "Definição de unidade" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Anexo" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "Chave lógica de estado que é igual a este estado personalizado na lógica de negócios" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Valor" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "Dados de resposta da verificação de código de barras" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Resultado" @@ -2673,8 +2673,8 @@ msgstr "Com que frequência atualizar as taxas de câmbio (defina como zero para #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "Dias" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "Permitir que os itens que não estão em estoque sejam transferidos entre locais de estoque" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Modelo de referência de pedidos de produção" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Modelo necessário para gerar campo de referência do pedido de produção" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "Exigir proprietário responsável" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "Um proprietário responsável deve ser atribuído a cada pedido" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "Requer peça ativa" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "Impedir a criação de ordem para peças inativas" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "Exigir peça bloqueada" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "Impedir criação de pedidos para peças desbloqueadas" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "Exigir validade, BOM" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "Impedir criação de pedido de produção a menos que lista de materiais tenha sido validada" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "Exigir pedidos secundários fechados" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "Impedir o preenchimento do pedido de construção até que todos os pedidos secundários sejam fechados" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "Pedido de produção externo" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "Ativar funcionalidade de pedido de construção externa" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "Exigir pedidos de produção externos" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "Exigir um pedido de produção externo ao solicitar peças montadas de um fornecedor externo" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "Bloquear até passagem de testes" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Impedir que as saídas da produção sejam concluídas até que todos os testes necessários passem" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "Ativar pedidos de devolução" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Ativar funcionalidade de pedido de devolução na interface do usuário" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Modelo de referência de pedidos de devolução" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "Modelo necessário para gerar campo de referência do pedido de devolução" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Editar os pedidos de devolução concluídos" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Permitir a edição de pedidos de devolução após serem enviados ou concluídos" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Modelo de referência de pedidos de venda" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Modelo necessário para gerar campo de referência do pedido de venda" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Envio padrão de pedidos de venda" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Habilitar criação de envio padrão com pedidos de vendas" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Editar os pedidos de vendas concluídos" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Permitir a edição de pedidos de vendas após serem enviados ou concluídos" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "Remessa requer verificação" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "Impedir a conclusão de remessas até que os itens sejam verificados" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "Marcar pedidos enviados como concluídos" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Pedidos de vendas marcados como enviados automaticamente serão concluídos, ignorando o status \"enviado\"" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "Habilitar pedidos de transferência" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "Habilitar a funcionalidade de pedido de transferência na interface do usuário" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "Padrão de referência do pedido de transferência" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "Padrão obrigatório para gerar o campo de referência do pedido de transferência" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "Bloquear testes de item incompletos" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "Impedir a alocação de itens de estoque a pedidos de venda se os testes obrigatórios do item estiverem incompletos" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Modelo de referência de pedidos de compras" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Modelo necessário para gerar campo de referência do pedido de compra" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Editar pedidos de compra concluídos" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Permitir a edição de pedidos de compras após serem enviados ou concluídos" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "Converter moeda" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "Converter valor de item para moeda base quando receber o estoque" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Completar automaticamente os pedidos de compra" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Marcar automaticamente os pedidos de compra como concluídos quando todos os itens de linha forem recebidos" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Ativar senha esquecida" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Ativar a função \"Esqueci minha senha\" nas páginas de acesso" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Ativar cadastro" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Ativar auto-registro para usuários na página de entrada" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "Ativar SSO" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "Ativar SSO na página de acesso" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "Ativar registro SSO" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Ativar auto-registro via SSO para usuários nas páginas de login" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "Ativar sincronização de grupo SSO" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "Ativar sincronização de grupos do InvenTree com grupos fornecidos pelo IdP" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "Chave de grupo SSO" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "O nome dos grupos reivindicam o atributo fornecido pelo IdP" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "Mapa do grupo SSO" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "Um mapeamento de grupos de SSO para grupos locais de InvenTree. Se o grupo local não existir, será criado." -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "Remover grupos fora do SSO" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "Se os grupos atribuídos ao usuário devem ser removidos somente se eles não são o backend pelo IdP. Pois essa configuração desabilitada pode causar problemas de segurança" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "E-mail obrigatório" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Exigir do usuário o e-mail no cadastro" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "Auto-preencher usuários SSO" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Preencher automaticamente os detalhes do usuário a partir de dados da conta SSO" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "Enviar e-mail duplo" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "Ao se registrar, peça aos usuários duas vezes por seus e-mails" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Senha duas vezes" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "No registro pedir aos usuários duas vezes pela senha" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Domínios permitidos" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Restringir registros a certos domínios (separados por vírgula, começando com @)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Grupo no cadastro" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "Grupo ao qual novos usuários serão atribuídos ao registro. Se a sincronização de grupo SSO estiver ativada, este grupo só estará definido se nenhum grupo puder ser atribuído a partir do IdP." -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "Forçar AMF" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Os usuários devem usar uma segurança multifatorial." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "Habilitar esta configuração exigirá que todos os usuários configurem a autenticação multifator. Todas as sessões serão desconectadas imediatamente." -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Verificar extensões na inicialização" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Checar que todas as extensões instaladas no início — ativar em ambientes de contêineres" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Verificar por atualizações de extensão" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "Ativar verificações periódicas de atualizações para a extensão instalados" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "Ativar integração URL" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "Ativar extensão para adicionar rotas URL" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Ativar integração de navegação" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Ativar extensões para integrar à navegação" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "Ativar integração com aplicativo" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Ativar extensões para adicionar aplicativos" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Ativar integração com agendas" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Ativar extensões para executar tarefas agendadas" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Ativar integração de eventos" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Ativar extensões para responder a eventos internos" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "Ativar integração de interface" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "Ativar extensões para integrar na interface do usuário" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "Ativar integração com o e-mail" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "Ativar extensão para processar e-mails de saída/entrada" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "Ativar códigos de projeto" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "Ativar códigos de projeto para rastrear projetos" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "Habilitar inventário" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "Ativar funcionalidade para gravação de níveis e valor de estoque históricos" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Excluir locais externos" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Excluir dos cálculos de inventário os itens de estoque em locais externos" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Período de contagem automática" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "Número de dias entre os registros automáticos de inventário" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "Excluir registros de inventário antigos" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "Excluir registros de inventário com mais dias do que o especificado" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "Intervalo de exclusão de inventário" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "Os registros de inventário serão excluídos após o número de dias especificado" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "Excluir registros de rastreamento de estoque antigos" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "Excluir registros de rastreamento de estoque com mais dias do que o especificado" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "Intervalo de exclusão de rastreamento de estoque" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "Os registros de rastreamento de estoque serão excluídos após o número de dias especificado" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Exibir nomes completos dos usuários" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Exibir nomes completos dos usuários em vez de nomes de usuários" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "Exibir perfis de usuário" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "Exibir perfis de usuários em sua página de perfil" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "Semana começa em" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "Dia inicial da semana, para exibição nas visualizações de calendário" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "Domingo" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "Segunda-feira" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "Terça-feira" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "Quarta-feira" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "Quinta-feira" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "Sexta-feira" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "Sábado" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "Horizonte do calendário" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "Número de meses no futuro a exibir nas visualizações de calendário" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "meses" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "Ativar dados da estação de teste" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "Ativar coleção de dados da estação de teste para resultados de teste" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "Habilitar ping de máquina" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "Habilitar a tarefa periódica de ping das máquinas registradas para verificar seu status" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "Estoque total disponível no momento do inventário" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Data" @@ -8084,77 +8092,77 @@ msgstr "Fornece suporte para ler códigos de barras da TME" msgid "The Supplier which acts as 'TME'" msgstr "O fornecedor que atua como 'TME'" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "Apenas contas de superusuário podem administrar plugins" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "A instalação de plugins está desabilitada" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "Nenhum nome de pacote ou URL fornecido para instalação" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "Caracteres inválidos no nome do pacote ou URL" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "Plugin instalado com sucesso" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Plugin instalado em {path}" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "O plugin não foi encontrado no registro" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "O plugin não é um plugin empacotado" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "Nome do pacote do plugin não encontrado" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "Apenas usuários da equipe podem administrar plugins" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "A desinstalação de plugins está desabilitada" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "O plugin não pode ser desinstalado porque está ativo no momento" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "O plugin não pode ser desinstalado porque é obrigatório" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "O plugin não pode ser desinstalado porque é um plugin de exemplo" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "O plugin não pode ser desinstalado porque é um plugin integrado" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "O plugin não está instalado" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "Instalação do plugin não encontrada" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "Plugin desinstalado com sucesso" @@ -8206,21 +8214,21 @@ msgstr "Plugin empacotado" msgid "Plugin" msgstr "Plugin" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Nenhum autor encontrado" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "O plugin '{p}' não é compatível com a versão atual do InvenTree {v}" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "O plugin requer pelo menos a versão {v}" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "O plugin requer no máximo a versão {v}" @@ -9218,7 +9226,7 @@ msgstr "A quantidade não corresponde aos números de série" msgid "Cannot assign stock to structural location" msgstr "Não é possível atribuir estoque a um local estrutural" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "O modelo de teste não existe" @@ -9238,7 +9246,7 @@ msgstr "O item de estoque contém outros itens" msgid "Stock item has been assigned to a customer" msgstr "O item de estoque foi atribuído a um cliente" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "O item de estoque está atualmente em produção" @@ -9262,71 +9270,71 @@ msgstr "Os itens de estoque devem se referir à mesma peça de fornecedor" msgid "Stock status codes must match" msgstr "Os códigos de status do estoque devem coincidir" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "O item de estoque não pode ser movido porque não está em estoque" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "Rastreamento do item de estoque" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Notas do registro" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "Resultado de teste do item de estoque" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Um valor deve ser fornecido para este teste" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "Um anexo deve ser enviado para este teste" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "Valor inválido para este teste" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Resultado do teste" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Valor de saída do teste" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Anexo do resultado do teste" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Notas do teste" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "Estação de teste" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "O identificador da estação de teste onde o teste foi realizado" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "Iniciado" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "A data/hora de início do teste" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "Concluído" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "A data/hora de término do teste" @@ -9440,8 +9448,8 @@ msgstr "Nenhum item de estoque fornecido" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "A quantidade não pode exceder a quantidade de estoque disponível ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Local de estoque de destino" @@ -9565,7 +9573,7 @@ msgstr "A empresa selecionada não é um cliente" msgid "Stock assignment notes" msgstr "Notas da atribuição de estoque" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "Uma lista de itens de estoque deve ser fornecida" @@ -9613,27 +9621,31 @@ msgstr "O item de estoque já está em estoque" msgid "Quantity must not be negative" msgstr "A quantidade não pode ser negativa" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Notas da transação de estoque" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "Definir local de estoque para os itens contados (opcional)" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "Mesclar com o estoque existente" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Notas da transação de estoque" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "Definir local de estoque para os itens contados (opcional)" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "Mesclar itens devolvidos com itens de estoque existentes, se possível" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "Próximo número de série" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "Número de série anterior" diff --git a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po index c7c48e8a57..35834a2f87 100644 --- a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Romanian\n" "Language: ro_RO\n" @@ -109,9 +109,9 @@ msgstr "Valoare zecimală nevalidă" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Notițe" @@ -550,13 +550,13 @@ msgstr "Starea comenzii" msgid "Parent Build" msgstr "Construcție părinte" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "İnclude variante" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Comandă restantă" msgid "Allocated" msgstr "Alocate" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Consumat" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Disponibil" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Pe comandă" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Comenzi de Producție" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Locatie" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "Ieșire" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Filtrează după ID-ul elementelor de ieșire din stoc. Utilizați \"null\" pentru a găsi elemente de construcție dezinstalate." @@ -1830,7 +1830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "" @@ -2673,8 +2673,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "Necesită Titularul Responsabil" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "Titularul responsabil trebuie să fie atribuit fiecărei comenzi" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "Comenzi externe de producție" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "Blochează până la trecerea testelor" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Previne ca ieșirile de construcție să fie finalizate până când toate testele necesare trec" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Comenzile de vânzare marcate ca expediate vor fi finalizate automat, ocolind starea \"expediate\"" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Activează parola uitată" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Activare parolă uitată funcție pe paginile de autentificare" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Parola de două ori" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "La înscriere, cere de două ori parola lor" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Afișează numele complet al utilizatorilor în loc de nume de utilizator" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po index 3477f31b54..44a302a2f7 100644 --- a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -109,9 +109,9 @@ msgstr "Не верное десятичное значение" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Заметки" @@ -550,13 +550,13 @@ msgstr "Статус заказа" msgid "Parent Build" msgstr "Родительский заказ на производство" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "Включая варианты" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Невыполненные заказы" msgid "Allocated" msgstr "Зарезервировано" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Потреблено" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Доступно" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "В заказе" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Заказ на производство" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Расположение" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "Выход" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Фильтрация по идентификатору исходящей складской позиции. Используйте 'null', чтобы найти несмонтированные элементы сборки." @@ -1830,7 +1830,7 @@ msgstr "Определение" msgid "Unit definition" msgstr "Определение единицы измерения" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Вложения" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "Логическое состояние, соответствующее пользовательскому состоянию в бизнес-логике" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Значение" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "Данные ответа от сканирования штрихкода" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Результат" @@ -2673,8 +2673,8 @@ msgstr "Как часто обновлять курс валют (установ #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "дней" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "Разрешить перемещение товаров, которых нет на складе, между складами" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Паттерн ссылки заказа на производство" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Поле требуемого паттерна для создания ссылки заказа на производство" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "Требуется ответственный владелец" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "Ответственный владелец должен быть назначен для каждого заказа" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "Требовать активную деталь" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "Запрещать создание заказов на сборку для неактивных деталей" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "Требовать заблокированную деталь" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "Запрещать создание заказов на сборку для разблокированных деталей" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "Требовать валидную спецификацию" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "Запрещать создание заказов на сборку, пока спецификация не будет подтверждена" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "Требовать закрытия дочерних заказов" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "Запрещать завершение заказа на сборку, пока не закрыты все дочерние заказы" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "Сторонний заказ на сборку" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "Включить функциональность сторонних заказов на сборку" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "Блокировать до прохождения тестов" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Запретить вывод сборки до тех пор, пока не пройдут все необходимые тесты" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "Включить заказы на возврат" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Включите функцию заказа на возврат в пользовательском интерфейсе" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Шаблон заказа на возврат товара" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "Необходимый шаблон для создания поля «Возврат заказа»" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Редактировать завершенные возвратные заказы" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Разрешить редактирование возвращенных заказов после их завершения" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Шаблон заказа на возврат товара" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Необходимый шаблон для создания поля «Возврат заказа»" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Отгрузка по умолчанию для заказа на продажу" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Включить создание отгрузки по умолчанию для заказов на продажу" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Редактирование завершённых заказов на продажу" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Разрешить редактирование заказов на продажу после их отправки или завершения" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "Отгрузка требует проверки" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "Запрещать завершение отгрузок, пока товары не проверены" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "Отмечать отправленные заказы как завершённые" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Заказы на продажу, помеченные как отгруженные, будут автоматически завершены, минуя статус 'отгружено'" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Шаблон ссылки заказа на закупку" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Требуемый шаблон для генерации поля ссылки заказа на закупку" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Редактировать завершённые заказы на закупку" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Разрешить редактирование заказов после их отправки или завершения" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "Конвертировать валюту" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "Преобразовывать стоимость товара в базовую валюту при поступлении на склад" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Автоматически выполнять заказы на закупку" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Автоматически отмечать заказы на закупку как завершённые при получении всех позиций" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Включить функцию восстановления пароля" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Включить функцию восстановления пароля на странице входа" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Разрешить регистрацию" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Включить самостоятельную регистрацию пользователей на странице входа" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "Включить SSO" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "Включить SSO на странице входа" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "Включить регистрацию через SSO" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Включить самостоятельную регистрацию пользователей через SSO на странице входа" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "Включить синхронизацию групп через SSO" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "Включить синхронизацию групп InvenTree с группами, предоставляемыми IdP" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "Ключ группы SSO" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "Имя атрибута группы, предоставленного провайдером идентификации" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "Отображение групп SSO" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "Отображение от групп SSO к локальным группам InvenTree. Если локальная группа не существует, она будет создана." -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "Удалять группы вне SSO" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "Удалять ли группы, назначенные пользователю, если они не поддерживаются провайдером идентификации. Отключение этой настройки может привести к проблемам безопасности" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "Необходимо указать EMail" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Требовать электронную почту при регистрации" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "Автозаполнение пользователей SSO" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Автоматически заполнять данные пользователя из аккаунта SSO" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "Написать дважды" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "При регистрации дважды спрашивать адрес электронной почты" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Пароль дважды" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "При регистрации запросить пароль у пользователей дважды" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Разрешенные домены" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Ограничить регистрацию определёнными доменами (через запятую, начиная с @)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Группа при новой регистрации" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "Группа, на которую назначаются новые пользователи при регистрации. Если включена синхронизация группы SSO, эта группа задается только в том случае, если ни одна группа не может быть назначена через IdP." -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "Принудительное MFA" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Пользователи должны использовать многофакторную безопасность." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "Включение этой настройки потребует от всех пользователей настройки многофакторной аутентификации. Все сессии будут отключены немедленно." -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Проверять плагины при запуске" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Проверять, что все плагины установлены при запуске — включать в контейнерных средах" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Проверка обновлений плагинов" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "Включить периодическую проверку обновлений установленных плагинов" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "Включить интеграцию URL" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "Разрешить плагинам добавлять маршруты URL" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Включить интеграцию навигации" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Разрешить плагинам интегрироваться в навигацию" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "Включить интеграцию приложений" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Разрешить плагинам добавлять приложения" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Включить интеграцию расписаний" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Разрешить плагинам запускать запланированные задачи" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Включить интеграцию событий" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Разрешить плагинам реагировать на внутренние события" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "Включить интеграцию интерфейса" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "Разрешить плагинам интегрироваться в пользовательский интерфейс" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "Включить интеграцию почты" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "Разрешить плагинам обрабатывать исходящую и входящую почту" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "Включить коды проекта" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "Включить коды проекта для отслеживания проектов" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "Включить инвентаризацию" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "Включить функцию записи истории уровней и стоимости запасов" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Исключить сторонний склад" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Исключить из инвентаризации единицы хранения на внешних складах" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Автоматический период инвентаризации" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "Кол-во дней между автоматических записей инвентаризации" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "Удалять устаревшие записи инвентаризаций" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "Удалять записи инвентаризаций старше N дней" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "Частота удаления записей инвентаризаций" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "Записи инвентаризации будут удалены после N дней" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "Удалять старые записи истории запасов" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "Удалять записи истории запасов старше указанного количества дней" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "Интервал удаления истории запасов" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "Записи истории запасов будут удалены через указанное количество дней" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Показывать полные имена пользователей" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Отображать полные имена пользователей вместо логинов" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "Отображать профили пользователей" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "Отображать профили пользователей на их странице профиля" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "Добавлять данные об испытательном оборудовании" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "Добавлять данные об испытательном оборудовании в результаты тестирования" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "Включить пинг машин" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "Включить периодическую задачу пинга зарегистрированных машин для проверки их статуса" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "Общий доступный запас на момент инвентаризации" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Дата" @@ -8084,77 +8092,77 @@ msgstr "Предоставляет поддержку сканирования msgid "The Supplier which acts as 'TME'" msgstr "Поставщик, который представляет 'TME'" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "Установка плагинов отключена" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "Плагин успешно установлен" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Плагин установлен в {path}" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "Плагин не найден в реестре" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "Плагин не является упакованным" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "Имя пакета плагина не найдено" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "Только пользователи с правами персонала могут управлять плагинами" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "Удаление плагинов отключено" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "Плагин нельзя удалить, так как он активен" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "Плагин нельзя удалить, так как он обязательный" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "Плагин нельзя удалить, так как он является образцом" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "Плагин нельзя удалить, так как он встроенный" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "Плагин не установлен" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "Установка плагина не найдена" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "Плагин успешно удалён" @@ -8206,21 +8214,21 @@ msgstr "Пакетный плагин" msgid "Plugin" msgstr "Плагин" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Автор не найден" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "Плагин '{p}' несовместим с текущей версией InvenTree {v}" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "Плагин требует как минимум версию {v}" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "Плагин требует не более версии {v}" @@ -9218,7 +9226,7 @@ msgstr "Количество не соответствует серийным н msgid "Cannot assign stock to structural location" msgstr "Нельзя назначить запас в структурное местоположение" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "Шаблон теста не существует" @@ -9238,7 +9246,7 @@ msgstr "Складская позиция содержит другие дета msgid "Stock item has been assigned to a customer" msgstr "Складская позиция была назначена покупателю" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "Складская позиция в производстве" @@ -9262,71 +9270,71 @@ msgstr "Складские позиции должны ссылаться на msgid "Stock status codes must match" msgstr "Коды статуса запаса должны совпадать" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "Складской элемент нельзя переместить, так как он отсутствует на складе" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "Отслеживание складского элемента" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Заметки к записи" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "Результат теста складского элемента" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Для этого теста должно быть указано значение" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "Для этого теста требуется загрузить вложения" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "Недопустимое значение для этого теста" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Результат тестирования" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Результат выполнения теста" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Вложение с результатом теста" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Заметки о тестировании" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "Испытательное оборудование" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "Идентификатор испытательного оборудования, на котором выполнялось тестирование" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "Запущен" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "Время начала тестирования" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "Завершён" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "Время окончания тестирования" @@ -9440,8 +9448,8 @@ msgstr "Складской элемент не предоставлен" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Количество не должно превышать доступный запас ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Целевое место хранения" @@ -9565,7 +9573,7 @@ msgstr "Выбранная компания не является покупат msgid "Stock assignment notes" msgstr "Записи о назначенных запасах" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "Необходимо предоставить список складских позиций" @@ -9613,27 +9621,31 @@ msgstr "Складской элемент уже на складе" msgid "Quantity must not be negative" msgstr "Количество не должно быть отрицательным" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Заметки об изменении склада" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "Объединить с существующим запасом" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Заметки об изменении склада" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "Объединять возвращённые элементы с существующими складскими элементами, если возможно" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "Следующий серийный номер" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "Предыдущий серийный номер" diff --git a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po index cb4904a6a7..262b746f3f 100644 --- a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Slovak\n" "Language: sk_SK\n" @@ -109,9 +109,9 @@ msgstr "" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "" @@ -550,13 +550,13 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "" msgid "Allocated" msgstr "" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "" @@ -2673,8 +2673,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po index efbab5b512..f4d70ec09f 100644 --- a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Language: sl_SI\n" @@ -109,9 +109,9 @@ msgstr "" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Zapiski" @@ -550,13 +550,13 @@ msgstr "" msgid "Parent Build" msgstr "Nadrejena izgradnja" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "" msgid "Allocated" msgstr "Dodeljeno" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Na voljo" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Nalog izgradnje" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Priloga" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "" @@ -2673,8 +2673,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po index b51ac39e8d..b9fdcd14e6 100644 --- a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" "Language: sr_CS\n" @@ -109,9 +109,9 @@ msgstr "Neispravna decimalna vrednost" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Napomene" @@ -550,13 +550,13 @@ msgstr "Status naloga" msgid "Parent Build" msgstr "Roditeljski proizvod" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "Uključi varijante" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Neizmirena narudžbina" msgid "Allocated" msgstr "Alocirano" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Dostupno" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Po narudžbini" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Nalog za izradu" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Lokacija" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "Definicija" msgid "Unit definition" msgstr "Definicija jedinice" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Prilog" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "Stanje logičkog ključa je jednako posebnom ključu u poslovnoj logici" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Vrednost" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "Podaci odgovora za skeniranje bar koda" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Rezultat" @@ -2673,8 +2673,8 @@ msgstr "Koliko često ažurirati devizne kurseve (podesi na nulu za onemogućti) #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "dani" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "Dozvoli da stavke sa zaliha koje nisu na zalihama budu premeštane između lokacija zaliha" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Referentni šablon naloga za izradu" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Potreban šablon za generisanje referentnog polja naloga za izradu" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "Potreban odgovoran vlasnik" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "Odgovoran vlasnik mora biti dodeljen svakom nalogu" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "Potreban aktivan deo" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "Spreči kreiranje naloga za izradu za neaktivne delove" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "Potreban zaključan deo" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "Spreči kreiranje nalogaza izradu za otključane delove" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "Potreban validan spisak materijala" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "Spreči kreiranje naloga za izradu pre validacije spiska materijala" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "Potrebno završavanje podređenih naloga" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "Spreči završavanje naloga za izradu pre završavanja svih podređenih naloga" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "Blokiraj dok ne prođe test" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Spreči završavanje naloga za izradu pre uspešnog završetka svih testova" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "Omogući naloge za vraćanje" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Omogući funkcionalnost vraćana u korisničkom interfejsu" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Referentni šablon naloga za vraćanje" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "Potreban šablon pri generisanju referentnog polja naloga za vraćanje" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Izmeni završene naloge za vraćanje" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Dozvoli izmenu naloga za vraćanje nakon što su završeni" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Referentni šablon naloga za prodaju" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Potreban šablon pri generisanju referentnog polja naloga za prodaju" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Podrazumevana isporuka naloga za prodaju" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Omogućava kreiranje podrazumevane isporuke sa nalozima za prodaju" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Izmeni završene naloge za prodaju" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Dozvoli izmenu naloga za prodaju nakon što su isporučeni ili završeni" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "Označi isporučene naloge kao završene" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Nalozi za prodaju označeni kao isporučeni će automatski biti završeni, zaobilazeći status isporučen" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Referentni šablon naloga za kupovinu" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Potreban šablon pri generisanju referentnog polja naloga za kupovinu" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Izmeni završene naloge za kupovinu" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Dozvoli izmenu naloga za kupovinu nakon što su isporučeni ili završeni" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Automatski završi naloge za kupovinu" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Automatski označi naloge za kupovinu kao završene kada su primljene sve stavke porudžbine" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Omogući zaboravljenu lozinku" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Omogući funkcionalnost zaboravljene lozinke na stranicama za prijavljivanje" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Omogući registraciju" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Omogući registraciju korisnicima na stranicama za prijavljivanje" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "Omogući SSO" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "Omogući SSO na stranicama za prijavljivanje" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "Omogući SSO registraciju" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Omogući registraciju preko SSO za korisnike na stranicaa za prijavljivanje" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "Omogući SSO sinhronizaciju grupa" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "Omogući sinhronizaciju grupa aplikacije sa grupama IdP-a" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "SSO ključ grupe" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "Nazivi grupa dobijaju atribute od IdP-a" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "Mapiranje SSO grupa" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "Mapiranje SSO grupa u lokalne grupe aplikacije. Ukoliko lokalna grupa ne postoji, biće kreirana." -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "Ukloni grupe van SSO" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "Da li će grupe dodeljene korisnicima biti uklonjene ukoliko nisu podržane IdP-om. Onemogućavanje ovoga može dovesti do problema." -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "Email neophodan" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Zahtevaj od korisnika da dostavi mejl prilikom registracije" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "Automatski popuni SSO korisnike" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Automatski popuni korisnikove podatke iz SSO naloga" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "Email dva puta" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "Pitaj korisnika dva puta za email prilikom registracije" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Lozinka dva puta" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "Pitaj korisnika dva puta za lozinku prilikom registracije" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Dozvoljeni domeni" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Ograniči registraciju na određene domene (razdvojeni zapetom, počinju sa @)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Grupa pri registrovanju" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "Grupa kojoj se novi korisnici dodeljuju pri registraciji. Ukoliko je SSO group sync omogućen, ova grupa će se dodavati ukoliko korisnik ne može da dobije grupu iz IdP-a." -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "Nametni MFA" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Korisnici moraju koristiti multifaktorsku bezbednost" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Proveri plugine pri pokretanju" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Proveri da li su svi pluginovi instalirani pri pokretanju - omogućeni u kontejnerskim okruženjima" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Proveri ažuriranja pluginova" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "Omogući periodično proveranje pluginova" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "Omogući URL integraciju" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "Omogući da pluginovi dodaju URL rute" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Omogući integraciju u navigaciju" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Omogući integraciju pluginova u navigaciju" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "Omogući integraciju aplikacija" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Omogući pluginovima da dodaju aplikacije" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Omogući integraciju planiranja" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Omogući da plugini izvršavaju planirane zadatke" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Omogući integraciju događaja" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Omogući da plugini odgovaraju na unutrašnje događaje" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "Omogući integraciju interfejsa" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "Omogući integraciju pluginova u korisnički interfejs" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Ne uključuj eksterne lokacije" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Period automatskog popisa" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Prikaži puna imena korisnika" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Prikaži puna imena korisnika umesto korisničkih imena" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "Omogući podatke test stanica" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "Omogući prikupljanje podataka sa test stanica radi rezultata testova" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "Ukupne dostupne zalihe za vreme popisa" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Datum" @@ -8084,77 +8092,77 @@ msgstr "Pruža podršku za skeniranje TME bar kodova" msgid "The Supplier which acts as 'TME'" msgstr "Dobavljač koji se ponaša kao 'TME'" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "Instalacija plugina je onemogućena" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "Plugin instaliran uspešno" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Instaliran plugin na {path}" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "Plugin nije pronađen u registru" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "Plugin nije paket plugin" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "Ime paketa plugina nije pronađeno" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "Samo osoblje može da administrira pluginove" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "Deinstaliranje plugina je onemogućeno" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "Plugin ne može biti deinstaliran jer je trenutno aktivan" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "Plugin nije instaliran" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "Instalacija plugina nije pronađena" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "Plugin uspešno deinstaliran" @@ -8206,21 +8214,21 @@ msgstr "Paket plugin" msgid "Plugin" msgstr "Plugin" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Nije pronađen autor" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "Plugin '{p}' nije kompatibilan sa trenutnom verzijom aplikacije {v}" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "Plugin zahteva najmanje verziju {v}" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "Plugin zahteva najviše verziju {v}" @@ -9218,7 +9226,7 @@ msgstr "Količine se ne poklapaju sa serijskim brojevima" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "Test šablon ne postoji" @@ -9238,7 +9246,7 @@ msgstr "Stavka sa zaliha sadrži druge stavke" msgid "Stock item has been assigned to a customer" msgstr "Stavka sa zaliha je dodeljena mušteriji" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "Stavka sa zaliha je trenutno u produkciji" @@ -9262,71 +9270,71 @@ msgstr "Stavke sa zaliha se moraju odnositi na isti deo dobavljača" msgid "Stock status codes must match" msgstr "Statusne šifre zaliha moraju da se poklapaju" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stavka se ne može pomeriti jer nije na zalihama" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "Praćenje stavke sa zaliha" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Ulazne beleške" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "Rezultat testa stavke sa zaliha" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Vrednost mora biti dostavljena za ovaj test" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "Prilog mora biti dostavljen za ovaj test" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "Nevažeća vrednost za ovaj test" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Rezultat testa" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Vrednost završetka testa" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Prilog uz test rezultat" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Beleške sa testa" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "Stanica za testiranje" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "Identifikator stanice za testiranje gde je test izvršen" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "Započeto" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "Vreme početka testa" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "Završeno" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "Vreme završetka testa" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Količina ne sme da pređe dostupnu količinu zaliha ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Odredišna lokacija zaliha" @@ -9565,7 +9573,7 @@ msgstr "Izabrana kompanija nije mušterija" msgid "Stock assignment notes" msgstr "Beleške dodeljivanja zaliha" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "Lista stavki mora biti dostavljena" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Beleške transakcija zaliha" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Beleške transakcija zaliha" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po index e9db8a0def..1e236595b2 100644 --- a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -109,9 +109,9 @@ msgstr "" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Anteckningar" @@ -550,13 +550,13 @@ msgstr "Orderstatus" msgid "Parent Build" msgstr "Föregående tillverkning" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "Inkludera varianter" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "" msgid "Allocated" msgstr "Allokerad" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Konsumerad" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Tillgänglig" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Byggorder" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Plats" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "Definition" msgid "Unit definition" msgstr "" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Bilaga" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Värde" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Resultat" @@ -2673,8 +2673,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "dagar" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Förhindra produktion från att slutföras tills alla nödvändiga tester är klara" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Aktivera registrering" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "Aktivera SSO" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Tillåtna domäner" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Datum" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Testresultat" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "Startad" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po index 1f3c7d3e04..c0179305a4 100644 --- a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -109,9 +109,9 @@ msgstr "" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "หมายเหตุ" @@ -550,13 +550,13 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "" msgid "Allocated" msgstr "" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "สถานที่" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "ไฟล์แนบ" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "" @@ -2673,8 +2673,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po index 2be00ab01a..c83e87422a 100644 --- a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -109,9 +109,9 @@ msgstr "Geçersiz ondalık değer" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Notlar" @@ -550,13 +550,13 @@ msgstr "Sipariş Durumu" msgid "Parent Build" msgstr "Üst Yapım İşi" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "Varyantları Dahil Et" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "Sipariş Açık" msgid "Allocated" msgstr "Tahsis Edildi" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Tüketildi" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Mevcut" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Siparişte" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "Üretim bulunamadı" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Üretim Emri" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Konum" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "Çıktı" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "Çıktı stok kalemi ID'sine göre filtrele. Takılmamış üretim kalemlerini bulmak için ‘null’ kullan." @@ -1830,7 +1830,7 @@ msgstr "Tanımlama" msgid "Unit definition" msgstr "Birim tanımlaması" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Ek" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "İş mantığında bu özel duruma eşit olan durum mantıksal anahtarı" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Değer" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "Barkod taramasından gelen yanıt verisi" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Sonuç" @@ -2673,8 +2673,8 @@ msgstr "Döviz kurlarını şu sıklıkla güncelle (etkisizleştirmek için sı #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "günler" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "Stokta olmayan kalemlerin stok konumları arasında aktarılmasına izin ver" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Üretim Emri Referans Şablonu" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Üretim emri referans alanını üretmek için gerekli şablon" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "Sorumlu Sahip Gerektir" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "Her siparişe sorumlu bir yetkili atanmalıdır." -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "Aktif Parça Gerektirir" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "Pasif parçalarla üretim emri oluşturmayı engelle" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "Kilitli Parça Gerekli" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "Kilidi açılmış parçalarla üretim emri oluşturmayı engelle" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "Geçerli BOM gereklidir." -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "BOM henüz doğrulanmadan üretim emri oluşturmayı engelle" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "Kapalı Alt Siparişler Gerekli" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "Tüm alt emirler kapatılana kadar üretim emrini tamamlamayı engelle" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "Harici Üretim Emirleri" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "Harici üretim emri işlevselliğini etkinleştir" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "Harici Üretim Emirlerini Gerekli Kıl" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "Harici bir tedarikçiden montajlı parçalar sipariş ederken harici bir üretim emri gerekli kıl" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "Testler Geçene Kadar Engelle" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Tüm gerekli testler geçene kadar üretim çıktılarını tamamlamayı engelle" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "İade Siparişlerini Etkinleştir" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Kullanıcı arayüzünde iade siparişi işlevselliğini etkinleştir" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Kullanıcı arayüzünde iade siparişi işlevselliğini etkinleştirin." -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "İade Sipariş referans alanı oluşturmak için gerekli desen" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Tamamlanan İade Siparişlerini Düzenle" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Tamamlandıktan sonra iade siparişlerini düzenlemeye izin ver" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Satış Siparişi Referans Şablonu" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Satış Siparişi referans alanını üretmek için gerekli şablon" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Satış Siparişi Varsayılan Gönderi" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Satış siparişleriyle varsayılan gönderi oluşturmayı etkinleştir" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Tamamlanmış Satış Siparişlerini Düzenle" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Gönderilen veya tamamlanan satış siparişlerini düzenlemeye izin ver" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "Kontrol Gerektiren Gönderi" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "Kalemler kontrol edilene dek gönderilerin tamamlanmasını engelle" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "Gönderilen Siparişleri Tamamlandı Olarak İmle" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Gönderildi olarak işaretli satış siparişleri \"gönderildi\" durumu atlanarak otomatik olarak tamamlanacaktır" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "Aktarım Emirlerini Etkinleştir" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "Kullanıcı arayüzünde aktarım emri işlevselliğini etkinleştir" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "Aktarım Emri Referans Deseni" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "Aktarım emri referans alanını üretmek için gereken desen" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "Eksik Ürün Testlerini Engelle" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "Gerekli ürün testleri eksik ise, stok kalemlerinin satış siparişlerine tahsis edilmesini engelle" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Satın Alma Siparişi Referans Şablonu" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Satın Alma Siparişi referans alanını üretmek için gerekli şablon" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Tamamlanan Satın Alma Siparişlerini Düzenle" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Gönderildikten veya tamamlandıktan sonra satın alma siparişlerini düzenlemeye izin ver" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "Para Birimini Dönüştür" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "Stok alınırken kalem değerini temel para birimine dönüştür" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Satın Alma Siparişlerini Otomatik Tamamla" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Tüm satırlar alındığında satın alma siparişini otomatikmen tamamlandı olarak işaretle" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Şifremi unuttum seçeneğini etkinleştir" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Oturum açma sayfasında şifremi unuttum özelliğini etkinleştir" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Kayıt olmayı etkinleştir" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Oturum açma sayfalarında kullanıcılar için kendini kaydetme özelliğini etkinleştir" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "SSO Etkinleştir" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "Oturum açma sayfalarında SSO etkinleştir" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "SSO ile kayıt olmayı etkinleştir" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Oturum açma sayfalarında kullanıcılar için SSO ile kendini kaydetmeyi etkinleştir" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "SSO grup eşitlemeyi etkinleştir" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "InvenTree gruplarını IdP tarafından sağlanan gruplar ile eşitlemeyi etkinleştir" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "SSO grup anahtarı" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "IdP tarafından sağlanan talep özniteliğinin adı" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "SSO grup haritası" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "SSO gruplarından yerel InvenTree gruplarına bir eşleme. Yerel grup yoksa, oluşturulacaktır." -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "SSO dışındaki grupları kaldır" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "IdP arka ucu tarafından olmayan, kullanıcıya atanmış grupların kaldırılıp kaldırılmayacağı. Bu ayarı etkisizleştirmek güvenlik sorunlarına neden olabilir" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "E-posta Gerekir" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Üyelik sırasında kullanıcının eposta sağlamasını gerektir" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "SSO kullanıcıları otomatik doldur" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Kullanıcı ayrıntılarını TOA hesabı verisinden otomatik olarak doldur" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "Postayı iki kez gir" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "Hesap oluştururken kullanıcıların postalarını iki kez girmelerini iste" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Şifreyi iki kez gir" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "Hesap oluştururken kullanıcıların şifrelerini iki kez girmesini iste" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Alanlara izin ver" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Belirli alanlara hesap açmayı kısıtla (virgülle ayrılmış, @ ile başlayan)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Hesap oluştururken grup" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "Yeni kullanıcıların kayıt sırasında atanacağı grup. Eğer TOA grup eşitlemesi etkinse, yalnızca ıdP'den hiçbir grup atanamazsa bu grup ayarlanır." -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "ÇFKD'yi Zorunlu Kıl" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Kullanıcıların çok faktörlü kimlik doğrulamasını kullanması gerekmektedir." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "Bu ayarı etkinleştirmek, tüm kullanıcıların çok faktörlü kimlik doğrulamayı ayarlamasını gerektirecektir. Tüm oturumlar hemen kapatılacaktır." -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Başlangıçta eklentileri kontrol et" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Başlangıçta tüm eklentilerin kurulmuş olduğunu kontrol et - konteyner ortamlarında etkinleştir" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Eklenti güncellemelerini kontrol et" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "Kurulu eklentiler için periyodik güncelleme kontrolünü etkinleştir" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "URL entegrasyonunu etkinleştir" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "URL yönlendirmesi eklemek için eklentileri etkinleştir" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Gezinti entegrasyonunu etkinleştir" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Eklentilerin gezintiye entegre edilmesini etkinleştir" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "Uygulama entegrasyonunu etkinleştir" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Uygulamalar eklemek için eklentileri etkinleştir" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Zamanlama entegrasyonunu etkinleştir" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Zamanlanmış görevleri çalıştırmak için eklentileri etkinleştir" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Olay entegrasyonunu etkinleştir" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Eklentilerin olaylara yanıt verebilmesini etkinleştirin" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "Arayüz entegrasyonunu etkinleştir" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "Eklentilerin kullanıcı arayüzüne entegre olmasını etkinleştir" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "Posta entegrasyonunu etkinleştir" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "Eklentilerin giden/gelen postaları işlemesini etkinleştir" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "Proje kodlarını etkinleştir" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "Projeleri takip etmek için proje kodlarını etkinleştir" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "Stok Sayımını Etkinleştir" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "Geçmiş stok seviyelerini ve değerini kaydetme işlevini etkinleştir" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Harici Konumları Hariç Tut" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Harici konumlardaki stok kalemlerini stok geçmişi hesaplamalarının dışında tut" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Otomatik Stok Sayımı Periyodu" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "Otomatik stok geçmişi kaydı arasındaki gün sayısı" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "Eski Stok Geçmişi Girdilerini Sil" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "Belirtilen gün sayısından daha eski stok geçmişi girdilerini sil" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "Stok Geçmişi Silme Aralığı" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "Stok geçmişi girdileri belirtilen gün sayısı sonrasında silinecektir" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "Eski Stok Takip Kayıtlarını Sil" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "Belirtilen gün sayısından daha eski stok takip kayıtlarını sil" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "Stok Geçmişi Silme Aralığı" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "Stok takip kayıtları belirtilen gün sayısı sonrasında silinecektir" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Kullancıların tam isimlerini görüntüle" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Kullanıcı adı yerine kullanıcıların tam adlarını görüntüle" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "Kullanıcı Profillerini Göster" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "Kullanıcıların Profillerini kendi profil sayfalarında göster" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "Haftanın başladığı gün" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "Takvimlerde görüntülemek için haftanın başlangıç günü" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "Pazar" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "Pazartesi" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "Salı" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "Çarşamba" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "Perşembe" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "Cuma" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "Cumartesi" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "Takvim Ufku" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "Takvim görünümlerinde görüntülenecek gelecek ayların sayısı" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "aylar" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "Test İstasyon Verisini Etkinleştir" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "Test sonuçları için test istasyonundan veri toplamayı etkinleştir" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "Makine Pingini Etkinleştir" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "Durumlarını kontrol etmek için kayıtlı makinelerin periyodik ping görevini etkinleştir" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "Sayım anındaki toplam mevcut stok" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Tarih" @@ -8084,77 +8092,77 @@ msgstr "TME barkodları taraması için destek sağlar" msgid "The Supplier which acts as 'TME'" msgstr "'TME' rolünü üstlenen tedarikçi" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "Eklentileri yalnızca süper kullanıcı hesapları yönetebilir" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "Eklenti kurulumu devre dışı bırakıldı" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "Kurulum için bir paket adı veya URL belirtilmemiştir" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "Paket adı veya URL içinde geçersiz karakterler" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "Eklenti kurulumu başarılı" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Eklenti {path} yoluna kuruldu" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "Eklenti kayıt defterinde bulunamadı" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "Eklenti paketlenmiş bir eklenti değildir" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "Eklenti paketi adı bulunamadı" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "Eklentileri yalnızca yetkili personel yönetebilir" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "Eklenti kaldırma devre dışı bırakıldı" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "Bu eklenti şu an aktif olduğundan kaldırılamaz" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "Eklenti zorunlu olduğu için kaldırılamaz" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "Eklenti örnek bir eklenti olduğu için kaldırılamaz" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "Eklenti yerleşik bir eklenti olduğu için kaldırılamaz" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "Eklenti kurulu değil" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "Eklenti kurulumu bulunamadı" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "Eklenti başarıyla kaldırıldı" @@ -8206,21 +8214,21 @@ msgstr "Paket Eklenti" msgid "Plugin" msgstr "Eklenti" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Yazar bulunamadı" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "'{p}' eklentisi, şu anki InvenTree sürümü {v} ile uyumlu değildir" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "Eklenti en az {v} sürümünü gerektirir" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "Eklenti en fazla {v} sürümünü gerektirir" @@ -9218,7 +9226,7 @@ msgstr "Miktar seri numaları ile eşleşmiyor" msgid "Cannot assign stock to structural location" msgstr "Stok, yapısal bir konuma atanamaz" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "Test şablonu mevcut değil" @@ -9238,7 +9246,7 @@ msgstr "Stok kalemi başka kalemleri de içermektedir" msgid "Stock item has been assigned to a customer" msgstr "Stok kalemi bir müşteriye atanmıştır" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "Stok kalemi şu anda üretim aşamasındadır" @@ -9262,71 +9270,71 @@ msgstr "Stok kalemleri aynı tedarikçi parçasını ifade etmelidir" msgid "Stock status codes must match" msgstr "Stok durum kodları eşleşmelidir" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stok kalemi stokta olmadığı için taşınamaz" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "Stok Kalemi Takibi" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Giriş notları" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "Stok Kalemi Test Sonucu" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Bu test için değer sağlanmalıdır" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "Bu test için dosya eki yüklenmelidir" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "Bu tet için geçersiz değer" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Test sonucu" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Test çıktı değeri" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Test sonucu eki" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Test notları" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "Test istasyonu" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "Testin gerçekleştirildiği test istasyonunun tanımlayıcısı" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "Başladı" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "Test başlangıcı zaman damgası" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "Bitti" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "Test bitişi zaman damgası" @@ -9440,8 +9448,8 @@ msgstr "Stok kalemi belirtilmedi" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Miktar, mevcut stok miktarını ({q}) aşmamalıdır" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Hedef stok konumu" @@ -9565,7 +9573,7 @@ msgstr "Seçili şirket bir müşteri değil" msgid "Stock assignment notes" msgstr "Stok tahsis notları" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "Bir stok kalemleri listesi girilmelidir" @@ -9613,27 +9621,31 @@ msgstr "Stok kalemi zaten stokta" msgid "Quantity must not be negative" msgstr "Miktar negatif olamaz" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Stok aktarım notları" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "Sayılan kalemler için stok konumunu belirle (isteğe bağlı)" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "Mevcut stokla birleştir" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Stok aktarım notları" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "Sayılan kalemler için stok konumunu belirle (isteğe bağlı)" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "Mümkünse iade edilen ürünleri mevcut stoklarla birleştir" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "Sıradaki Seri Numarası" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "Önceki Seri Numarası" diff --git a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po index 9b1486de18..195114c9cf 100644 --- a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -109,9 +109,9 @@ msgstr "Неправильне десяткове значення" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Нотатки" @@ -550,13 +550,13 @@ msgstr "" msgid "Parent Build" msgstr "" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "" msgid "Allocated" msgstr "" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Доступно" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Місце" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "" @@ -2673,8 +2673,8 @@ msgstr "" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "Чи призначені групи користувачеві повинні бути видалені, якщо вони не є резервним сервером IdP. Відключення цього налаштування може спричинити проблеми безпеки" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Дата" @@ -8084,77 +8092,77 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" @@ -9218,7 +9226,7 @@ msgstr "" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "" msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "" @@ -9262,71 +9270,71 @@ msgstr "" msgid "Stock status codes must match" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "" @@ -9565,7 +9573,7 @@ msgstr "" msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po index 236cb86277..9c70fca6d7 100644 --- a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -109,9 +109,9 @@ msgstr "" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "Ghi chú" @@ -550,13 +550,13 @@ msgstr "Trạng thái đặt hàng" msgid "Parent Build" msgstr "Phiên bản cha" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "" msgid "Allocated" msgstr "Đã cấp phát" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "Đã dùng" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "Có sẵn" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "Bật đơn hàng" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "Tạo đơn hàng" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "Địa điểm" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "" @@ -1830,7 +1830,7 @@ msgstr "Định nghĩa" msgid "Unit definition" msgstr "Định nghĩa đơn vị" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "Đính kèm" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "Giá trị" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "Kết quả" @@ -2673,8 +2673,8 @@ msgstr "Mức độ thường xuyên để cập nhật tỉ giá hối đoái ( #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "ngày" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "Mã tham chiếu đơn đặt bản dựng" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "Mẫu bắt buộc cho để trường tham chiếu đơn đặt bản dựng" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "Bật đơn hàng trả lại" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "Bật chức năng đơn hàng trả lại trong giao diện người dùng" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "Mẫu tham chiếu đơn hàng trả lại" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "Sửa đơn hàng trả lại đã hoàn thành" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "Cho phép sửa đơn hàng trả lại sau khi đã hoàn thành rồi" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "Mẫu tham chiếu đơn đặt hàng" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "Mẫu bắt buộc để tạo trường tham chiếu đơn đặt hàng" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "Vận chuyển mặc định đơn đặt hàng" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "Cho phép tạo vận chuyển mặc định với đơn đặt hàng" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "Sửa đơn đặt hàng đã hoàn thành" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Cho phép sửa đơn đặt hàng sau khi đã vận chuyển hoặc hoàn thành" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "Mẫu tham chiếu đơn đặt mua" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "Mẫu bắt buộc cho để trường tham chiếu đơn đặt mua" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "Sửa đơn đặt mua đã hoàn thành" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Cho phép sửa đơn đặt mua sau khi đã vận chuyển hoặc hoàn thành" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "Tự động hoàn thành đơn đặt mua" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "Bật quên mật khẩu" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "Bật chức năng quên mật khẩu trong trang đăng nhập" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "Bật đăng ký" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "Cho phép người dùng tự đăng ký tại trang đăng nhập" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "Bật SSO" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "Cho phép SSO tại trang đăng nhập" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "Bật đăng ký SSO" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Cho phép người dùng tự đăng ký SSO tại trang đăng nhập" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "Yêu cầu email" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "Yêu cầu người dùng cung cấp email để đăng ký" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "Người dùng tự động điền SSO" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "Tự động điền thông tin chi tiết từ dữ liệu tài khoản SSO" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "Thư 2 lần" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "Khi đăng ký sẽ hỏi người dùng hai lần thư điện tử của họ" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "Mật khẩu 2 lần" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "Khi đăng ký sẽ hỏi người dùng hai lần mật khẩu của họ" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "Các tên miền được phép" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Cấm đăng ký với 1 số tên miền cụ thể (dấu phẩy ngăn cách, bắt đầu với dấu @)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "Nhóm khi đăng ký" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "Bắt buộc MFA" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "Người dùng phải sử dụng bảo mật đa nhân tố." -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "Kiểm tra phần mở rộng khi khởi động" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Kiểm tra toàn bộ phần mở rộng đã được cài đặt khi khởi dộng - bật trong môi trường ảo hóa" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "Kiểm tra cập nhật plugin" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "Bật tích hợp URL" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "Bật phần mở rộng để thêm định tuyến URL" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "Bật tích hợp điều hướng" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "Bật phần mở rộng để tích hợp thanh định hướng" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "Bật tích hợp ứng dụng" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "Bật phần mở rộng để thêm ứng dụng" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "Cho phép tích hợp lập lịch" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "Bật phẩn mở rộng để chạy các tác vụ theo lịch" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "Bật tích hợp nguồn cấp sự kiện" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "Bật phần mở rộng để trả lời sự kiện bên trong" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "Ngoại trừ vị trí bên ngoài" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "Giai đoạn kiểm kê tự động" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "Hiển thị tên đầy đủ của người dùng" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "Hiển thị tên đầy đủ thay vì tên đăng nhập" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "Tống số kho tại thời điểm kiểm kê" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "Ngày" @@ -8084,77 +8092,77 @@ msgstr "Cung cấp khả năng quét mã vạch TME" msgid "The Supplier which acts as 'TME'" msgstr "Nhà cung cấp hoạt động như 'TME'" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "Cài đặt phần mở rộng thành công" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Cài đặt phần bổ sung đến {path}" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "" @@ -8206,21 +8214,21 @@ msgstr "" msgid "Plugin" msgstr "Phần bổ sung" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "Không tìm thấy tác giả" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "Phần bổ sung '{p}' không tương thích với phiên bản InvenTree hiện tại {v}" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "Phần bổ sung yêu cầu ít nhất phiên bản {v}" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "Phần bổ sung yêu cầu tối đa phiên bản {v}" @@ -9218,7 +9226,7 @@ msgstr "Số lượng không khớp với số sêri" msgid "Cannot assign stock to structural location" msgstr "" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "" @@ -9238,7 +9246,7 @@ msgstr "Hàng trong kho chứa hàng hóa khác" msgid "Stock item has been assigned to a customer" msgstr "Hàng trong kho đã được gắn với một khách hàng" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "Hàng trong kho hiện đang sản xuất" @@ -9262,71 +9270,71 @@ msgstr "Mặt hàng phải tham chiếu đến sản phẩm nhà cung cấp tư msgid "Stock status codes must match" msgstr "Mã trạng thái kho phải phù hợp" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "Không thể xóa mặt hàng không ở trong kho" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "Ghi chú đầu vào" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "Phải cung cấp giá trị cho kiểm thử này" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "Phải tải liên đính kèm cho kiểm thử này" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "Kết quả kiểm thử" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "Giá trị đầu ra kiểm thử" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "Đính kèm kết quả kiểm thử" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "Ghi chú kiểm thử" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "" @@ -9440,8 +9448,8 @@ msgstr "" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Số lượng phải không vượt quá số lượng trong kho đang có ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "Vị trí kho đích" @@ -9565,7 +9573,7 @@ msgstr "Công ty đã chọn không phải là khách hàng" msgid "Stock assignment notes" msgstr "Ghi chú phân bổ kho" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "Phải cung cấp danh sách mặt hàng" @@ -9613,27 +9621,31 @@ msgstr "" msgid "Quantity must not be negative" msgstr "" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "Ghi chú giao dịch kho" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "Ghi chú giao dịch kho" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "" diff --git a/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po index baffe26bae..46a09a4c2b 100644 --- a/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -109,9 +109,9 @@ msgstr "无效的数值" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "备注" @@ -550,13 +550,13 @@ msgstr "订单状态" msgid "Parent Build" msgstr "父级生产订单" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "包含变体" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "未结算订单" msgid "Allocated" msgstr "已分配" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "已消耗" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "可用数量" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "已订购" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "未找到版本" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "生产订单" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "库存位置" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "产出" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "按产出库存项ID筛选,使用“null”查找未安装的生产项。" @@ -1830,7 +1830,7 @@ msgstr "定义" msgid "Unit definition" msgstr "单位定义" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "附件" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "等同于商业逻辑中自定义状态的状态逻辑键" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "值" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "扫描条形码的响应数据" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "结果" @@ -2673,8 +2673,8 @@ msgstr "检查更新的频率(设置为零以禁用)" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "天" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "允许对当前库存量为零的物品执行库位间调拨操作" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "生产订单参考模式" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "生成生产订单参考字段所需的模式" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "要求负责人" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "必须为每个订单分配一个负责人" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "需要活动零件" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "防止为非活动零件创建生产订单" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "需要锁定零件" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "防止为未锁定的零件创建生产订单" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "需要有效的物料清单" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "除非物料清单已验证,否则禁止创建生产订单" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "需要关闭子订单" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "在所有子订单关闭之前,阻止生产订单的完成" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "外部生产订单" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "启用外部生产订单功能" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "需要外部生产订单" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "从外部供应商订购组装好的零件时,需要外部生产订单" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "阻止直到测试通过" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "在所有必要的测试通过之前,阻止产出完成" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "启用订单退货" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "在用户界面中启用订单退货功能" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "退货订单参考模式" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "生成退货订单参考字段所需的模式" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "编辑已完成的退货订单" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "允许编辑已完成的退货订单" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "销售订单参考模式" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "生成销售订单参考字段所需参照模式" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "销售订单默认配送方式" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "启用创建销售订单的默认配送功能" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "编辑已完成的销售订单" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "允许在订单配送或完成后编辑销售订单" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "货件需核对" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "只有所有物品均经核对,才能确认发货完成" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "标记该订单为已完成?" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "标记为已发货的销售订单将自动完成,绕过“已发货”状态" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "阻止未完成项目测试" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "如果所需的物料测试未完成,则阻止将库存物料分配给销售订单" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "采购订单参考模式" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "生成采购订单参考字段所需的模式" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "编辑已完成的采购订单" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "允许在采购订单已配送或完成后编辑订单" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "货币转换" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "收货时将物料价值折算为基准货币" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "自动完成采购订单" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "当收到所有行项目时,自动将采购订单标记为完成" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "忘记启用密码" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "在登录页面上启用忘记密码功能" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "启用注册" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "在登录页面为用户启用自行注册功能" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "启用SSO登录" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "在登录页面启用单点登录(SSO)功能" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "启用SSO注册" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "允许用户通过登录页面的SSO系统注册账号" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "启用SSO组同步" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "启用后,将自动同步InvenTree用户组与身份提供商(IdP)提供的用户组" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "SSO组属性键" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "身份提供商(IdP)返回的组信息声明属性名称" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "SSO组映射关系" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "将SSO用户组映射到本地InvenTree用户组的对应关系表。如果本地组不存在,系统会自动创建对应的用户组。" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "移除非SSO来源的用户组" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "当用户组未被身份提供商(IdP)支持时,是否移除该用户组。禁用此选项可能导致安全风险" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "必须提供邮箱" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "用户注册时必须提供邮箱" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "自动填充SSO用户信息" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "自动从SSO账户数据中填充用户详细信息" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "发两次邮件" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "注册时询问用户他们的电子邮件两次" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "两次输入密码" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "当注册时请用户输入密码两次" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "域名白名单" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "限制注册到某些域名 (逗号分隔,以 @ 开头)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "注册默认分组" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "新用户注册时被分配的默认用户组。 如果启用了SSO组同步功能,当无法从身份提供商(IdP)分配组时才会应用此分组。" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "强制启用多因素安全认证" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "用户必须使用多因素安全认证。" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "启用此设置将要求所有用户设置多元素认证。所有会话将立即断开连接。" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "启动时检查插件" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "启动时检查全部插件是否已安装 - 在容器环境中启用" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "检查插件更新" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "启用定期检查已安装插件的更新" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "启用统一资源定位符集成" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "启用插件以添加统一资源定位符路由" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "启用导航集成" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "启用插件以集成到导航中" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "启用应用集成" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "启用插件添加应用" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "启用调度集成" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "启用插件来运行预定任务" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "启用事件集成" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "启用插件响应内部事件" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "启用界面集成" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "启用插件集成到用户界面" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "启用邮件集成" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "启用插件来处理发送/接收邮件" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "启用项目编码" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "启用项目编码来跟踪项目" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "启用盘点" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "启用历史库存水平及价值记录功能" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "排除外部地点" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "将外部库位的库存物料排除在盘点计算之外" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "自动盘点周期" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "自动库存盘点记录的间隔天数" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "删除旧的盘点记录条目" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "删除超过指定天数的库存盘点记录" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "库存盘点记录删除周期" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "库存盘点记录将在指定天数后自动删除" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "删除旧的库存跟踪记录" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "删除超过指定天数的库存跟踪记录" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "库存跟踪记录删除周期" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "库存跟踪记录将在指定天数后自动删除" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "显示用户全名" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "显示用户全名而不是用户名" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "显示用户配置" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "在用户个人资料页展示其档案信息" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "一周从……开始" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "星期几的起始日,用于在日历视图中显示" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "星期天" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "星期一" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "星期二" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "星期三" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "星期四" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "星期五" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "星期六" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "启用测试站数据" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "启用测试站数据收集以获取测试结果" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "启用设备状态检测" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "启用定期 Ping 检测,确认注册设备的运行状态" @@ -6645,7 +6653,7 @@ msgid "Total available stock at time of stocktake" msgstr "盘点时可用库存总额" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "日期" @@ -8086,77 +8094,77 @@ msgstr "为扫描 TME 条形码提供支持" msgid "The Supplier which acts as 'TME'" msgstr "作为‘TME’的供应商" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "只有超级用户帐户可以管理插件" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "插件安装已禁用" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "没有为安装提供软件包名称或URL" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "包名或 URL 中有无效字符" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "插件安装成功" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "插件安装到 {path}" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "在插件仓库中找不到插件" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "插件不是一个打包的插件" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "找不到插件包名称" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "只有员工用户可以管理插件" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "插件卸载已禁用" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "插件无法卸载,因为它目前处于激活状态" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "该插件为系统必需组件,无法卸载" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "该插件为示例插件,无法卸载" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "该插件为系统内置组件,无法卸载" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "插件未安装" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "未找到插件安装记录" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "插件卸载成功" @@ -8208,21 +8216,21 @@ msgstr "软件包插件" msgid "Plugin" msgstr "插件" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "未找到作者" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "插件 '{p}' 与当前 InvenTree 版本{v} 不兼容" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "插件所需最低版本 {v}" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "插件所需最高版本 {v}" @@ -9220,7 +9228,7 @@ msgstr "数量不匹配序列号" msgid "Cannot assign stock to structural location" msgstr "无法将库存分配到结构位置" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "测试模板不存在" @@ -9240,7 +9248,7 @@ msgstr "库存项包含其他项目" msgid "Stock item has been assigned to a customer" msgstr "库存项已分配给客户" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "库存项目前正在生产" @@ -9264,71 +9272,71 @@ msgstr "库存项必须是同一供应商的零件" msgid "Stock status codes must match" msgstr "库存状态码必须匹配" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "库存项不能移动,因为它没有库存" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "库存项跟踪" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "条目注释" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "库存项测试结果" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "必须为此测试提供值" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "测试附件必须上传" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "此测试的值无效" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "测试结果" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "测试输出值" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "测验结果附件" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "测试备注" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "测试站" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "进行测试的测试站的标识符" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "已开始" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "测试开始的时间戳" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "已完成" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "测试结束的时间戳" @@ -9442,8 +9450,8 @@ msgstr "未提供库存项" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "数量不得超过现有库存量 ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "目标库存位置" @@ -9567,7 +9575,7 @@ msgstr "所选公司不是客户" msgid "Stock assignment notes" msgstr "库存分配说明" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "必须提供库存物品清单" @@ -9615,27 +9623,31 @@ msgstr "库存项已有现货" msgid "Quantity must not be negative" msgstr "数量不得为负" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "库存交易记录" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "合并至现有库存" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "库存交易记录" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "若可行,将退回项目合并至现有库存项" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "下一个序列号" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "上一个序列号" diff --git a/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po index 4c4ceb6763..8368747042 100644 --- a/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-24 00:46+0000\n" -"PO-Revision-Date: 2026-06-24 00:49\n" +"POT-Creation-Date: 2026-06-24 14:25+0000\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" @@ -109,9 +109,9 @@ msgstr "無效的十進位數值" #: build/serializers.py:549 build/serializers.py:1744 company/models.py:824 #: order/models.py:2039 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749 +#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749 #: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451 -#: stock/serializers.py:1540 stock/serializers.py:1739 +#: stock/serializers.py:1540 stock/serializers.py:1748 msgid "Notes" msgstr "備註" @@ -550,13 +550,13 @@ msgstr "訂單狀態" msgid "Parent Build" msgstr "上層生產工單" -#: build/api.py:87 build/api.py:1024 order/api.py:564 order/api.py:789 +#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789 #: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027 #: stock/api.py:593 msgid "Include Variants" msgstr "包含變體" -#: build/api.py:103 build/api.py:477 build/api.py:1038 build/models.py:283 +#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283 #: build/serializers.py:1169 build/serializers.py:1345 #: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426 #: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248 @@ -692,52 +692,52 @@ msgstr "訂單未完成" msgid "Allocated" msgstr "已分配" -#: build/api.py:501 build/models.py:1741 build/serializers.py:1398 +#: build/api.py:517 build/models.py:1741 build/serializers.py:1398 msgid "Consumed" msgstr "已消耗" -#: build/api.py:510 company/models.py:879 company/serializers.py:403 +#: build/api.py:526 company/models.py:879 company/serializers.py:403 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 #: templates/email/part_event_notification.html:18 msgid "Available" msgstr "可用數量" -#: build/api.py:549 build/serializers.py:1483 company/serializers.py:400 +#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400 #: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900 #: part/serializers.py:1228 part/serializers.py:1811 msgid "On Order" msgstr "已訂購" -#: build/api.py:702 +#: build/api.py:720 msgid "Build not found" msgstr "找不到生產記錄" -#: build/api.py:1061 build/models.py:120 order/models.py:2249 +#: build/api.py:1079 build/models.py:120 order/models.py:2249 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:94 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 msgid "Build Order" msgstr "生產工單" -#: build/api.py:1075 build/api.py:1079 build/serializers.py:374 +#: build/api.py:1093 build/api.py:1097 build/serializers.py:374 #: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219 #: build/serializers.py:1225 order/api.py:1295 order/api.py:1300 #: order/api.py:2079 order/api.py:2084 order/serializers.py:886 #: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387 #: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622 #: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533 -#: stock/serializers.py:1768 stock/serializers.py:1872 -#: stock/serializers.py:1921 templates/email/stale_stock_notification.html:18 +#: stock/serializers.py:1777 stock/serializers.py:1881 +#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18 #: users/models.py:545 msgid "Location" msgstr "地點" -#: build/api.py:1087 part/serializers.py:1412 +#: build/api.py:1105 part/serializers.py:1412 msgid "Output" msgstr "產出" -#: build/api.py:1089 +#: build/api.py:1107 msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items." msgstr "依產出庫存項目 ID 篩選。使用 'null' 尋找未安裝的生產項目。" @@ -1830,7 +1830,7 @@ msgstr "定義" msgid "Unit definition" msgstr "單位定義" -#: common/models.py:1954 common/models.py:2106 stock/models.py:3182 +#: common/models.py:1954 common/models.py:2106 stock/models.py:3241 #: stock/serializers.py:259 msgid "Attachment" msgstr "附件" @@ -1948,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic" msgstr "等同於商業邏輯中自定義狀態的狀態邏輯鍵" #: common/models.py:2297 common/models.py:2564 machine/serializers.py:27 -#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174 +#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233 msgid "Value" msgstr "值" @@ -2283,7 +2283,7 @@ msgid "Response data from the barcode scan" msgstr "掃描條碼的響應數據" #: common/models.py:3073 report/templates/report/inventree_test_report.html:103 -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Result" msgstr "結果" @@ -2673,8 +2673,8 @@ msgstr "檢查更新的頻率(設置為零以禁用)" #: common/setting/system.py:335 common/setting/system.py:344 #: common/setting/system.py:353 common/setting/system.py:600 #: common/setting/system.py:628 common/setting/system.py:753 -#: common/setting/system.py:1190 common/setting/system.py:1206 -#: common/setting/system.py:1223 +#: common/setting/system.py:1198 common/setting/system.py:1214 +#: common/setting/system.py:1231 msgid "days" msgstr "天" @@ -3277,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock msgstr "允許非庫存的庫存項目在庫存位置之間轉移" #: common/setting/system.py:797 +msgid "Merge stock with existing stock on transfer by default" +msgstr "" + +#: common/setting/system.py:799 +msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)" +msgstr "" + +#: common/setting/system.py:805 msgid "Build Order Reference Pattern" msgstr "生產訂單參考模式" -#: common/setting/system.py:798 +#: common/setting/system.py:806 msgid "Required pattern for generating Build Order reference field" msgstr "生成生產訂單參考字段所需的模式" -#: common/setting/system.py:803 common/setting/system.py:871 -#: common/setting/system.py:891 common/setting/system.py:941 -#: common/setting/system.py:963 +#: common/setting/system.py:811 common/setting/system.py:879 +#: common/setting/system.py:899 common/setting/system.py:949 +#: common/setting/system.py:971 msgid "Require Responsible Owner" msgstr "要求負責人" -#: common/setting/system.py:804 common/setting/system.py:872 -#: common/setting/system.py:892 common/setting/system.py:942 -#: common/setting/system.py:964 +#: common/setting/system.py:812 common/setting/system.py:880 +#: common/setting/system.py:900 common/setting/system.py:950 +#: common/setting/system.py:972 msgid "A responsible owner must be assigned to each order" msgstr "必須為每個訂單分配一個負責人" -#: common/setting/system.py:809 +#: common/setting/system.py:817 msgid "Require Active Part" msgstr "需要活動零件" -#: common/setting/system.py:810 +#: common/setting/system.py:818 msgid "Prevent build order creation for inactive parts" msgstr "防止為非活動零件創建生產訂單" -#: common/setting/system.py:815 +#: common/setting/system.py:823 msgid "Require Locked Part" msgstr "需要鎖定零件" -#: common/setting/system.py:816 +#: common/setting/system.py:824 msgid "Prevent build order creation for unlocked parts" msgstr "防止為未鎖定的零件創建生產訂單" -#: common/setting/system.py:821 +#: common/setting/system.py:829 msgid "Require Valid BOM" msgstr "需要有效的物料清單" -#: common/setting/system.py:822 +#: common/setting/system.py:830 msgid "Prevent build order creation unless BOM has been validated" msgstr "除非物料清單已驗證,否則禁止創建生產訂單" -#: common/setting/system.py:827 +#: common/setting/system.py:835 msgid "Require Closed Child Orders" msgstr "需要關閉子訂單" -#: common/setting/system.py:829 +#: common/setting/system.py:837 msgid "Prevent build order completion until all child orders are closed" msgstr "在所有子訂單關閉之前,阻止生產訂單的完成" -#: common/setting/system.py:835 +#: common/setting/system.py:843 msgid "External Build Orders" msgstr "外部生產工單" -#: common/setting/system.py:836 +#: common/setting/system.py:844 msgid "Enable external build order functionality" msgstr "啟用外部生產工單功能" -#: common/setting/system.py:841 +#: common/setting/system.py:849 msgid "Require External Build Orders" msgstr "" -#: common/setting/system.py:843 +#: common/setting/system.py:851 msgid "Require an external build order when ordering assembled parts from an external supplier" msgstr "" -#: common/setting/system.py:849 +#: common/setting/system.py:857 msgid "Block Until Tests Pass" msgstr "阻止直到測試通過" -#: common/setting/system.py:851 +#: common/setting/system.py:859 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "在所有必要的測試通過之前,阻止產出完成" -#: common/setting/system.py:857 +#: common/setting/system.py:865 msgid "Enable Return Orders" msgstr "啓用訂單退貨" -#: common/setting/system.py:858 +#: common/setting/system.py:866 msgid "Enable return order functionality in the user interface" msgstr "在用户界面中啓用訂單退貨功能" -#: common/setting/system.py:863 +#: common/setting/system.py:871 msgid "Return Order Reference Pattern" msgstr "退貨訂單參考模式" -#: common/setting/system.py:865 +#: common/setting/system.py:873 msgid "Required pattern for generating Return Order reference field" msgstr "生成退貨訂單參考字段所需的模式" -#: common/setting/system.py:877 +#: common/setting/system.py:885 msgid "Edit Completed Return Orders" msgstr "編輯已完成的退貨訂單" -#: common/setting/system.py:879 +#: common/setting/system.py:887 msgid "Allow editing of return orders after they have been completed" msgstr "允許編輯已完成的退貨訂單" -#: common/setting/system.py:885 +#: common/setting/system.py:893 msgid "Sales Order Reference Pattern" msgstr "銷售訂單參考模式" -#: common/setting/system.py:886 +#: common/setting/system.py:894 msgid "Required pattern for generating Sales Order reference field" msgstr "生成銷售訂單參考字段所需參照模式" -#: common/setting/system.py:897 +#: common/setting/system.py:905 msgid "Sales Order Default Shipment" msgstr "銷售訂單默認配送方式" -#: common/setting/system.py:898 +#: common/setting/system.py:906 msgid "Enable creation of default shipment with sales orders" msgstr "啓用創建銷售訂單的默認配送功能" -#: common/setting/system.py:903 +#: common/setting/system.py:911 msgid "Edit Completed Sales Orders" msgstr "編輯已完成的銷售訂單" -#: common/setting/system.py:905 +#: common/setting/system.py:913 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "允許在訂單配送或完成後編輯銷售訂單" -#: common/setting/system.py:911 +#: common/setting/system.py:919 msgid "Shipment Requires Checking" msgstr "發貨需要檢查" -#: common/setting/system.py:913 +#: common/setting/system.py:921 msgid "Prevent completion of shipments until items have been checked" msgstr "在項目被檢查前,防止完成發貨" -#: common/setting/system.py:919 +#: common/setting/system.py:927 msgid "Mark Shipped Orders as Complete" msgstr "標記該訂單為已完成?" -#: common/setting/system.py:921 +#: common/setting/system.py:929 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "標記為已發貨的銷售訂單將自動完成,繞過“已發貨”狀態" -#: common/setting/system.py:927 +#: common/setting/system.py:935 msgid "Enable Transfer Orders" msgstr "" -#: common/setting/system.py:928 +#: common/setting/system.py:936 msgid "Enable transfer order functionality in the user interface" msgstr "" -#: common/setting/system.py:933 +#: common/setting/system.py:941 msgid "Transfer Order Reference Pattern" msgstr "" -#: common/setting/system.py:935 +#: common/setting/system.py:943 msgid "Required pattern for generating Transfer Order reference field" msgstr "" -#: common/setting/system.py:947 +#: common/setting/system.py:955 msgid "Block Incomplete Item Tests" msgstr "" -#: common/setting/system.py:949 +#: common/setting/system.py:957 msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete" msgstr "" -#: common/setting/system.py:955 +#: common/setting/system.py:963 msgid "Purchase Order Reference Pattern" msgstr "採購訂單參考模式" -#: common/setting/system.py:957 +#: common/setting/system.py:965 msgid "Required pattern for generating Purchase Order reference field" msgstr "生成採購訂單參考字段所需的模式" -#: common/setting/system.py:969 +#: common/setting/system.py:977 msgid "Edit Completed Purchase Orders" msgstr "編輯已完成的採購訂單" -#: common/setting/system.py:971 +#: common/setting/system.py:979 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "允許在採購訂單已配送或完成後編輯訂單" -#: common/setting/system.py:977 +#: common/setting/system.py:985 msgid "Convert Currency" msgstr "轉換幣別" -#: common/setting/system.py:978 +#: common/setting/system.py:986 msgid "Convert item value to base currency when receiving stock" msgstr "收貨時將項目價值換算為基準幣別" -#: common/setting/system.py:983 +#: common/setting/system.py:991 msgid "Auto Complete Purchase Orders" msgstr "自動完成採購訂單" -#: common/setting/system.py:985 +#: common/setting/system.py:993 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "當收到所有行項目時,自動將採購訂單標記為完成" -#: common/setting/system.py:992 +#: common/setting/system.py:1000 msgid "Enable password forgot" msgstr "忘記啓用密碼" -#: common/setting/system.py:993 +#: common/setting/system.py:1001 msgid "Enable password forgot function on the login pages" msgstr "在登錄頁面上啓用忘記密碼功能" -#: common/setting/system.py:998 +#: common/setting/system.py:1006 msgid "Enable registration" msgstr "啓用註冊" -#: common/setting/system.py:999 +#: common/setting/system.py:1007 msgid "Enable self-registration for users on the login pages" msgstr "在登錄頁面為用户啓用自行註冊功能" -#: common/setting/system.py:1004 +#: common/setting/system.py:1012 msgid "Enable SSO" msgstr "啓用單點登錄" -#: common/setting/system.py:1005 +#: common/setting/system.py:1013 msgid "Enable SSO on the login pages" msgstr "在登錄界面啓用單點登錄" -#: common/setting/system.py:1010 +#: common/setting/system.py:1018 msgid "Enable SSO registration" msgstr "啓用單點登錄註冊" -#: common/setting/system.py:1012 +#: common/setting/system.py:1020 msgid "Enable self-registration via SSO for users on the login pages" msgstr "允許登錄頁面上的用户通過 SSO 進行自我註冊" -#: common/setting/system.py:1018 +#: common/setting/system.py:1026 msgid "Enable SSO group sync" msgstr "啓用單點登錄羣組同步" -#: common/setting/system.py:1020 +#: common/setting/system.py:1028 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "啓用庫存管理系統組和由身份提供者提供的組的同步功能" -#: common/setting/system.py:1026 +#: common/setting/system.py:1034 msgid "SSO group key" msgstr "單點登錄系統組密鑰" -#: common/setting/system.py:1027 +#: common/setting/system.py:1035 msgid "The name of the groups claim attribute provided by the IdP" msgstr "由身份提供者提供的組聲明屬性名稱" -#: common/setting/system.py:1032 +#: common/setting/system.py:1040 msgid "SSO group map" msgstr "單點登錄系統組地圖" -#: common/setting/system.py:1034 +#: common/setting/system.py:1042 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "從單點登錄系統組組到本地庫存管理系統組的映射。如果本地組不存在,它將被創建。" -#: common/setting/system.py:1040 +#: common/setting/system.py:1048 msgid "Remove groups outside of SSO" msgstr "移除單點登錄系統以外的羣組" -#: common/setting/system.py:1042 +#: common/setting/system.py:1050 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "如果分配給用户的組不是身份提供者的後端,是否應該刪除它們。禁用此設置可能會造成安全問題" -#: common/setting/system.py:1048 +#: common/setting/system.py:1056 msgid "Email required" msgstr "需要郵箱地址" -#: common/setting/system.py:1049 +#: common/setting/system.py:1057 msgid "Require user to supply mail on signup" msgstr "要求用户在註冊時提供郵件" -#: common/setting/system.py:1054 +#: common/setting/system.py:1062 msgid "Auto-fill SSO users" msgstr "自動填充單點登錄系統用户" -#: common/setting/system.py:1055 +#: common/setting/system.py:1063 msgid "Automatically fill out user-details from SSO account-data" msgstr "自動使用單點登錄系統賬户的數據填寫用户詳細信息" -#: common/setting/system.py:1060 +#: common/setting/system.py:1068 msgid "Mail twice" msgstr "發兩次郵件" -#: common/setting/system.py:1061 +#: common/setting/system.py:1069 msgid "On signup ask users twice for their mail" msgstr "註冊時詢問用户他們的電子郵件兩次" -#: common/setting/system.py:1066 +#: common/setting/system.py:1074 msgid "Password twice" msgstr "兩次輸入密碼" -#: common/setting/system.py:1067 +#: common/setting/system.py:1075 msgid "On signup ask users twice for their password" msgstr "當註冊時請用户輸入密碼兩次" -#: common/setting/system.py:1072 +#: common/setting/system.py:1080 msgid "Allowed domains" msgstr "域名白名單" -#: common/setting/system.py:1074 +#: common/setting/system.py:1082 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "限制註冊到某些域名 (逗號分隔,以 @ 開頭)" -#: common/setting/system.py:1080 +#: common/setting/system.py:1088 msgid "Group on signup" msgstr "註冊羣組" -#: common/setting/system.py:1082 +#: common/setting/system.py:1090 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "註冊時分配給新用户的組。 如果啓用了單點登錄系統羣組同步,此羣組僅在無法從 IdP 分配任何羣組的情況下才被設置。" -#: common/setting/system.py:1088 +#: common/setting/system.py:1096 msgid "Enforce MFA" msgstr "強制啓用多因素安全認證" -#: common/setting/system.py:1089 +#: common/setting/system.py:1097 msgid "Users must use multifactor security." msgstr "用户必須使用多因素安全認證。" -#: common/setting/system.py:1094 +#: common/setting/system.py:1102 msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately." msgstr "啟用此設定將要求所有使用者設定多因素驗證。所有工作階段將立即中斷連線。" -#: common/setting/system.py:1099 +#: common/setting/system.py:1107 msgid "Check plugins on startup" msgstr "啓動時檢查插件" -#: common/setting/system.py:1101 +#: common/setting/system.py:1109 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "啓動時檢查全部插件是否已安裝 - 在容器環境中啓用" -#: common/setting/system.py:1108 +#: common/setting/system.py:1116 msgid "Check for plugin updates" msgstr "檢查插件更新" -#: common/setting/system.py:1109 +#: common/setting/system.py:1117 msgid "Enable periodic checks for updates to installed plugins" msgstr "啓用定期檢查已安裝插件的更新" -#: common/setting/system.py:1115 +#: common/setting/system.py:1123 msgid "Enable URL integration" msgstr "啓用統一資源定位符集成" -#: common/setting/system.py:1116 +#: common/setting/system.py:1124 msgid "Enable plugins to add URL routes" msgstr "啓用插件以添加統一資源定位符路由" -#: common/setting/system.py:1122 +#: common/setting/system.py:1130 msgid "Enable navigation integration" msgstr "啓用導航集成" -#: common/setting/system.py:1123 +#: common/setting/system.py:1131 msgid "Enable plugins to integrate into navigation" msgstr "啓用插件以集成到導航中" -#: common/setting/system.py:1129 +#: common/setting/system.py:1137 msgid "Enable app integration" msgstr "啓用應用集成" -#: common/setting/system.py:1130 +#: common/setting/system.py:1138 msgid "Enable plugins to add apps" msgstr "啓用插件添加應用" -#: common/setting/system.py:1136 +#: common/setting/system.py:1144 msgid "Enable schedule integration" msgstr "啓用調度集成" -#: common/setting/system.py:1137 +#: common/setting/system.py:1145 msgid "Enable plugins to run scheduled tasks" msgstr "啓用插件來運行預定任務" -#: common/setting/system.py:1143 +#: common/setting/system.py:1151 msgid "Enable event integration" msgstr "啓用事件集成" -#: common/setting/system.py:1144 +#: common/setting/system.py:1152 msgid "Enable plugins to respond to internal events" msgstr "啓用插件響應內部事件" -#: common/setting/system.py:1150 +#: common/setting/system.py:1158 msgid "Enable interface integration" msgstr "啓用界面集成" -#: common/setting/system.py:1151 +#: common/setting/system.py:1159 msgid "Enable plugins to integrate into the user interface" msgstr "啓用插件集成到用户界面" -#: common/setting/system.py:1157 +#: common/setting/system.py:1165 msgid "Enable mail integration" msgstr "啟用郵件整合" -#: common/setting/system.py:1158 +#: common/setting/system.py:1166 msgid "Enable plugins to process outgoing/incoming mails" msgstr "允許模組處理寄出/接收郵件" -#: common/setting/system.py:1164 +#: common/setting/system.py:1172 msgid "Enable project codes" msgstr "啟用專案代碼" -#: common/setting/system.py:1165 +#: common/setting/system.py:1173 msgid "Enable project codes for tracking projects" msgstr "啟用專案代碼以追蹤專案" -#: common/setting/system.py:1170 +#: common/setting/system.py:1178 msgid "Enable Stocktake" msgstr "啟用盤點" -#: common/setting/system.py:1172 +#: common/setting/system.py:1180 msgid "Enable functionality for recording historical stock levels and value" msgstr "啟用記錄庫存數量及價值歷史的功能" -#: common/setting/system.py:1178 +#: common/setting/system.py:1186 msgid "Exclude External Locations" msgstr "排除外部地點" -#: common/setting/system.py:1180 +#: common/setting/system.py:1188 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "從盤點計算中排除外部位置的庫存項目" -#: common/setting/system.py:1186 +#: common/setting/system.py:1194 msgid "Automatic Stocktake Period" msgstr "自動盤點週期" -#: common/setting/system.py:1187 +#: common/setting/system.py:1195 msgid "Number of days between automatic stocktake recording" msgstr "自動記錄盤點的天數間隔" -#: common/setting/system.py:1193 +#: common/setting/system.py:1201 msgid "Delete Old Stocktake Entries" msgstr "刪除舊的盤點項目" -#: common/setting/system.py:1195 +#: common/setting/system.py:1203 msgid "Delete stocktake entries older than the specified number of days" msgstr "刪除超過指定天數的盤點項目" -#: common/setting/system.py:1201 +#: common/setting/system.py:1209 msgid "Stocktake Deletion Interval" msgstr "盤點刪除間隔" -#: common/setting/system.py:1203 +#: common/setting/system.py:1211 msgid "Stocktake entries will be deleted after specified number of days" msgstr "盤點項目將在指定天數後刪除" -#: common/setting/system.py:1210 +#: common/setting/system.py:1218 msgid "Delete Old Stock Tracking Entries" msgstr "刪除舊庫存的追蹤紀錄" -#: common/setting/system.py:1212 +#: common/setting/system.py:1220 msgid "Delete stock tracking entries older than the specified number of days" msgstr "刪除超過指定天數的庫存追蹤項目" -#: common/setting/system.py:1218 +#: common/setting/system.py:1226 msgid "Stock Tracking Deletion Interval" msgstr "庫存追蹤刪除間隔" -#: common/setting/system.py:1220 +#: common/setting/system.py:1228 msgid "Stock tracking entries will be deleted after specified number of days" msgstr "庫存追蹤項目將在指定天數後刪除" -#: common/setting/system.py:1227 +#: common/setting/system.py:1235 msgid "Display Users full names" msgstr "顯示用户全名" -#: common/setting/system.py:1228 +#: common/setting/system.py:1236 msgid "Display Users full names instead of usernames" msgstr "顯示用户全名而不是用户名" -#: common/setting/system.py:1233 +#: common/setting/system.py:1241 msgid "Display User Profiles" msgstr "顯示使用者個人檔案" -#: common/setting/system.py:1234 +#: common/setting/system.py:1242 msgid "Display Users Profiles on their profile page" msgstr "在個人頁面顯示使用者檔案資訊" -#: common/setting/system.py:1239 +#: common/setting/system.py:1247 msgid "Week Starts On" msgstr "" -#: common/setting/system.py:1240 +#: common/setting/system.py:1248 msgid "Starting day of the week, for display in calendar views" msgstr "" -#: common/setting/system.py:1243 +#: common/setting/system.py:1251 msgid "Sunday" msgstr "" -#: common/setting/system.py:1244 +#: common/setting/system.py:1252 msgid "Monday" msgstr "" -#: common/setting/system.py:1245 +#: common/setting/system.py:1253 msgid "Tuesday" msgstr "" -#: common/setting/system.py:1246 +#: common/setting/system.py:1254 msgid "Wednesday" msgstr "" -#: common/setting/system.py:1247 +#: common/setting/system.py:1255 msgid "Thursday" msgstr "" -#: common/setting/system.py:1248 +#: common/setting/system.py:1256 msgid "Friday" msgstr "" -#: common/setting/system.py:1249 +#: common/setting/system.py:1257 msgid "Saturday" msgstr "" -#: common/setting/system.py:1253 +#: common/setting/system.py:1261 msgid "Calendar Horizon" msgstr "" -#: common/setting/system.py:1255 +#: common/setting/system.py:1263 msgid "Number of months into the future to display in calendar views" msgstr "" -#: common/setting/system.py:1259 +#: common/setting/system.py:1267 msgid "months" msgstr "" -#: common/setting/system.py:1262 +#: common/setting/system.py:1270 msgid "Enable Test Station Data" msgstr "啓用測試站數據" -#: common/setting/system.py:1263 +#: common/setting/system.py:1271 msgid "Enable test station data collection for test results" msgstr "啓用測試站數據收集以獲取測試結果" -#: common/setting/system.py:1268 +#: common/setting/system.py:1276 msgid "Enable Machine Ping" msgstr "啟用設備 Ping" -#: common/setting/system.py:1270 +#: common/setting/system.py:1278 msgid "Enable periodic ping task of registered machines to check their status" msgstr "啟用對已註冊機器的定期 ping 任務以檢查其狀態" @@ -6643,7 +6651,7 @@ msgid "Total available stock at time of stocktake" msgstr "盤點時可用庫存總額" #: part/models.py:3548 report/templates/report/inventree_test_report.html:106 -#: stock/models.py:3214 +#: stock/models.py:3273 msgid "Date" msgstr "日期" @@ -8084,77 +8092,77 @@ msgstr "為掃描 TME 條形碼提供支持" msgid "The Supplier which acts as 'TME'" msgstr "作為‘TME’的供應商" -#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169 +#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169 #: plugin/serializers.py:275 msgid "Only superuser accounts can administer plugins" msgstr "只有超級使用者帳號可以管理外掛程式" -#: plugin/installer.py:243 +#: plugin/installer.py:242 msgid "Plugin installation is disabled" msgstr "插件安裝已禁用" -#: plugin/installer.py:273 +#: plugin/installer.py:272 msgid "No package name or URL provided for installation" msgstr "未提供要安裝的套件名稱或 URL" -#: plugin/installer.py:277 +#: plugin/installer.py:276 msgid "Invalid characters in package name or URL" msgstr "套件名稱或 URL 中包含無效字元" -#: plugin/installer.py:287 +#: plugin/installer.py:286 msgid "Installed plugin successfully" msgstr "插件安裝成功" -#: plugin/installer.py:292 +#: plugin/installer.py:291 #, python-brace-format msgid "Installed plugin into {path}" msgstr "插件安裝到 {path}" -#: plugin/installer.py:318 +#: plugin/installer.py:317 msgid "Plugin was not found in registry" msgstr "在插件倉庫中找不到插件" -#: plugin/installer.py:321 +#: plugin/installer.py:320 msgid "Plugin is not a packaged plugin" msgstr "插件不是一個打包的插件" -#: plugin/installer.py:324 +#: plugin/installer.py:323 msgid "Plugin package name not found" msgstr "找不到插件包名稱" -#: plugin/installer.py:327 +#: plugin/installer.py:326 msgid "Only staff users can administer plugins" msgstr "只有員工用户可以管理插件" -#: plugin/installer.py:347 +#: plugin/installer.py:346 msgid "Plugin uninstalling is disabled" msgstr "插件卸載已禁用" -#: plugin/installer.py:351 +#: plugin/installer.py:350 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "插件無法卸載,因為它目前處於激活狀態" -#: plugin/installer.py:357 +#: plugin/installer.py:356 msgid "Plugin cannot be uninstalled as it is mandatory" msgstr "不可解除安裝此模組(屬於強制)" -#: plugin/installer.py:362 +#: plugin/installer.py:361 msgid "Plugin cannot be uninstalled as it is a sample plugin" msgstr "不可解除安裝此模組(範例模組)" -#: plugin/installer.py:367 +#: plugin/installer.py:366 msgid "Plugin cannot be uninstalled as it is a built-in plugin" msgstr "不可解除安裝此模組(內建模組)" -#: plugin/installer.py:371 +#: plugin/installer.py:370 msgid "Plugin is not installed" msgstr "模組尚未安裝" -#: plugin/installer.py:389 +#: plugin/installer.py:388 msgid "Plugin installation not found" msgstr "找不到模組安裝紀錄" -#: plugin/installer.py:405 +#: plugin/installer.py:404 msgid "Uninstalled plugin successfully" msgstr "插件卸載成功" @@ -8206,21 +8214,21 @@ msgstr "軟件包插件" msgid "Plugin" msgstr "插件" -#: plugin/plugin.py:388 +#: plugin/plugin.py:389 msgid "No author found" msgstr "未找到作者" -#: plugin/registry.py:786 +#: plugin/registry.py:780 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "插件 '{p}' 與當前 InvenTree 版本{v} 不兼容" -#: plugin/registry.py:789 +#: plugin/registry.py:783 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "插件所需最低版本 {v}" -#: plugin/registry.py:791 +#: plugin/registry.py:785 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "插件所需最高版本 {v}" @@ -9218,7 +9226,7 @@ msgstr "數量不匹配序列號" msgid "Cannot assign stock to structural location" msgstr "無法將庫存分配到結構位置" -#: stock/models.py:2141 stock/models.py:3132 +#: stock/models.py:2141 stock/models.py:3191 msgid "Test template does not exist" msgstr "測試模板不存在" @@ -9238,7 +9246,7 @@ msgstr "庫存項包含其他項目" msgid "Stock item has been assigned to a customer" msgstr "庫存項已分配給客户" -#: stock/models.py:2172 stock/models.py:2358 +#: stock/models.py:2172 stock/models.py:2404 msgid "Stock item is currently in production" msgstr "庫存項目前正在生產" @@ -9262,71 +9270,71 @@ msgstr "庫存項必須是同一供應商的零件" msgid "Stock status codes must match" msgstr "庫存狀態碼必須匹配" -#: stock/models.py:2503 +#: stock/models.py:2558 msgid "StockItem cannot be moved as it is not in stock" msgstr "庫存項不能移動,因為它沒有庫存" -#: stock/models.py:3014 +#: stock/models.py:3073 msgid "Stock Item Tracking" msgstr "庫存項跟蹤" -#: stock/models.py:3064 +#: stock/models.py:3123 msgid "Entry notes" msgstr "條目註釋" -#: stock/models.py:3104 +#: stock/models.py:3163 msgid "Stock Item Test Result" msgstr "庫存項測試結果" -#: stock/models.py:3135 +#: stock/models.py:3194 msgid "Value must be provided for this test" msgstr "必須為此測試提供值" -#: stock/models.py:3139 +#: stock/models.py:3198 msgid "Attachment must be uploaded for this test" msgstr "測試附件必須上傳" -#: stock/models.py:3144 +#: stock/models.py:3203 msgid "Invalid value for this test" msgstr "此測試的值無效" -#: stock/models.py:3168 +#: stock/models.py:3227 msgid "Test result" msgstr "測試結果" -#: stock/models.py:3175 +#: stock/models.py:3234 msgid "Test output value" msgstr "測試輸出值" -#: stock/models.py:3183 stock/serializers.py:260 +#: stock/models.py:3242 stock/serializers.py:260 msgid "Test result attachment" msgstr "測驗結果附件" -#: stock/models.py:3187 +#: stock/models.py:3246 msgid "Test notes" msgstr "測試備註" -#: stock/models.py:3195 +#: stock/models.py:3254 msgid "Test station" msgstr "測試站" -#: stock/models.py:3196 +#: stock/models.py:3255 msgid "The identifier of the test station where the test was performed" msgstr "進行測試的測試站的標識符" -#: stock/models.py:3202 +#: stock/models.py:3261 msgid "Started" msgstr "已開始" -#: stock/models.py:3203 +#: stock/models.py:3262 msgid "The timestamp of the test start" msgstr "測試開始的時間戳" -#: stock/models.py:3209 +#: stock/models.py:3268 msgid "Finished" msgstr "已完成" -#: stock/models.py:3210 +#: stock/models.py:3269 msgid "The timestamp of the test finish" msgstr "測試結束的時間戳" @@ -9440,8 +9448,8 @@ msgstr "未提供庫存項" msgid "Quantity must not exceed available stock quantity ({q})" msgstr "數量不得超過現有庫存量 ({q})" -#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1873 -#: stock/serializers.py:1922 +#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882 +#: stock/serializers.py:1973 msgid "Destination stock location" msgstr "目標庫存位置" @@ -9565,7 +9573,7 @@ msgstr "所選公司不是客户" msgid "Stock assignment notes" msgstr "庫存分配説明" -#: stock/serializers.py:1462 stock/serializers.py:1750 +#: stock/serializers.py:1462 stock/serializers.py:1759 msgid "A list of stock items must be provided" msgstr "必須提供庫存物品清單" @@ -9613,27 +9621,31 @@ msgstr "庫存項已在庫" msgid "Quantity must not be negative" msgstr "數量不可為負" -#: stock/serializers.py:1740 -msgid "Stock transaction notes" -msgstr "庫存交易記錄" - -#: stock/serializers.py:1769 -msgid "Set stock location for counted items (optional)" -msgstr "" - -#: stock/serializers.py:1928 +#: stock/serializers.py:1728 stock/serializers.py:1979 msgid "Merge into existing stock" msgstr "合併至現有庫存" -#: stock/serializers.py:1929 +#: stock/serializers.py:1730 +msgid "Merge this item into existing stock at the destination if possible" +msgstr "" + +#: stock/serializers.py:1749 +msgid "Stock transaction notes" +msgstr "庫存交易記錄" + +#: stock/serializers.py:1778 +msgid "Set stock location for counted items (optional)" +msgstr "" + +#: stock/serializers.py:1980 msgid "Merge returned items into existing stock items if possible" msgstr "可行時將退回項目併入現有庫存" -#: stock/serializers.py:1972 +#: stock/serializers.py:2023 msgid "Next Serial Number" msgstr "下一個序列號" -#: stock/serializers.py:1978 +#: stock/serializers.py:2029 msgid "Previous Serial Number" msgstr "上一個序列號" diff --git a/src/frontend/src/locales/ar/messages.po b/src/frontend/src/locales/ar/messages.po index 9aeb9a40de..0fa8bb7db9 100644 --- a/src/frontend/src/locales/ar/messages.po +++ b/src/frontend/src/locales/ar/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ar\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Arabic\n" "Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n" @@ -79,12 +79,12 @@ msgstr "إلغاء" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "الإجراءات" @@ -135,16 +135,16 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "" @@ -2924,7 +2924,7 @@ msgstr "" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "" @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/bg/messages.po b/src/frontend/src/locales/bg/messages.po index 3bf24ed399..3d8991e8e5 100644 --- a/src/frontend/src/locales/bg/messages.po +++ b/src/frontend/src/locales/bg/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: bg\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "" @@ -135,16 +135,16 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "" @@ -2924,7 +2924,7 @@ msgstr "" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "" @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/cs/messages.po b/src/frontend/src/locales/cs/messages.po index 1b193f4ba9..2869ebe8e3 100644 --- a/src/frontend/src/locales/cs/messages.po +++ b/src/frontend/src/locales/cs/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: cs\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-23 06:29\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Czech\n" "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n" @@ -79,12 +79,12 @@ msgstr "Zrušit" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Akce" @@ -135,16 +135,16 @@ msgstr "Ne" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "Výrobní příkaz" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Kódy projektu" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Objednávka" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Prodejní objednávka" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Vrácená objednávka" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "Převodní příkaz" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Odstranit přidružený obrázek z této položky?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "Verze rozhraní API" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Pluginy" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "Změnit" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Přidat" @@ -2874,8 +2874,8 @@ msgstr "Uživatelská nastavení" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Nastavení systému" @@ -2924,7 +2924,7 @@ msgstr "Odhlásit" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Zásoby" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Výroba" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Nákup" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Přílohy" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Kategorie" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Sériové číslo" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Sériové číslo" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Množství" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Dávka" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Dodavatel" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Načítání..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "Požadavky prodeje" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "Položka přidána k objednávce" msgid "Select supplier part" msgstr "Vyberte položku dodavatele" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "Kopírovat číslo dílu dodavatele" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "Nová položka dodavatele" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "Vyberte nákupní objednávku" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "Nová objednávka" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "Přidat do zvolené objednávky" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "Nebyly vybrány žádné položky" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "Nebyly vybrány žádné nakoupitelné položky" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Přidané položky" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "Všechny vybrané části byly přidány do objednávky" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "Musíte vybrat alespoň jednu položku pro objednávku" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "Je vyžadována položka dodavatele" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "Je vyžadováno množství" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "Neplatný výběr položky" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "Opravte chyby ve vybraných položkách" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "Množství k dokončení" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "Nastavit datum expirace" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Upravit balení" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Změnit stav" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "Zadat kód dávky pro příchozí položky skladu" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Sériová čísla" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "Zadejte datum expirace pro přijaté položky" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "Ponechte prázdné pro použití adresy objednávky" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Přidat dané množství jako balení namísto jednotlivých položek" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Zadejte počáteční množství pro tuto skladovou položku" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Zadejte sériová čísla pro novou skladbu (nebo ponechte prázdné)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Stav skladu" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Nová skladová položka" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "Vyberte skladovou položku k instalaci" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "Potvrdit převod zásob" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "Potvrdit vrácení zásob" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Přesunout do výchozího umístění" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Přesunout" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "Vrátit" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "Sloučit do existujících zásob" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Přesunout" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "Vrátit" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "Sloučit vrácené položky do existujících zásob, pokud je to možné" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "Poznámky k transakci" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Počet" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Přidat zásobu" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "Zásoba přidána" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "Zvyšte množství vybraných skladových položek o danou částku." -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Snížit zásobu" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "Zásoba snížena" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "Snižte množství vybraných skladových položek o danou částku." -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Převést zásobu" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "Skladová položka převedena" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "Přesunout vybrané položky do určeného umístění." -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "Vrátit zásoby" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "Zásoby vráceny" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "Vrátit vybrané položky do skladu na určené místo." -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Spočítat zásoby" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "Spočítáno" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "Spočítat vybrané skladové položky, a podle toho upravit množství." -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Změnit stav skladu" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "Stav skladu byl změněn" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "Změnit stav vybraných skladových položek." -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "Změnit kód sarže" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "Změnit kód sarže pro vybrané skladové položky" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Sloučit zásoby" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "Zásoby sloučeny" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "Sloučit skladové položky" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "Sloučení nelze vrátit zpět" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "Při slučování položek mohou být informace o sledování ztraceny" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "Informace o dodavateli mohou být při slučování položek ztraceny" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "Přiřadit sklad zákazníkovi" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "Zásoby přiřazené zákazníkovi" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Odstranit skladové položky" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "Skladová položka odstraněna" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "Tato operace trvale odstraní vybrané skladové položky." -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Nadřazené skladové umístění" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "Najít sériové číslo" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "Žádné odpovídající položky" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "Více odpovídajících položek" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "Neplatná odpověď ze serveru" @@ -7294,15 +7295,15 @@ msgstr "Ceník" msgid "Part Creation" msgstr "Vytvoření dílu" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "Expirace zásob" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "Inventura dílu" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "Sledování skladových položek" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "Externí výrobní příkazy" diff --git a/src/frontend/src/locales/da/messages.po b/src/frontend/src/locales/da/messages.po index f9130209bf..a8586f1d2e 100644 --- a/src/frontend/src/locales/da/messages.po +++ b/src/frontend/src/locales/da/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: da\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Danish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "Annuller" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Handlinger" @@ -135,16 +135,16 @@ msgstr "Nej" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "Produktionsordre" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Projektkoder" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Købsordre" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Salgsordrer" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Returordre" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Fjern det tilknyttede billede fra denne vare?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "API Version" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Plugins" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "Ændre" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Tilføj" @@ -2874,8 +2874,8 @@ msgstr "Brugerindstillinger" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Systemindstillinger" @@ -2924,7 +2924,7 @@ msgstr "Log ud" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Lager" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Produktion" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Indkøb" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Vedhæftninger" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Kategori" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Serienummer" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Serienummer" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Antal" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Batch" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Leverandør" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Indlæser..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "Salgs Krav" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "Del tilføjet til indkøbsordre" msgid "Select supplier part" msgstr "Vælg leverandørdel" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "Kopier leverandørens del nummer" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "Ny leverandørdel" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "Vælg indkøbsordre" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "Ny indkøbsordre" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "Tilføj til den valgte indkøbsordre" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "Ingen dele valgt" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "Ingen dele, der kan købes, er valgt" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Dele Tilføjet" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "Alle valgte dele føjet til en indkøbsordre" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "Du skal vælge mindst en del for at bestille" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "Leverandør del er påkrævet" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "Mængde er påkrævet" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "Ugyldig del valg" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "Ret venligst fejlene i de valgte dele" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "Antal til fuldførelse" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "Sæt Udløbsdato" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Juster Emballering" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Ændre Status" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "Indtast batch kode for modtagne varer" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Serienummer" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "Indtast en udløbsdato for modtagne vare" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "Efterlad blank for at bruge ordreadressen" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Tilføj givet antal som pakker i stedet for individuelle elementer" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Angiv første antal for denne lagervare" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Indtast serienumre for nyt lager (eller efterlad blank)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Lager Status" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Tilføj Lagervare" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "Vælg den del, der skal installeres" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "Bekræft Lager Overførsel" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Flyt til standard lokation" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Flyt" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "Retur" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Flyt" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "Retur" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Antal" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Tilføj Lagerbeholdning" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "Lager tilføjet" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "Forøg antallet af valgte lagervarer med et givet beløb." -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Fjern Lagervarer" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "Lager fjernet" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "Reducer antallet af de valgte lagervarer med et givet beløb." -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Overfør Lager" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "Lager overført" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "Overfør valgte elementer til den angivne lokation." -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "Retur Lager" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "Lager returneret" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "Returner valgte elementer til lager, til den angivne lokation." -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Tæl Lager" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "Lager er optalt" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "Tæl de valgte lagervarer, og juster mængden i overensstemmelse." -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Ændr Lagerstatus" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "Lagerstatus ændret" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "Ændre status for de valgte lagervarer." -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Flet Lager" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "Lager sammenlagt" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "Flet Lagervarer" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "Fletningshandlingen kan ikke fortrydes" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "Sporingsoplysninger kan gå tabt ved sammenlægning af elementer" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "Leverandøroplysninger kan gå tabt ved sammenlægning af elementer" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "Tildel lager til kunde" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "Lager tildelt kunden" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Slet Lagervare" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "Lagervare slettet" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "Denne handling vil permanent slette de valgte lagervarer." -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Overordnet lager lokation" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "Find Serienummer" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "Ingen matchende varer" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "Flere matchende varer" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "Ugyldigt svar fra server" @@ -7294,15 +7295,15 @@ msgstr "Prissætning" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "Lager Sporing" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/de/messages.po b/src/frontend/src/locales/de/messages.po index eec32b110a..5c822be01d 100644 --- a/src/frontend/src/locales/de/messages.po +++ b/src/frontend/src/locales/de/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: de\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: German\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "Abbrechen" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Aktionen" @@ -135,16 +135,16 @@ msgstr "Nein" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "Bauauftrag" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Projektnummern" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Einkaufsbestellung" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Verkaufsauftrag" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Rückgabe Auftrag" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Verknüpftes Bild von diesem Teil entfernen?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "API-Version" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Plugins" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "Ändern" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Hinzufügen" @@ -2874,8 +2874,8 @@ msgstr "Benutzer-Einstellungen" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Einstellungen" @@ -2924,7 +2924,7 @@ msgstr "Abmelden" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Lager" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Fertigung" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Einkauf" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Anhänge" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Kategorie" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Seriennummer" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Seriennummer" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Anzahl" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Losnummer" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Lieferant" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Lade..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "Verkaufsanforderungen" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "Teil zur Bestellung hinzugefügt" msgid "Select supplier part" msgstr "Zulieferer-Teil auswählen" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "Lieferanten-Artikelnummer kopieren" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "Neues Zulieferer-Teil" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "Bestellung auswählen" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "Neue Bestellung" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "Keine Teile ausgewählt" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Teile hinzugefügt" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "Alle ausgewählten Teile wurden einer Bestellung hinzugefügt" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "Sie müssen mindestens einen Teil für die Bestellung auswählen" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "Lieferantenteil ist erforderlich" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "Menge ist erforderlich" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "Ungültige Teileauswahl" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "Bitte korrigieren Sie die Fehler in den ausgewählten Teilen" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "Ablaufdatum festlegen" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Verpackung anpassen" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Status ändern" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "Losnummern eingeben für empfangene Gegenstände" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Seriennummern" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "Ablaufdatum eingeben für empfangene Gegenstände" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Angegebene Menge als Packungen anstatt einzelner Artikel hinzufügen" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Ausgangsmenge für diesen Lagerartikel eingeben" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Lagerbestand Status" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Lagerartikel hinzufügen" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "Teil zur Installation auswählen" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "Bestand-Transfer bestätigen" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Zum Standard-Lagerort verschieben" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Verschieben" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "Zurück" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Verschieben" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "Zurück" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Anzahl" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Bestand hinzufügen" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "Bestand hinzugefügt" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "Menge der ausgewählten Bestandteile um einen bestimmten Betrag erhöhen" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Bestand entfernen" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "Bestand entfernt" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "Menge der ausgewählten Bestandteile um einen bestimmten Betrag reduzieren" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Bestand verschieben" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "Bestand übertragen" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "Ausgewählte Elemente an den angegebenen Ort übertragen." -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "Lagerbestand zurückgeben" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "Lagerbestand zurückgegeben" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Bestand zählen" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "Lagerbestand gezählt" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Bestandsstatus ändern" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "Bestandstatus geändert" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "Status der ausgewählten Lagerartikel ändern." -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Bestand zusammenführen" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "Lagerbestand zusammengeführt" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "Lagerbestand zusammenführen" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "Das Zusammenführen kann nicht rückgängig gemacht werden" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "Tracking-Informationen können beim Zusammenführen von Elementen verloren gehen" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "Lieferanteninformationen können beim Zusammenführen verloren gehen" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "Lagerbestand einem Kunden zuweisen" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "Lagerbestand wurde Kunden zugewiesen" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Bestand löschen" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "Lagerbestand gelöscht" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "Dieser Vorgang löscht die ausgewählten Lagerbestandteile unwiderruflich." -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Übergeordneter Lagerort" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "Seriennummer finden" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "Keine passenden Elemente" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "Mehrere passende Elemente" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "Ungültige Antwort vom Server" @@ -7294,15 +7295,15 @@ msgstr "Preise" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "Bestandsverfolgung" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/el/messages.po b/src/frontend/src/locales/el/messages.po index 8f8aa4f566..f1aa2605f9 100644 --- a/src/frontend/src/locales/el/messages.po +++ b/src/frontend/src/locales/el/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: el\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Greek\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "Ακύρωση" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Ενέργειες" @@ -135,16 +135,16 @@ msgstr "Όχι" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "Εντολή Κατασκευής" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Κωδικοί Έργων" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Εντολή Αγοράς" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Εντολή Πώλησης" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Εντολή Επιστροφής" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Αφαίρεση της σχετικής εικόνας από αυτό το στοιχείο;" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "Έκδοση API" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Plugins" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "Αλλαγή" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Προσθήκη" @@ -2874,8 +2874,8 @@ msgstr "Ρυθμίσεις χρήστη" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Ρυθμίσεις συστήματος" @@ -2924,7 +2924,7 @@ msgstr "Αποσύνδεση" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Απόθεμα" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Κατασκευή" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Προμήθειες" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Συνημμένα" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Κατηγορία" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Σειριακός αριθμός" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Σειριακός αριθμός" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Ποσότητα" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Παραγωγική παρτίδα" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Προμηθευτής" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Φόρτωση..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "Απαιτήσεις πωλήσεων" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "Το Προϊόν προστέθηκε στην παραγγελία α msgid "Select supplier part" msgstr "Επιλέξτε Προϊόν προμηθευτή" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "Νέο Προϊόν προμηθευτή" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "Επιλέξτε παραγγελία αγοράς" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "Νέα παραγγελία αγοράς" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "Προσθήκη στην επιλεγμένη παραγγελία αγοράς" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "Δεν επιλέχθηκαν προϊόντα" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "Δεν επιλέχθηκαν αγοραζόμενα Προϊόντα" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Τα Προϊόντα προστέθηκαν" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "Όλα τα επιλεγμένα Προϊόντα προστέθηκαν σε παραγγελία αγοράς" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "Πρέπει να επιλέξετε τουλάχιστον ένα Προϊόν για παραγγελία" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "Απαιτείται Προϊόν προμηθευτή" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "Απαιτείται ποσότητα" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "Μη έγκυρη επιλογή Προϊόντος" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "Παρακαλώ διορθώστε τα σφάλματα στα επιλεγμένα Προϊόντα" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "Ποσότητα προς ολοκλήρωση" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "Ορισμός ημερομηνίας λήξης" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Προσαρμογή συσκευασίας" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Αλλαγή κατάστασης" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "Εισαγάγετε κωδικό παρτίδας για τα παραληφθέντα είδη" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Σειριακοί αριθμοί" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "Εισαγάγετε ημερομηνία λήξης για τα παραληφθέντα είδη" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "Αφήστε κενό για χρήση της διεύθυνσης τη #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Προσθέστε την ποσότητα ως πακέτα αντί για μεμονωμένα είδη" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Εισαγάγετε αρχική ποσότητα για αυτό το είδος" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Εισαγάγετε σειριακούς αριθμούς για νέο απόθεμα (ή αφήστε κενό)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Κατάσταση αποθέματος" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Προσθήκη είδους αποθέματος" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "Επιλέξτε το Προϊόν προς εγκατάσταση" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "Επιβεβαίωση μεταφοράς αποθέματος" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Μετακίνηση στην προεπιλεγμένη τοποθεσία" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Μετακίνηση" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "Επιστροφή" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Μετακίνηση" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "Επιστροφή" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Καταμέτρηση" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Προσθήκη αποθέματος" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "Το απόθεμα προστέθηκε" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "Αυξήστε την ποσότητα των επιλεγμένων ειδών αποθέματος κατά μια δεδομένη τιμή." -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Αφαίρεση αποθέματος" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "Το απόθεμα αφαιρέθηκε" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "Μείωση της ποσότητας των επιλεγμένων ειδών αποθέματος κατά μια δεδομένη τιμή." -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Μεταφορά αποθέματος" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "Το απόθεμα μεταφέρθηκε" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "Μεταφέρετε τα επιλεγμένα είδη στην καθορισμένη τοποθεσία." -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "Επιστροφή αποθέματος" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "Το απόθεμα επιστράφηκε" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "Επιστροφή των επιλεγμένων ειδών στο απόθεμα, στην καθορισμένη τοποθεσία." -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Καταμέτρηση αποθέματος" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "Το απόθεμα καταμετρήθηκε" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "Καταμετρήστε τα επιλεγμένα είδη αποθέματος και προσαρμόστε την ποσότητα ανάλογα." -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Αλλαγή κατάστασης αποθέματος" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "Η κατάσταση αποθέματος άλλαξε" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "Αλλαγή της κατάστασης των επιλεγμένων ειδών αποθέματος." -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Συγχώνευση αποθέματος" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "Το απόθεμα συγχωνεύτηκε" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "Συγχώνευση ειδών αποθέματος" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "Η ενέργεια συγχώνευσης δεν μπορεί να αναιρεθεί" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "Οι πληροφορίες ιχνηλάτησης μπορεί να χαθούν κατά τη συγχώνευση" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "Οι πληροφορίες προμηθευτή μπορεί να χαθούν κατά τη συγχώνευση" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "Ανάθεση αποθέματος σε πελάτη" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "Το απόθεμα ανατέθηκε στον πελάτη" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Διαγραφή ειδών αποθέματος" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "Το απόθεμα διαγράφηκε" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "Αυτή η ενέργεια θα διαγράψει μόνιμα τα επιλεγμένα είδη αποθέματος." -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Γονική τοποθεσία αποθέματος" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "Εύρεση σειριακού αριθμού" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "Δεν βρέθηκαν αντίστοιχα είδη" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "Πολλαπλά αντίστοιχα είδη" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "Μη έγκυρη απόκριση από τον διακομιστή" @@ -7294,15 +7295,15 @@ msgstr "Τιμολόγηση" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "Παρακολούθηση Αποθέματος" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/en/messages.po b/src/frontend/src/locales/en/messages.po index 4d0fe8da76..0580d343e2 100644 --- a/src/frontend/src/locales/en/messages.po +++ b/src/frontend/src/locales/en/messages.po @@ -74,12 +74,12 @@ msgstr "Cancel" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Actions" @@ -130,16 +130,16 @@ msgstr "No" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -323,7 +323,7 @@ msgstr "Build Order" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -381,7 +381,7 @@ msgid "Project Codes" msgstr "Project Codes" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -394,7 +394,7 @@ msgstr "Purchase Order" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -427,7 +427,7 @@ msgstr "Sales Order" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -452,7 +452,7 @@ msgstr "Return Order" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -477,7 +477,7 @@ msgstr "Transfer Order" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1472,7 +1472,7 @@ msgid "Remove the associated image from this item?" msgstr "Remove the associated image from this item?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2071,7 +2071,7 @@ msgstr "API Version" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Plugins" @@ -2514,7 +2514,7 @@ msgid "Change" msgstr "Change" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Add" @@ -2869,8 +2869,8 @@ msgstr "User Settings" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "System Settings" @@ -2919,7 +2919,7 @@ msgstr "Logout" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2932,7 +2932,7 @@ msgstr "Stock" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2940,7 +2940,7 @@ msgstr "Manufacturing" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2952,7 +2952,7 @@ msgstr "Purchasing" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3088,7 +3088,7 @@ msgid "Attachments" msgstr "Attachments" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3384,15 +3384,15 @@ msgstr "Category" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3413,7 +3413,7 @@ msgid "Serial Number" msgstr "Serial Number" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3421,7 +3421,7 @@ msgstr "Serial Number" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3448,15 +3448,15 @@ msgstr "Quantity" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Batch" @@ -3978,7 +3978,7 @@ msgid "Supplier" msgstr "Supplier" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Loading..." @@ -4124,13 +4124,13 @@ msgid "Sales Requirements" msgstr "Sales Requirements" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4175,64 +4175,64 @@ msgstr "Part added to purchase order" msgid "Select supplier part" msgstr "Select supplier part" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "Copy supplier part number" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "New supplier part" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "Select purchase order" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "New purchase order" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "Add to selected purchase order" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "No parts selected" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "No purchaseable parts selected" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Parts Added" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "All selected parts added to a purchase order" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "You must select at least one part to order" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "Supplier part is required" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "Quantity is required" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "Invalid part selection" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "Please correct the errors in the selected parts" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4816,7 +4816,7 @@ msgstr "Quantity to Complete" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5099,12 +5099,12 @@ msgid "Set Expiry Date" msgstr "Set Expiry Date" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Adjust Packaging" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Change Status" @@ -5148,7 +5148,7 @@ msgid "Enter batch code for received items" msgstr "Enter batch code for received items" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Serial Numbers" @@ -5167,7 +5167,7 @@ msgid "Enter an expiry date for received items" msgstr "Enter an expiry date for received items" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5269,218 +5269,219 @@ msgstr "Leave blank to use the order address" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Add given quantity as packs instead of individual items" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Enter initial quantity for this stock item" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Enter serial numbers for new stock (or leave blank)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Stock Status" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Add Stock Item" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "Select the part to install" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "Confirm Stock Transfer" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "Confirm Stock Return" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Move to default location" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Move" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "Return" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "Merge into existing stock" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Move" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "Return" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "Merge returned items into existing stock items if possible" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "Stock transaction notes" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Count" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Add Stock" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "Stock added" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "Increase the quantity of the selected stock items by a given amount." -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Remove Stock" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "Stock removed" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "Decrease the quantity of the selected stock items by a given amount." -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Transfer Stock" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "Stock transferred" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "Transfer selected items to the specified location." -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "Return Stock" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "Stock returned" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "Return selected items into stock, to the specified location." -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Count Stock" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "Stock counted" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "Count the selected stock items, and adjust the quantity accordingly." -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Change Stock Status" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "Stock status changed" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "Change the status of the selected stock items." -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "Change Batch Code" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "Change batch code for the selected stock items" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Merge Stock" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "Stock merged" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "Merge Stock Items" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "Merge operation cannot be reversed" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "Tracking information may be lost when merging items" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "Supplier information may be lost when merging items" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "Assign Stock to Customer" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "Stock assigned to customer" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Delete Stock Items" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "Stock deleted" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "This operation will permanently delete the selected stock items." -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Parent stock location" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "Find Serial Number" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "No matching items" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "Multiple matching items" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "Invalid response from server" @@ -7289,15 +7290,15 @@ msgstr "Pricing" msgid "Part Creation" msgstr "Part Creation" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "Stock Expiry" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "Part Stocktake" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7307,7 +7308,7 @@ msgstr "Stock Tracking" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "External Build Orders" diff --git a/src/frontend/src/locales/es/messages.po b/src/frontend/src/locales/es/messages.po index 1424ab45b3..80607a7a02 100644 --- a/src/frontend/src/locales/es/messages.po +++ b/src/frontend/src/locales/es/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: es\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "Cancelar" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Acciones" @@ -135,16 +135,16 @@ msgstr "No" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "Orden de construcción" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Códigos de proyecto" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Pedido de compra" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Orden de venta" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Orden de devolución" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "¿Eliminar la imagen asociada de este elemento?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "Versión API" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Complementos" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Añadir" @@ -2874,8 +2874,8 @@ msgstr "Ajustes del usuario" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Ajustes del sistema" @@ -2924,7 +2924,7 @@ msgstr "Cerrar sesión" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Stock" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Fabricación" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Compras" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Archivos adjuntos" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Categoría" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Número de serie" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Número de serie" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Cantidad" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Lote" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Proveedor" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Cargando..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Partes Agregadas" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "Establecer Fecha de Vencimiento" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Ajustar empaquetado" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Cambiar Estado" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "Introduzca el código de lote para los artículos recibidos" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Números de serie" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Agrega una cantidad dada en conjunto en lugar de artículos individuales" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Cantidad inicial de existencias que tendrá este artículo" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Introduzca números de serie para las nuevas existencias (o deje en blanco)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Estado de Existencias" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Añadir artículo de stock" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "Selecciona la pieza a instalar" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "Confirmar transferencia de existencias" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Mover a la ubicación predeterminada" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Mover" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "Devolver" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Mover" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "Devolver" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Contar" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Agregar existencias" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "Existencias añadidas" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Eliminar existencias" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "Existencias eliminadas" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Transferir existencias" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "Existencias transferidas" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Contar existencias" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "Existencias contadas" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Cambiar estado de existencias" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "Estado de existencias cambiado" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Juntar existencias" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "Existencias fusionadas" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "Asignar existencias a cliente" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "Existencias asignadas a cliente" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Eliminar existencias" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "Existencias eliminadas" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Ubicación del stock padre" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "Precios" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "Seguimiento de existencias" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/es_MX/messages.po b/src/frontend/src/locales/es_MX/messages.po index d86042f6e3..69742f313d 100644 --- a/src/frontend/src/locales/es_MX/messages.po +++ b/src/frontend/src/locales/es_MX/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: es_MX\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "Cancelar" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Acciones" @@ -135,16 +135,16 @@ msgstr "No" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Códigos de proyecto" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Pedido de compra" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Orden de venta" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Orden de devolución" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "¿Eliminar imagen asociada al artículo?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "Versión de API" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Complementos" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "Cambiar" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Agregar" @@ -2874,8 +2874,8 @@ msgstr "Ajustes del usuario" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Ajustes del sistema" @@ -2924,7 +2924,7 @@ msgstr "Cerrar sesión" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Existencias" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Fabricación" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Compras" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Archivos adjuntos" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Categoría" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Número de serie" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Número de serie" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Cantidad" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Lote" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Proveedor" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Cargando..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "Parte añadida a la orden de compra" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "Nueva parte de proveedor" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "Nueva orden de compra" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "Añadir a la orden de compra seleccionada" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "No hay partes seleccionadas" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "Ninguna pieza comprable seleccionada" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Partes añadidas" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "Todas las piezas seleccionadas añadidas a una orden de compra" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "Debe seleccionar al menos una parte para ordenar" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "La pieza del proveedor es necesaria" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "Cantidad requerida" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "Selección de pieza inválida" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "Por favor, corrija los errores en las partes seleccionadas" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "Establecer la fecha de caducidad" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Ajustar empaquetado" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Cambiar Estado" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "Introduzca el código de lote para los artículos recibidos" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Números de serie" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "Introduzca una fecha de caducidad para los artículos recibidos" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Agrega una cantidad dada en conjunto en lugar de artículos individuales" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Cantidad inicial de existencias que tendrá este artículo" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Introduzca números de serie para las nuevas existencias (o deje en blanco)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Estado del stock" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Añadir artículo de stock" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "Selecciona la pieza a instalar" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "Confirmar transferencia de existencias" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Mover a la ubicación predeterminada" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Mover" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "Devolver" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Mover" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "Devolver" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Contar" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Agregar existencias" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "Existencias añadidas" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Eliminar existencias" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "Existencias eliminadas" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Transferir existencias" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "Existencias transferidas" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Contar existencias" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "Existencias contadas" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Cambiar estado de existencias" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "Estado de existencias cambiado" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Juntar existencias" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "Existencias fusionadas" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "Asignar existencias a cliente" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "Existencias asignadas a cliente" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Eliminar existencias" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "Existencias eliminadas" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Ubicación del stock padre" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "Precios" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/et/messages.po b/src/frontend/src/locales/et/messages.po index a927043ada..b81536ab30 100644 --- a/src/frontend/src/locales/et/messages.po +++ b/src/frontend/src/locales/et/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: et\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Estonian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "Tühista" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Toimingud" @@ -135,16 +135,16 @@ msgstr "Ei" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Projekti koodid" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Ostukorraldus" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Kas soovite eemaldada seotud pildi sellest üksusest?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "API versioon" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Pluginad" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "Muuda" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Lisa" @@ -2874,8 +2874,8 @@ msgstr "Kasutaja seaded" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Süsteemi seaded" @@ -2924,7 +2924,7 @@ msgstr "Logi välja" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Laoseis" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Tootmine" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Ostmine" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Manused" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Kategooria" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Seerianumber" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Seerianumber" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Kogus" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Partii" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Tarnija" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Laadimine..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "Müügi nõuded" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Muuda staatust" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Seerianumbrid" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "Sisesta saabunud ühikute aegumise kuupäevad" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Lisage antud kogus pakkidena individuaalsete esemete asemel" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Sisestage sellele laoseadmele algkogus" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Sisestage uued kaubanduslikud numbrikoodid (või jätke tühjaks)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Laoseis" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Liiguta" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Liiguta" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Kogus" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "Hind" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/fa/messages.po b/src/frontend/src/locales/fa/messages.po index 922b9c851b..f4d505db73 100644 --- a/src/frontend/src/locales/fa/messages.po +++ b/src/frontend/src/locales/fa/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: fa\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Persian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "" @@ -135,16 +135,16 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "" @@ -2924,7 +2924,7 @@ msgstr "" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "" @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/fi/messages.po b/src/frontend/src/locales/fi/messages.po index c9a06014cc..0cb403dbe6 100644 --- a/src/frontend/src/locales/fi/messages.po +++ b/src/frontend/src/locales/fi/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: fi\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "" @@ -135,16 +135,16 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "" @@ -2924,7 +2924,7 @@ msgstr "" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "" @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/fr/messages.po b/src/frontend/src/locales/fr/messages.po index acfcb8b0ca..d4cf70673f 100644 --- a/src/frontend/src/locales/fr/messages.po +++ b/src/frontend/src/locales/fr/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: fr\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: French\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" @@ -79,12 +79,12 @@ msgstr "Annuler" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Actions" @@ -135,16 +135,16 @@ msgstr "Non" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "Ordre de construction" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Codes du projet" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Commande d’achat" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Ventes" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Retour de commande" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Supprimer l'image associée de cet élément ?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "Version de l'API" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Extensions" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "Modifier" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Ajouter" @@ -2874,8 +2874,8 @@ msgstr "Paramètres de l'utilisateur" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Les paramètres du système" @@ -2924,7 +2924,7 @@ msgstr "Se déconnecter" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Stock" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Fabrication" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Achat en cours" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Fichiers joints" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Catégorie" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Numéro de série" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Numéro de série" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Quantité" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Lot" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Fournisseur" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Chargement..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "Conditions de vente" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "Pièce ajoutée à l'ordre de commande" msgid "Select supplier part" msgstr "Sélectionner une pièce du fournisseur" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "Copier le numéro de pièce du fournisseur" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "Nouvelle pièce fournisseur" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "Sélectionner un ordre de commande" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "Nouvel ordre de commande" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "Ajouter aux ordres de commande sélectionnés" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "Aucune pièce sélectionnée" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "Aucune pièce achetable sélectionnée" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Pièce ajoutée" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "Toutes les pièces sélectionnées ont été ajouté à l'ordre de commande" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "Vous devez sélectionner au moins une pièce à commander" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "Le fournisseur est requis" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "La quantité est requise" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "Sélection invalide" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "Veuillez corriger les erreurs dans la sélection des pièces" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "Quantité à allouer" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "Indiquer une date d'expiration" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Ajuster le conditionnement" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Changer le statut" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "Saisir le code de lot pour les articles reçus" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Numéros de Série" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "Entrer une date d'expiration pour les articles reçus" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "Laisser vide pour utiliser l'adresse de commande" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Ajouter une quantité en paquet au lieu de pièces individuelles" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Entrez la quantité initiale pour cet article en stock" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Entrez les numéros de série pour le nouveau stock (ou laisser vide)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "État du stock" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Ajouter un article en stock" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "Sélectionnez la partie à installer" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "Confirmer le transfert des stock" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Déplacer vers l'emplacement par défaut" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Déplacer" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "Retour" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Déplacer" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "Retour" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Compter" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Ajouter du stock" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "Stock ajouté" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "Augmenter le nombre des articles en stock sélectionnés d'une quantité donnée." -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Supprimer du stock" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "Stock retiré" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "Réduire le nombre des articles en stock sélectionnés d'une quantité donnée." -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Transférer le stock" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "Stock transféré" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "Transférer les articles sélectionnés vers l'endroit spécifié." -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "Remettre en stock" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "Remis en stock" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "Remettre les articles sélectionnés en stock, à l'endroit spécifié." -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Compter le stock" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "Stock compté" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "Compter les articles en stock sélectionnés et ajuster la quantité." -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Changer l'état du stock" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "Statut du stock changé" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "Changer le status des articles en stock sélectionnés." -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Fusionner le stock" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "Stock fusionné" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "Fusionner les articles en stock" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "L'opération de fusion ne permet pas de retour en arrière" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "Les informations de suivi pourraient être perdues lors de la fusion des articles" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "Les informations du fournisseur pourraient être perdues lors de la fusion des articles" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "Lier un stock à un client" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "Stock lié au client" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Supprimer l'article du stock" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "Stock supprimé" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "Cette opération va supprimer définitivement les articles en stock sélectionnés." -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Localisation Parente du stock" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "Trouver le numéro de série" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "Pas d'article correspondant" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "Plusieurs articles correspondent" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "Réponse invalide du serveur" @@ -7294,15 +7295,15 @@ msgstr "Tarifs" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "Suivi du stock" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/he/messages.po b/src/frontend/src/locales/he/messages.po index 4518b54857..ca4e2766ff 100644 --- a/src/frontend/src/locales/he/messages.po +++ b/src/frontend/src/locales/he/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: he\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n" @@ -79,12 +79,12 @@ msgstr "בטל" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "" @@ -135,16 +135,16 @@ msgstr "לא" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "קוד פרויקט" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "הזמנות רכש" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "הזמנת מכירה" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "החזרת הזמנה" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "האם להסיר את התמונה המשויכת מפריט זה?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "גרסת API" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "תוספים" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "הגדרות מערכת" @@ -2924,7 +2924,7 @@ msgstr "התנתק" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "מלאי" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "רכישה" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "מספר סידורי" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "מספר סידורי" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "כמות" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "" @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/hi/messages.po b/src/frontend/src/locales/hi/messages.po index 9c3ac6b70a..f11aa246cb 100644 --- a/src/frontend/src/locales/hi/messages.po +++ b/src/frontend/src/locales/hi/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: hi\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Hindi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "" @@ -135,16 +135,16 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "" @@ -2924,7 +2924,7 @@ msgstr "" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "" @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/hu/messages.po b/src/frontend/src/locales/hu/messages.po index 6ad134c988..62b2df3c38 100644 --- a/src/frontend/src/locales/hu/messages.po +++ b/src/frontend/src/locales/hu/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: hu\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "Mégsem" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Műveletek" @@ -135,16 +135,16 @@ msgstr "Nem" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "Gyártási utasítás" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Projektszámok" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Beszerzési rendelés" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Vevői rendelés" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Visszavétel" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Tételhez rendelt kép eltávolítása?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "API verzió" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Pluginok" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "Módosítás" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Hozzáadás" @@ -2874,8 +2874,8 @@ msgstr "Felhasználói beállítások" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Rendszerbeállítások" @@ -2924,7 +2924,7 @@ msgstr "Kijelentkezés" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Készlet" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Gyártás" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Beszerzés" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Mellékletek" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Kategória" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Sorozatszám" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Sorozatszám" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Mennyiség" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Köteg" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Beszállító" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Betöltés..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "Értékesítési igények" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "Alkatrész hozzáadva a beszerzési rendeléshez" msgid "Select supplier part" msgstr "Beszállítói alkatrész kiválasztása" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "Beszállítói alkatrész szám másolása" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "Új beszállítói alkatrész" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "Beszerzési rendelés kiválasztása" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "Új beszerzési rendelés" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "Hozzáadás a kiválasztott beszerzési rendeléshez" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "Nincs kiválasztva alkatrész" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "Nincs kiválasztva beszerezhető alkatrész" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Alkatrészek hozzáadva" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "Minden kiválasztott alkatrész beszerzési rendeléshez adva" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "Legalább egy alkatrész választása szükséges a rendeléshez" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "Beszállítói alkatrész szükséges" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "Mennyiség megadása kötelező" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "Érvénytelen alkatrész kiválasztás" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "Kérjük javítsa ki a hibákat a kiválasztott alkatrészeknél" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "Teljesítendő mennyiség" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "Lejárati dátum beállítása" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Csomagolás módosítása" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Állapot megváltoztatása" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "Gyártási szám megadása a fogadott tételekhez" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Sorozatszámok" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "Lejárati dátum megadása a fogadott tételekhez" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "Hagyja üresen a rendelési cím használatához" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Mennyiség hozzáadása csomagolási egységenként egyedi tételek helyett" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Add meg a kezdeti mennyiséget ehhez a készlet tételhez" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Add meg az új készlet tételhez tartozó sorozatszámokat (vagy hagyd üresen)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Készlet állapota" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Új készlet tétel" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "Válassza ki a telepítendő alkatrészt" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "Mozgatás megerősítése" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Mozgatás az alapértelmezett helyre" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Áthelyezés" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "Visszavétel" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Áthelyezés" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "Visszavétel" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Mennyiség" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Készlethez ad" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "Raktárkészlet hozzáadva" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "Kiválasztott készlettételek mennyiségének növelése adott értékkel." -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Készlet csökkentése" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "Készlet eltávolítva" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "Kiválasztott készlettételek mennyiségének csökkentése adott értékkel." -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Készlet áthelyezése" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "Készlet áthelyezve" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "Kiválasztott tétele mozgatása a meghatározott készlethelyre." -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "Visszavételi készlet" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "Készlet visszavéve" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "Kiválasztott tételek visszavétele készletre a megadott helyre." -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Leltározás" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "Készlet számlálva" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "Számolja meg a kiválasztott készlet tételeket és módosítsa a mennyiséget ennek megfelelően." -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Készlet állapot módosítása" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "Készlet státusz megváltozott" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "A kiválasztott készlet tételek státuszának módosítása." -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Készlet összevonása" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "Készlet összevonva" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "Készlet tételek összevonása" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "Az összevonási művelet nem visszafordítható" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "Nyomonkövetési információk elveszhetnek tételek összevonásakor" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "Beszállítói információk elveszhetnek tételek összevonásakor" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "Készlet hozzárendelése ügyfélhez" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "Készlet hozzárendelve az ügyfélhez" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Készlet tétel törlése" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "Készlet törölve" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "Ez a művelet véglegesen törli a kiválasztott készlet tételeket." -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Szülő készlet hely" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "Sorozatszám keresése" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "Nincs egyező tétel" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "Több egyező tétel" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "Érvénytelen válasz a szervertől" @@ -7294,15 +7295,15 @@ msgstr "Árazás" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "Készlettörténet" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/id/messages.po b/src/frontend/src/locales/id/messages.po index 19c1ef2e55..9f33f07bf0 100644 --- a/src/frontend/src/locales/id/messages.po +++ b/src/frontend/src/locales/id/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: id\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -79,12 +79,12 @@ msgstr "Batal" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "" @@ -135,16 +135,16 @@ msgstr "Tidak" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "Versi API" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Tambah" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Pengaturan Sistem" @@ -2924,7 +2924,7 @@ msgstr "" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Persediaan" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Nomor Seri" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Nomor Seri" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Jumlah" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Memuat..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Nomor Seri" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/it/messages.po b/src/frontend/src/locales/it/messages.po index 61754b8c66..b103d3ba2c 100644 --- a/src/frontend/src/locales/it/messages.po +++ b/src/frontend/src/locales/it/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: it\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Italian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "Annulla" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Azioni" @@ -135,16 +135,16 @@ msgstr "No" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "Ordine di Produzione" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Codici del progetto" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Ordine d'acquisto" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Ordine di Vendita" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Ordine di reso" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Rimuovi l'immagine associata all'articolo?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "Versione API" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Plugin" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "Cambiare" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Aggiungi" @@ -2874,8 +2874,8 @@ msgstr "Impostazioni Utente" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Impostazioni di sistema" @@ -2924,7 +2924,7 @@ msgstr "Disconnettiti" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Stock" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Fabbricazione" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Acquisto" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Allegati" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Categoria" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Numero Seriale" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Numero Seriale" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Quantità" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Lotto" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Fornitore" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Caricamento..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "Requisiti di vendita" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "Articolo aggiunto all'ordine di acquisto" msgid "Select supplier part" msgstr "Seleziona l'articolo del fornitore" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "Copia il numero articolo del fornitore" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "Nuovo articolo fornitore" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "Seleziona ordine d'acquisto" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "Nuovo ordine d'acquisto" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "Aggiungi all'ordine di acquisto selezionato" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "Nessun articolo selezionato" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "Nessun articolo acquistabile selezionato" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Articolo aggiunto" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "Tutte le parti selezionate aggiunte all'ordine di acquisto" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "Devi selezionare almeno un articolo da ordinare" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "L'articolo fornitore è richiesto" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "La quantità è richiesta" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "Selezione articolo invalida" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "Si prega di correggere gli errori negli articoli selezionati" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "Quantità da completare" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "Impostare una Data di Scadenza" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Regola Imballaggio" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Modifica Stato" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "Inserisci il codice lotto per gli articoli ricevuti" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Numeri di serie" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "Inserisci una data di scadenza per gli articoli ricevuti" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "Lascia vuoto per utilizzare l'indirizzo dell'ordine" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Aggiungere la quantità data come pacchi invece di singoli articoli" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Inserisci quantità iniziale per questo articolo in giacenza" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Inserire i numeri di serie per la nuova giacenza (o lasciare vuoto)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Stato giacenza" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Aggiungi Elemento Magazzino" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "Selezionare l'articolo da installare" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "Conferma trasferimento" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Sposta nella posizione predefinita" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Sposta" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "Reso" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Sposta" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "Reso" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Conta" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Aggiungi Giacenza" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "Scorte aggiunte" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "Aumenta la quantità degli articoli di magazzino selezionati di una data quantità." -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Rimuovi giacenza" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "Scorte rimosse" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "Diminuisce la quantità degli articoli di magazzino selezionati di una data quantità." -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Trasferisci giacenza" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "Scorte trasferite" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "Trasferisci gli elementi selezionati nella posizione specificata." -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "Restituisci Elemento a Magazzino" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "Reso a magazzino effettuato" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "Restituisce gli articoli selezionati in magazzino, nella posizione specificata." -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Conteggio Giacenze" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "Scorte contate" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "Contare gli articoli di magazzino selezionati e regolare la quantità di conseguenza." -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Modifica stato giacenze" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "Stato delle scorte cambiato" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "Cambia lo stato degli articoli a magazzino selezionati." -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Unisci giacenze" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "Scorte unite" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "Unisci gli articoli di magazzino" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "L'operazione di unione non è reversibile" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "Le informazioni di tracciamento potrebbero essere perse durante l'unione degli articoli" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "Le informazioni sul fornitore potrebbero essere perse durante l'unione degli articoli" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "Assegnare la scorta al cliente" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "Scorte assegnate al cliente" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Cancella Elemento di Magazzino" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "Scorte cancellate" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "Questa operazione eliminerà definitivamente gli articoli a magazzino selezionati." -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Posizione giacenza principale" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "Trova Numero Di Serie" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "Nessun articolo corrispondente trovato" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "Più elementi corrispondenti trovati" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "Risposta non valida dal server" @@ -7294,15 +7295,15 @@ msgstr "Prezzi" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "Monitoraggio delle scorte" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/ja/messages.po b/src/frontend/src/locales/ja/messages.po index 55048611d1..c596857b4c 100644 --- a/src/frontend/src/locales/ja/messages.po +++ b/src/frontend/src/locales/ja/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ja\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -79,12 +79,12 @@ msgstr "キャンセル" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "アクション" @@ -135,16 +135,16 @@ msgstr "いいえ" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "組立注文" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "プロジェクトコード" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "注文" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "セールスオーダー" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "リターンオーダー" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "在庫移動指示" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "このアイテムから関連画像を削除しますか?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "API バージョン" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "プラグイン" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "変更" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "追加" @@ -2874,8 +2874,8 @@ msgstr "ユーザー設定" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "システム設定" @@ -2924,7 +2924,7 @@ msgstr "ログアウト" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "在庫" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "製造" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "購買" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "添付ファイル" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "カテゴリ" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "シリアル番号" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "シリアル番号" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "数量" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "スクール機能" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "仕入先" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "読み込み中…" @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "販売要件" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "注文書に追加された部品" msgid "Select supplier part" msgstr "サプライヤー部品の選択" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "サプライヤー部品番号をコピー" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "新サプライヤー部品" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "注文書の選択" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "新規発注" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "選択した注文書に追加する" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "部品選択なし" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "購入可能な部品が選択されていない" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "部品が追加された" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "選択されたすべての部品が発注書に追加される" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "少なくとも1つの部品を選択して注文する必要があります。" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "サプライヤーの部品が必要" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "数量が必要です" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "無効な部品選択" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "選択した部品の誤りを訂正してください。" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "完了数量" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "有効期限の設定" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "パッケージの調整" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "ステータスを変更" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "受領品のバッチコードを入力" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "シリアル番号" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "受け取った商品の有効期限を入力してください。" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "オーダーの住所を使用する場合は空欄のままにしてく #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "指定された数量を単品ではなくパックとして追加します。" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "この商品の初期数量を入力" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "新しい在庫のシリアル番号を入力(または空白のまま)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "在庫状況" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "在庫商品の追加" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "取り付ける部品の選択" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "株式譲渡の確認" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "デフォルトの場所に移動" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "移動" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "戻る" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "移動" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "戻る" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "カウント" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "在庫追加" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "在庫追加" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "選択された在庫品の数量を、指定された数量だけ増やします。" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "在庫の削除" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "在庫一掃" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "選択された在庫品の数量を、指定された数量分だけ減らします。" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "株式譲渡" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "株式譲渡" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "選択されたアイテムを指定された場所に移動します。" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "在庫戻し" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "在庫が戻りました" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "選択された商品を、指定された場所へ在庫に戻してください。" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "在庫数" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "在庫数" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "選択された在庫品目を数え、それに応じて数量を調整してください。" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "在庫状況の変更" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "在庫状況の変更" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "選択された在庫品のステータスを変更します。" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "バッチコードを変更" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "選択した在庫品のバッチコードを変更します" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "株式の併合" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "株式併合" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "在庫品を合算する" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "合算操作は元に戻せません" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "在庫品を合算する際、追跡情報が失われる可能性があります。" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "在庫品を合算する際、サプライヤー情報が失われる可能性があります。" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "顧客への在庫割り当て" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "顧客に割り当てられた在庫" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "在庫アイテムの削除" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "ストック削除" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "この操作により、選択された在庫品目が完全に削除されます。" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "親株式所在地" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "シリアル番号を探す" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "該当する品目はありません" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "複数の品目が見つかりました" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "サーバーからの応答が無効です" @@ -7294,15 +7295,15 @@ msgstr "価格" msgid "Part Creation" msgstr "部品作成" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "在庫期限切れ" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "部品棚卸し" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "在庫管理" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "外部ビルドオーダー" diff --git a/src/frontend/src/locales/ko/messages.po b/src/frontend/src/locales/ko/messages.po index fb1663e8b8..cda20b5483 100644 --- a/src/frontend/src/locales/ko/messages.po +++ b/src/frontend/src/locales/ko/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ko\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Korean\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -79,12 +79,12 @@ msgstr "취소" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "작업" @@ -135,16 +135,16 @@ msgstr "아니요" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "생산 주문" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "프로젝트 코드 목록" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "발주서" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "판매 주문서" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "반품 주문" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "이 항목에 연결된 이미지를 제거하시겠습니까?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "API 버전" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "플러그인" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "변화" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "추가하다" @@ -2874,8 +2874,8 @@ msgstr "사용자 설정" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "시스템 설정" @@ -2924,7 +2924,7 @@ msgstr "로그아웃" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "재고" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "조작" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "구매" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "첨부파일" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "카테고리" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "시리얼 번호" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "시리얼 번호" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "수량" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "일괄" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "공급자" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "불러오는 중..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "판매 요건" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "부품이 발주서에 추가되었습니다" msgid "Select supplier part" msgstr "협력업체 부품 선택" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "공급업체 부품 번호 복사" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "새로운 공급업체 부품" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "발주서 선택" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "새 발주서" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "선택한 발주서에 추가" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "선택한 부품이 없습니다." -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "구매 가능한 부품이 선택되지 않았습니다." -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "부품이 추가되었습니다" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "선택한 모든 부품이 발주서에 추가되었습니다" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "주문하려면 부품을 하나 이상 선택해야 합니다." -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "공급업체 부품이 필요합니다" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "수량이 필요합니다" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "잘못된 부품 선택" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "선택한 부분의 오류를 수정해주세요" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "완료할 수량" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "만료일 설정" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "포장 조정" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "상태 변경" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "입고된 항목의 배치 코드를 입력하세요" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "일련번호" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "입고된 항목의 만료일을 입력하세요" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "주문 주소를 사용하려면 비워두세요." #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "개별 항목 대신 포장 단위로 수량을 추가합니다" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "이 재고 품목의 초기 수량을 입력하세요" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "새 재고의 시리얼 번호를 입력하세요. 비워 둘 수도 있습니다" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "재고현황" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "재고 품목 추가" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "설치할 부품 선택" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "재고 이전 확인" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "기본 위치로 이동" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "이동하다" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "반품" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "이동하다" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "반품" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "실사" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "재고 추가" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "재고 추가됨" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "선택한 재고 품목의 수량을 지정한 만큼 늘립니다" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "재고 차감" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "재고가 차감되었습니다" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "선택한 재고 품목의 수량을 지정한 만큼 줄입니다" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "재고 이전" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "재고양도" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "선택한 항목을 지정한 위치로 이동합니다" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "재고 반환" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "재고가 반환되었습니다" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "선택한 항목을 지정한 위치의 재고로 반환합니다" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "재고 수량" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "재고 계산" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "선택한 재고 품목을 실사하고 수량을 그에 맞게 조정합니다" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "재고현황 변경" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "재고 상태가 변경되었습니다." -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "선택한 재고 품목의 상태를 변경합니다" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "배치 코드 변경" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "선택한 재고 품목의 배치 코드를 변경합니다" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "재고 병합" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "재고 병합" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "재고 품목 병합" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "병합 작업은 되돌릴 수 없습니다." -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "항목을 병합하면 추적 정보가 손실될 수 있습니다." -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "품목을 병합하면 공급업체 정보가 손실될 수 있습니다." -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "고객에게 재고 할당" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "고객에게 할당된 재고" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "재고 품목 삭제" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "재고가 삭제되었습니다." -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "이 작업은 선택한 재고 품목을 영구적으로 삭제합니다" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "모재 위치" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "일련번호 찾기" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "일치하는 항목이 없습니다." -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "일치하는 항목이 여러 개 있습니다" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "서버의 응답이 올바르지 않습니다" @@ -7294,15 +7295,15 @@ msgstr "가격" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "부품 재고 실사" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "재고 추적" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/lt/messages.po b/src/frontend/src/locales/lt/messages.po index 8cb1ece968..e40c7e6e23 100644 --- a/src/frontend/src/locales/lt/messages.po +++ b/src/frontend/src/locales/lt/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: lt\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Lithuanian\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n" @@ -79,12 +79,12 @@ msgstr "" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "" @@ -135,16 +135,16 @@ msgstr "Ne" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "" @@ -2924,7 +2924,7 @@ msgstr "" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "" @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/lv/messages.po b/src/frontend/src/locales/lv/messages.po index 32afbfaca1..32909d1ff3 100644 --- a/src/frontend/src/locales/lv/messages.po +++ b/src/frontend/src/locales/lv/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: lv\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Latvian\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n" @@ -79,12 +79,12 @@ msgstr "" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "" @@ -135,16 +135,16 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "" @@ -2924,7 +2924,7 @@ msgstr "" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "" @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/nl/messages.po b/src/frontend/src/locales/nl/messages.po index a23a804b8d..26d0dc61f1 100644 --- a/src/frontend/src/locales/nl/messages.po +++ b/src/frontend/src/locales/nl/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: nl\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-23 06:29\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "Annuleer" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Acties" @@ -135,16 +135,16 @@ msgstr "Nee" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "Productieorder" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Project codes" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Inkooporder" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Verkooporder" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Retourorder" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "De bijbehorende afbeelding van dit item verwijderen?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "API versie" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Plug-ins" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "Wijzigen" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Toevoegen" @@ -2874,8 +2874,8 @@ msgstr "Gebruiker instellingen" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Systeem instellingen" @@ -2924,7 +2924,7 @@ msgstr "Uitloggen" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Voorraad" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Productie" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Kopen" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Bijlagen" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Categorie" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Serienummer" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Serienummer" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Aantal" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Batch" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Leverancier" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Laden..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "Verkoop eisen" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "Onderdeel aan inkooporder toegevoegd" msgid "Select supplier part" msgstr "Selecteer leveranciersdeel" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "Kopiëer leveranciersartikelnummer" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "Nieuw leveranciers onderdeel" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "Selecteer een bestelling" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "Nieuwe inkooporder" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "Toevoegen aan geselecteerde inkooporder" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "Geen onderdelen geselecteerd" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "Geen koopbare onderdelen geselecteerd" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Onderdelen toegevoegd" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "Alle geselecteerde onderdelen toegevoegd aan een inkooporder" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "U moet minstens één onderdeel selecteren om te bestellen" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "Leveranciersonderdeel is vereist" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "Hoeveelheid is vereist" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "Ongeldige onderdeel selectie" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "Corrigeer de fouten in de geselecteerde onderdelen" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "Te voltooien hoeveelheid" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "Stel vervaldatum in" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Verpakking aanpassen" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Status wijzigen" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "Voer batch code in voor ontvangen items" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Serienummers" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "Voer een vervaldatum in voor ontvangen items" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "Laat leeg om het besteladres te gebruiken" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Opgegeven hoeveelheid als pakket toevoegen in plaats van individuele artikelen" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Voer de initiële hoeveelheid in voor dit voorraadartikel" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Voer serienummer in voor nieuwe voorraad (of laat het leeg)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Voorraad status" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Voorraad item toevoegen" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "Selecteer het onderdeel om te installeren" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "Bevestig voorraad overdracht" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Verplaats naar standaardlocatie" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Verplaatsen" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "Terug" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Verplaatsen" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "Terug" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Aantal" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Voorraad toevoegen" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "Voorraad toegevoegd" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "Verhoog de hoeveelheid van de geselecteerde voorraadartikelen met een bepaald bedrag." -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Voorraad verwijderen" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "Voorraad verwijderd" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "Verlaag de hoeveelheid van de geselecteerde voorraadartikelen met een bepaald bedrag." -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Voorraad verplaatsen " -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "Voorraadartikel verplaatst" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "Verplaats de geselecteerde items naar de opgegeven locatie." -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "Terug naar voorraad" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "Voorraad teruggestuurd" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "Retourneer geselecteerde items naar voorraad, naar de opgegeven locatie." -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Tel voorraad" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "Voorraad geteld" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "Tel de geselecteerde voorraaditems, en pas de hoeveelheid overeenkomstig aan." -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Wijzig voorraad status" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "Voorraad status gewijzigd" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "Verander de status van de geselecteerde voorraaditems." -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Voorraad samenvoegen" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "Voorraad samengevoegd" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "Voorraad items samenvoegen" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "Samenvoeg bewerking kan niet worden teruggedraaid" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "Tracking informatie kan verloren gaan tijdens het samenvoegen van items" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "De informatie van de leverancier kan verloren gaan bij het samenvoegen van items" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "Voorraad toewijzen aan klant" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "Voorraad toegewezen aan klant" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Voorraad items verwijderen" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "Voorraad verwijderd" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "Deze bewerking zal de geselecteerde voorraaditems permanent verwijderen." -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Bovenliggende voorraad locatie" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "Zoek serienummer" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "Geen overeenkomende items" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "Meerdere overeenkomende items" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "Ongeldige reactie van server" @@ -7294,15 +7295,15 @@ msgstr "Prijzen" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "Voorraad bijhouden" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/no/messages.po b/src/frontend/src/locales/no/messages.po index 2e3f4042c5..ddd704ed84 100644 --- a/src/frontend/src/locales/no/messages.po +++ b/src/frontend/src/locales/no/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: no\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "Avbryt" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Handlinger" @@ -135,16 +135,16 @@ msgstr "Nei" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Prosjektkoder" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Innkjøpsordre" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Salgsordre" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Returordre" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "API-versjon" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Utvidelser" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "Endre" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Legg til" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Systeminnstillinger" @@ -2924,7 +2924,7 @@ msgstr "Logg ut" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Lagerbeholdning" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Innkjøp" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Vedlegg" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Kategori" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Serienummer" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Serienummer" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Antall" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Leverandør" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "" @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Serienumre" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Legg til gitt mengde som pakker i stedet for enkeltprodukter" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Angi innledende antall for denne lagervaren" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Angi serienumre for ny lagerbeholdning (eller la stå tom)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Tell" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Overfør lager" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Tell beholdning" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "Prising" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "Sporing av lager" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/pl/messages.po b/src/frontend/src/locales/pl/messages.po index f9c71c32e7..02ce6e483d 100644 --- a/src/frontend/src/locales/pl/messages.po +++ b/src/frontend/src/locales/pl/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: pl\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Polish\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" @@ -79,12 +79,12 @@ msgstr "Anuluj" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Akcje" @@ -135,16 +135,16 @@ msgstr "Nie" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Kody projektu" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Zlecenie zakupu" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Zlecenie sprzedaży" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Zwrot zamówienia" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Usunąć powiązany obrazek z tego elementu?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "Wersja API" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Wtyczki" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "Zmień" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Dodaj" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Ustawienia systemowe" @@ -2924,7 +2924,7 @@ msgstr "Wyloguj się" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Stan" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Zakupy" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Numer seryjny" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Numer seryjny" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Ilość" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Ładowanie..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Dostosuj opakowanie" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Zmień status" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Numery seryjne" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Dodaj podaną ilość jako paczkę zamiast poszczególnych produktów" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Wprowadź początkową ilość dla tego towaru" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Wprowadź numery seryjne dla nowego stanu (lub pozostaw puste)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Dodaj element magazynowy" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Przenieś do domyślnej lokalizacji" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Przenieś" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Przenieś" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Ilość" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Dodaj stan" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Usuń stan" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Przenieś stan" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Policz stan" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Zmień status stanu magazynowego" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "Cennik" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/pt/messages.po b/src/frontend/src/locales/pt/messages.po index c03dafc731..f3f15c6516 100644 --- a/src/frontend/src/locales/pt/messages.po +++ b/src/frontend/src/locales/pt/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: pt\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Portuguese\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "Cancelar" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Ações" @@ -135,16 +135,16 @@ msgstr "Não" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "Ordem de Produção" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Códigos do Projeto" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Pedido de Compra" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Pedido de Venda" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Pedido de Devolução" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Remover a imagem associada a este item?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2077,7 +2077,7 @@ msgstr "Versão da API" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Extensões" @@ -2520,7 +2520,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Adicionar" @@ -2875,8 +2875,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Definições de Sistema" @@ -2925,7 +2925,7 @@ msgstr "Encerrar sessão" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2938,7 +2938,7 @@ msgstr "Estoque" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2946,7 +2946,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2958,7 +2958,7 @@ msgstr "Comprando" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3094,7 +3094,7 @@ msgid "Attachments" msgstr "Anexos" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3390,15 +3390,15 @@ msgstr "Categoria" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3419,7 +3419,7 @@ msgid "Serial Number" msgstr "Número de Série" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3427,7 +3427,7 @@ msgstr "Número de Série" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3454,15 +3454,15 @@ msgstr "Quantidade" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Lote" @@ -3984,7 +3984,7 @@ msgid "Supplier" msgstr "Fornecedor" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "A carregar..." @@ -4130,13 +4130,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4181,64 +4181,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4822,7 +4822,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5105,12 +5105,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Alterar Estado" @@ -5154,7 +5154,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Números de Série" @@ -5173,7 +5173,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5275,218 +5275,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Adicionar quantidade dada como pacotes em vez de itens individuais" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Digite a quantidade inicial para este item de estoque" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Insira os números de série para novo estoque (ou deixe em branco)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Estado do Estoque" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Adicionar item de Estoque" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Mover para o local padrão" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Mover" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Mover" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Contar" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Adicionar Estoque" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Remover Estoque" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Transferir Estoque" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Contar Estoque" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Alterar estado do Estoque" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Mesclar Estoque" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Excluir Itens de Estoque" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Localização parente de Estoque" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7295,15 +7296,15 @@ msgstr "Preços" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7313,7 +7314,7 @@ msgstr "Rastreamento de Estoque" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/pt_BR/messages.po b/src/frontend/src/locales/pt_BR/messages.po index 2feb679aad..1a29f76381 100644 --- a/src/frontend/src/locales/pt_BR/messages.po +++ b/src/frontend/src/locales/pt_BR/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: pt\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-21 21:20\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "Cancelar" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Ações" @@ -135,16 +135,16 @@ msgstr "Não" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "Pedido de produção" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Códigos de projeto" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Pedido de compra" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Pedido de venda" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Pedido de devolução" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "Transferencia de estoque" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Remover imagem associada a este item?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "Versão da API" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Extensões" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "Alterar" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Adicionar" @@ -2874,8 +2874,8 @@ msgstr "Configurações de usuário" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Configurações do sistema" @@ -2924,7 +2924,7 @@ msgstr "Sair" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Estoque" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Produção" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Compras" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Anexos" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Categoria" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Número de série" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Número de série" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Quantidade" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Lote" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Fornecedor" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Carregando..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "Requisitos de vendas" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "Peça adicionada a pedido de compra" msgid "Select supplier part" msgstr "Selecionar fornecedor da peça" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "Copiar número da peça do fornecedor" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "Nova peça de fornecedor" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "Selecionar pedido" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "Novo pedido de compra" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "Adicionar ao pedido de compra selecionado" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "Nenhuma peça selecionada" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "Nenhuma peça selecionada para compra" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Peças adicionadas" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "Todas as peças selecionadas adicionadas a um pedido de compra" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "Você deve selecionar pelo menos uma peça para o pedido" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "Uma peça do fornecedor é obrigatória" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "A quantidade é obrigatória" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "Seleção de peça inválida" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "Por favor, corrija os erros nas peças selecionadas" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "Quantidade a completar" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "Definir data de validade" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Ajustar pacotes" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Alterar status" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "Digite o código do lote para itens de estoque recebidos" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Números de série" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "Insira uma data de expiração para os itens recebidos" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "Deixe em branco para usar o endereço do pedido" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Adicionar quantidade dada como pacotes e não itens individuais" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Inserir quantidade inicial deste item de estoque" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Insira o número de série para novo estoque (ou deixe em branco)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Status do estoque" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Adicionar item do estoque" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "Selecione a peça para instalar" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "Confirmar transferência de estoque" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "Confirmar devolução de estoque" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Mover para o local padrão" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Mover" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "Voltar" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "Mesclar com o estoque existente" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Mover" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "Voltar" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "Mesclar itens devolvidos com itens de estoque existentes, se possível" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "Notas da transação de estoque" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Contar" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Adicionar estoque" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "Estoque adicionado" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "Aumentar a quantidade dos itens de estoque selecionados em um valor determinado." -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Remover estoque" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "Estoque removido" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "Diminuir a quantidade dos itens de estoque selecionados em um valor determinado." -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Transferir estoque" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "Estoque transferido" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "Transferir os itens selecionados para o local especificado." -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "Devolver estoque" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "Estoque devolvido" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "Devolver os itens selecionados ao estoque, no local especificado." -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Contar estoque" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "Estoque contado" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "Contar os itens de estoque selecionados e ajustar a quantidade conforme necessário." -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Mudar status do estoque" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "Status do estoque alterado" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "Alterar o status dos itens de estoque selecionados." -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "Alterar código de lote" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "Alterar código de lote dos itens de estoque selecionados" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Mesclar estoque" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "Estoque mesclado" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "Mesclar itens de estoque" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "A operação de mesclagem não pode ser revertida" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "Informações de rastreamento podem ser perdidas ao mesclar itens" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "Informações de fornecedor podem ser perdidas ao mesclar itens" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "Atribuir estoque ao cliente" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "Estoque atribuído ao cliente" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Excluir item de estoque" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "Estoque excluído" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "Esta operação excluirá permanentemente os itens de estoque selecionados." -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Local de estoque pai" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "Encontrar número de série" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "Nenhum item correspondente" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "Vários itens correspondentes" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "Resposta inválida do servidor" @@ -7294,15 +7295,15 @@ msgstr "Preços" msgid "Part Creation" msgstr "Criação de peça" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "Validade do estoque" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "Inventário da peça" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "Rastreamento de estoque" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "Pedidos de produção externos" diff --git a/src/frontend/src/locales/ro/messages.po b/src/frontend/src/locales/ro/messages.po index 28e73a719b..13a13cfb9c 100644 --- a/src/frontend/src/locales/ro/messages.po +++ b/src/frontend/src/locales/ro/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ro\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Romanian\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n" @@ -79,12 +79,12 @@ msgstr "Anulează" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Acțiuni" @@ -135,16 +135,16 @@ msgstr "Nu" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Coduri Proiecte" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Comandă de achiziție" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Comandă de Vânzare" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Returnează Comanda" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Eliminați imaginea asociată de la acest articol?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "Versiune API" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Plugin-uri" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "" @@ -2924,7 +2924,7 @@ msgstr "" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Stoc" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Producție" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Achiziţie" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "" @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "Introduceți codul lotului pentru articolele primite" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/ru/messages.po b/src/frontend/src/locales/ru/messages.po index cf815bd4ce..096bda3b1f 100644 --- a/src/frontend/src/locales/ru/messages.po +++ b/src/frontend/src/locales/ru/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ru\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Russian\n" "Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" @@ -79,12 +79,12 @@ msgstr "Отменить" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Действия" @@ -135,16 +135,16 @@ msgstr "Нет" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "Заказ на сборку" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Коды проекта" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Заказ на закупку" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Заказ на продажу" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Заказ на возврат" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Удалить связанное изображение?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "Версия API" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Плагины" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "Редактировать" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Добавить" @@ -2874,8 +2874,8 @@ msgstr "Пользовательские настройки" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Системные настройки" @@ -2924,7 +2924,7 @@ msgstr "Выход" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Склад" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Производство" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Закупки" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Вложения" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Категория" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Серийный номер" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Серийный номер" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Количество" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Партия" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Поставщик" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Загрузка..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "Требования продаж" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "Детали добавлены в заказ на закупку" msgid "Select supplier part" msgstr "Выберите деталь поставщика" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "Скопировать номер детали поставщика" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "Создать деталь поставщика" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "Выберите заказ на закупку" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "Создать заказ на закупку" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "Добавить в выбранный заказ на закупку" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "Не выбраны детали" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "Не выбраны детали, которые можно закупить" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Детали добавлены" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "Все выбранные детали добавлены в заказ на закупку" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "Необходимо выбрать хотя бы одну деталь для закупки" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "Необходимо указать деталь поставщика" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "Необходимо указать количество" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "Неправильный выбор деталей" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "Исправьте ошибки в выбранных деталях" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "Количество для завершения" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "Задать срок годности" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Настройка упаковки" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Изменить статус" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "Введите код партии для полученных запасов" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Серийные номера" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "Введите дату истечения срока годности полученных элементов" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "Оставьте поле пустым, чтобы использова #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Ввести количество упаковок вместо количества отдельных элементов" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Введите начальное количество этой детали на складе" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Введите серийные номера для нового склада (или оставьте пустым)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Состояние складской позиции" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Создать складскую позицию" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "Выберите часть для установки" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "Подтвердить перемещение запаса" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Переместить в местоположение по умолчанию" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Переместить" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "Возврат" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Переместить" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "Возврат" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Количество" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Увеличить склад" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "Запас добавлен" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "Увеличить количество выбранных складских позиций на указанную величину." -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Уменьшить склад" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "Запас удален" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "Уменьшить количество выбранных складских позиций на указанную величину." -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Переместить склад" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "Запас перемещен" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "Переместить выбранные позиции в указанное место хранения." -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "Возврат запасов" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "Запасы возвращены" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "Вернуть выбранные позиции на склад, в указанное место хранения." -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Подсчёт склада" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "Запас посчитан" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "Произвести инвентаризацию выбранных складских позиций и скорректировать количество соответствующим образом." -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Изменить статус запасов" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "Состояние запаса изменено" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "Изменить статус выбранных складских позиций." -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Объединить склад" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "Запасы объединены" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "Объединить складские позиции" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "Операция объединения не может быть отменена" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "При объединении позиций информация об отслеживании может быть потеряна" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "При объединении может быть потеряна информация о поставщиках" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "Передать запас клиенту" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "Запас передан клиенту" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Удалить складскую позицию" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "Запас удален" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "Эта операция необратимо удалит выбранные складские позиции." -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Расположение основного склада" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "Поиск по серийному номеру" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "Нет подходящих элементов" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "Несколько подходящих элементов" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "Неверный ответ сервера" @@ -7294,15 +7295,15 @@ msgstr "Цены" msgid "Part Creation" msgstr "Создание детали" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "Срок хранения" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "Движение остатков" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/sk/messages.po b/src/frontend/src/locales/sk/messages.po index 2124406073..5618159819 100644 --- a/src/frontend/src/locales/sk/messages.po +++ b/src/frontend/src/locales/sk/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: sk\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Slovak\n" "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n" @@ -79,12 +79,12 @@ msgstr "" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "" @@ -135,16 +135,16 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "" @@ -2924,7 +2924,7 @@ msgstr "" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "" @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/sl/messages.po b/src/frontend/src/locales/sl/messages.po index 40b5dd66dd..56fbe913c6 100644 --- a/src/frontend/src/locales/sl/messages.po +++ b/src/frontend/src/locales/sl/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: sl\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n" @@ -79,12 +79,12 @@ msgstr "Prekliči" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Dejanja" @@ -135,16 +135,16 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "" @@ -2924,7 +2924,7 @@ msgstr "" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "" @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/sr/messages.po b/src/frontend/src/locales/sr/messages.po index 13593bf877..6376a9aea9 100644 --- a/src/frontend/src/locales/sr/messages.po +++ b/src/frontend/src/locales/sr/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: sr\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\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" @@ -79,12 +79,12 @@ msgstr "Poništi" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Akcije" @@ -135,16 +135,16 @@ msgstr "Ne" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "Nalog za izradu" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Kodovi projekta" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Narudžbenica" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Nalog za prodaju" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Nalog za povrat" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Ukloniti sliku sa ovog predmeta?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "API Verzija" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Ekstenzije" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Dodaj" @@ -2874,8 +2874,8 @@ msgstr "Korisnička podešavanja" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Sistemska podešavanja" @@ -2924,7 +2924,7 @@ msgstr "Odjavljivanje" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Zalihe" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Proizvodnja" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Kupovina" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Prilozi" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Kategorija" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Serijski broj" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Serijski broj" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Količina" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Serija" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Dobavljač" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Učitavanje" @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "Deo dodat u nalog za kupovinu" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "Novi deo dobavljača" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "Novi nalog za kupovinu" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "Dodaj u izabrani nalog za kupovinu" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "Nema izabranih delova" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "Nema izabranih delova koji se mogu kupiti" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Delovi dodati" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "Svi izabrani delovi su dodati nalogu za kupovinu" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "Morate izabrati bar jedan deo za naručivanje" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "Deo dobavljača je neophodan" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "Količina je neophodna" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "Nevažeći izbor dela" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "Molimo ispravite greške u izabranim delovima" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Doradi pakovanje" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Promeni status" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "Unesi kod serije za primljene stavke" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Serijski brojevi" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Dodaj primljenu količinu kao pakovanje umesto kao individualnu stavku" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Unesi početnu količinu za ovu stavku zalihe" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Unesi serijske brojeve za novu zalihu (ili ostavi nepopunjeno)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Status zalihe" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Dodaj stavku zalihe" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "Izaberi deo za instalaciju" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "Potvrdi transfer zalihe" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Premesti na podrazumevanu lokaciju" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Premesti" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "Vrati" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Premesti" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "Vrati" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Računaj" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Dodaj zalihu" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "Zaliha dodata" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Ukloni zalihu" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "Zaliha uklonjena" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Prebaci zalihu" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "Zaliha prebačena" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Prebroj zalihe" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "Zaliha prebrojena" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Promeni status zalihe" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "Status zalihe izmenjen" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Spoji zalihe" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "Zalihe spojene" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "Dodeli zalihu mušteriji" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "Zaliha dodeljena mušteriji" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Izbriši stavku zalihe" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "Zaliha izbrisana" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Lokacija roditeljske zalihe" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "Cene" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "Praćenje zaliha" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/sv/messages.po b/src/frontend/src/locales/sv/messages.po index 232e43fe2c..b7025132bd 100644 --- a/src/frontend/src/locales/sv/messages.po +++ b/src/frontend/src/locales/sv/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: sv\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "Avbryt" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Åtgärder" @@ -135,16 +135,16 @@ msgstr "Nej" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Projektkoder" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Inköpsorder" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Försäljningsorder" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Returorder" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Vill du ta bort den associerade bilden från denna artikel?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "API Version" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Plugins" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "Ändra" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Lägg till" @@ -2874,8 +2874,8 @@ msgstr "Användarinställningar" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Systeminställningar" @@ -2924,7 +2924,7 @@ msgstr "Logga ut" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Lagersaldo" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Inköp" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Bilagor" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Kategori" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Serienummer" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Serienummer" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Antal" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Leverantör" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Laddar..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "Inga delar valda" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Delar tillagda" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Ändra status" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Serienummer" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Flytta" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Flytta" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Sammanfoga lager" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Ta bort lagerartikel" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Överordnad lagerplats" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "Prissättning" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/th/messages.po b/src/frontend/src/locales/th/messages.po index 9780d66034..ae5d714516 100644 --- a/src/frontend/src/locales/th/messages.po +++ b/src/frontend/src/locales/th/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: th\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Thai\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -79,12 +79,12 @@ msgstr "" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "" @@ -135,16 +135,16 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "" @@ -2924,7 +2924,7 @@ msgstr "" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "" @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/tr/messages.po b/src/frontend/src/locales/tr/messages.po index 2c5623022a..7a6d41feea 100644 --- a/src/frontend/src/locales/tr/messages.po +++ b/src/frontend/src/locales/tr/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: tr\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -79,12 +79,12 @@ msgstr "Vazgeç" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Eylemler" @@ -135,16 +135,16 @@ msgstr "Hayır" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "Üretim Emri" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Proje Kodları" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Satın Alma Siparişi" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Satış Siparişi" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "İade Emri" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "Aktarım Emri" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Bu ögeyle ilişkilendirilmiş görsel kaldırılsın mı?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "API Sürümü" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Eklentiler" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "Değiştir" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Ekle" @@ -2874,8 +2874,8 @@ msgstr "Kullanıcı Ayarları" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Sistem Ayarları" @@ -2924,7 +2924,7 @@ msgstr "Çıkış" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Stok" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Üretim" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Satın Alma" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Ekler" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Kategori" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Seri Numarası" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Seri Numarası" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Miktar" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Parti" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Tedarikçi" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Yükleniyor..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "Satış Gereksinimleri" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "Parça, satın alma siparişine eklendi" msgid "Select supplier part" msgstr "Tedarikçi parçası seç" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "Tedarikçi parça numarasını kopyala" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "Yeni tedarikçi parçası" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "Satın alma siparişi seç" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "Yeni satın alma siparişi" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "Seçili satın alma siparişine ekle" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "Hiç parça seçilmedi" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "Hiç satın alınabilir parça seçilmedi" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Parçalar Eklendi" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "Seçilen tüm parçalar bir satın alma siparişine eklendi" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "Sipariş etmek için en az bir parça seçilmelidir" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "Tedarikçi parçası gereklidir" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "Miktar gereklidir" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "Geçersiz parça seçimi" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "Lütfen seçilen parçalardaki hataları düzeltin" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "Tamamlanacak Miktar" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "Son Kullanma Tarihi Belirle" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Paketlemeyi Ayarla" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Durumu Değiştir" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "Teslim alınan ögeler için parti kodu gir" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Seri Numaraları" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "Teslim alınan ögeler için bir geçerlilik tarihi gir" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "Sipariş adresini kullanmak için boş bırakın" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Verilen miktarı tekli ögeler yerine paketler olarak ekle" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Bu stok kalemi için başlangıç miktarını girin" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Yeni stok için seri numaralarını girin (veya boş bırakın)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Stok Durumu" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Stok Kalemi Ekle" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "Takılacak parçayı seç" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "Stok Transferini Onayla" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "Stok İadesini Onayla" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Varsayılan konuma taşı" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Taşı" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "Geri Dön" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "Mevcut stokla birleştir" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Taşı" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "Geri Dön" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "Mümkünse iade edilen kalemleri mevcut stok kalemleri ile birleştir" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "Stok işlem notları" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Say" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Stok Ekle" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "Stok Eklendi" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "Seçilen stok kalemlerinin miktarını belirtilen miktarda artır." -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Stok Kaldır" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "Stok Kaldırıldı" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "Seçilen stok kalemlerinin miktarını belirtilen miktarda azalt." -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Stoku Aktar" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "Stok Transfer Edildi" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "Seçilen kalemleri belirtilen konuma aktar." -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "Stock İade Et" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "Stok iade edildi" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "Seçilen kalemleri belirtilen konumdaki stoka iade et." -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Stoku Say" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "Stok Sayıldı" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "Seçilen stok kalemlerini say ve miktarı ona göre ayarla." -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Stok Durumunu Değiştir" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "Stok Durumu Değişti" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "Seçilen stok kalemlerinin durumunu değiştir." -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "Parti Kodunu Değiştir" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "Seçilen stok kalemlerinin parti kodunu değiştir" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Stoku Birleştir" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "Stok Birleştirildi" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "Stok Kalemlerini Birleştir" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "Birleştirme işlemi geri alınamaz" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "Kalemleri birleştirirken takip bilgileri kaybolabilir" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "Kalemleri birleştirirken tedarikçi bilgileri kaybolabilir" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "Stoku Müşteriye Ata" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "Stok Müşteriye Atandı" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Stok Kalemlerini Sil" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "Stok Silindi" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "Bu işlem seçilen stok kalemlerini kalıcı olarak silecektir." -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Üst stok konumu" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "Seri Numarası Bul" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "Eşleşen ürün bulunamadı" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "Birden fazla eşleşen öge" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "Sunucudan geçersiz yanıt" @@ -7294,15 +7295,15 @@ msgstr "Fiyatlandırma" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "Stok İzleme" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/uk/messages.po b/src/frontend/src/locales/uk/messages.po index c04d82a4a1..f94f35a495 100644 --- a/src/frontend/src/locales/uk/messages.po +++ b/src/frontend/src/locales/uk/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: uk\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" @@ -79,12 +79,12 @@ msgstr "Скасувати" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Дії" @@ -135,16 +135,16 @@ msgstr "Ні" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Коди проєкту" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Замовлення на купівлю" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Замовлення на купівлю" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Видалити пов'язане зображення з цього елемента?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "Версія API" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Плагіни" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Додати" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Налаштування системи" @@ -2924,7 +2924,7 @@ msgstr "Вихід" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "В наявності" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "Виробництво" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Вкладення" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Категорія" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Серійний номер" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Серійний номер" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Кількість" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "Пакетно" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Постачальник" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Завантаження..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "Деталі додано" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "Усі вибрані частини додані до Замовлення на купівлю" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "Ви повинні вибрати принаймні один елемент для замовлення" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "Введіть Номер серії збірки для отриманих елементів" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Стан залишків" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Додати елемент складу" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Перемістити в типове розташування" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Перемістити" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Перемістити" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Кількість" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Додати запаси" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "Додано елемент складу" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Видалити елемент складу" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "Видалено елемент складу" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Переміщення запасів" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Кількість запасів" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/vi/messages.po b/src/frontend/src/locales/vi/messages.po index 4799c182d9..36732973bf 100644 --- a/src/frontend/src/locales/vi/messages.po +++ b/src/frontend/src/locales/vi/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: vi\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -79,12 +79,12 @@ msgstr "Hủy bỏ" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "Chức năng" @@ -135,16 +135,16 @@ msgstr "Không" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "Xây dựng đơn hàng" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "Mã dự án" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "Đơn đặt mua" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "Đơn đặt bán" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "Đơn hàng trả lại" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "Xóa hình liên quan khỏi mục này?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "Phiên bản API" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "Plugins" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "Thêm" @@ -2874,8 +2874,8 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "Thiết lập hệ thống" @@ -2924,7 +2924,7 @@ msgstr "Đăng xuất" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "Kho hàng" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "Mua sắm" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "Đính kèm" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "Danh mục" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "Số sê-ri" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "Số sê-ri" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "Số lượng" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "Nhà cung cấp" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "Đang tải..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "" msgid "Select supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "Điều chỉnh bao bì" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "Thay đổi trạng thái" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "Số sê-ri" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "Thêm số lượng đã có theo gói thay vì các mục đơn lẻ" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "Nhập số lượng khởi đầu cho kho hàng này" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Điền số sê-ri cho kho mới (hoặc để trống)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "Trạng thái kho" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "Thêm mặt hàng trong kho" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "Đến vị trí mặc định" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "Di chuyển" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "Di chuyển" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "Đếm" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "Thêm kho" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "Xoá kho" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "Chuyển kho" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "Kiểm kê" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "Đổi trạng thái kho" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "Gộp kho" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "Xóa mặt hàng trong kho" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "Vị trí kho lớn" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "" @@ -7294,15 +7295,15 @@ msgstr "Giá bán" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "Theo dõi tồn kho" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" diff --git a/src/frontend/src/locales/zh_Hans/messages.po b/src/frontend/src/locales/zh_Hans/messages.po index 50ff343b1d..635cfbd5f5 100644 --- a/src/frontend/src/locales/zh_Hans/messages.po +++ b/src/frontend/src/locales/zh_Hans/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: zh\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -79,12 +79,12 @@ msgstr "取消" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "操作" @@ -135,16 +135,16 @@ msgstr "否" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "生产订单" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "项目编码" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "采购订单" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "销售订单" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "退货订单" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "删除与此项关联的图片?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "API 版本" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "插件" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "更改" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "添加" @@ -2874,8 +2874,8 @@ msgstr "用户设置" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "系统设置" @@ -2924,7 +2924,7 @@ msgstr "登出" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "库存" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "生产" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "采购" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "附件" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "类别" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "序列号" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "序列号" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "数量" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "批次" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "供应商" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "正在加载..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "销售需求" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "零件已添加到采购订单中" msgid "Select supplier part" msgstr "选择供应商零件" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "复制供应商零件编号" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "新增供应商零件" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "选择采购订单" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "新建采购订单" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "添加到已选的采购订单中" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "没有选定零件" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "未选择可购买的零件" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "零件已添加" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "所有选中的零件添加到采购订单中" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "您必须至少选择一个零件才能下单" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "供应商零件为必填项" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "数量为必填项" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "无效的零件选择" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "请修正所选零件中的错误" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "待完成数量" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "设置到期日期" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "调整封包" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "更改状态" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "输入接收项目的批号" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "序列号" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "输入接收项目的到期日期" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "留空则使用订单地址" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "将给定的数量添加为包,而不是单个项目" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "输入此库存项的初始数量" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "输入新库存的序列号(或留空)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "库存状态" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "编辑库存项" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "选择要安装的零件" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "确认库存转移" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "移动到默认位置" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "移动" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "退货" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "移动" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "退货" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "总计" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "添加库存" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "库存已添加" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "按指定数量增加选定库存物料的存量。" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "移除库存" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "库存已移除" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "按指定数量减少选定库存物料的存量。" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "转移库存" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "库存已转移" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "将选定物料转移至指定位置。" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "退回库存" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "库存已退回" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "将选定物料退回库存至指定位置。" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "库存数量" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "库存计数" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "统计选定库存物料数量并按需调整。" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "更改库存状态" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "库存状态已改变" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "变更选定库存物料的状态。" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "修改批号" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "变更选定库存物料的批号" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "合并库存" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "库存已合并" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "合并库存物料" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "合并操作不可逆" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "合并操作可能导致追溯信息丢失" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "合并操作可能导致供应商信息丢失" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "将库存分配给客户" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "库存已分配给客户" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "删除库存项" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "库存已删除" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "此操作将永久删除选定的库存物料。" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "上级库存地点" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "查找序列号" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "未找到匹配项" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "存在多个匹配项" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "服务器返回无效响应" @@ -7294,15 +7295,15 @@ msgstr "定价" msgid "Part Creation" msgstr "零件创建" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "库存到期" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "零件盘点" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "库存跟踪" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "外部生产订单" diff --git a/src/frontend/src/locales/zh_Hant/messages.po b/src/frontend/src/locales/zh_Hant/messages.po index 1eaca693fa..1e69c1fbd5 100644 --- a/src/frontend/src/locales/zh_Hant/messages.po +++ b/src/frontend/src/locales/zh_Hant/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: zh\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-20 13:53\n" +"PO-Revision-Date: 2026-06-24 14:28\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -79,12 +79,12 @@ msgstr "取消" #: lib/components/RowActions.tsx:136 #: src/components/nav/NavigationDrawer.tsx:190 #: src/forms/PurchaseOrderForms.tsx:919 -#: src/forms/StockForms.tsx:843 -#: src/forms/StockForms.tsx:891 -#: src/forms/StockForms.tsx:957 -#: src/forms/StockForms.tsx:1003 -#: src/forms/StockForms.tsx:1044 -#: src/forms/StockForms.tsx:1160 +#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:918 +#: src/forms/StockForms.tsx:984 +#: src/forms/StockForms.tsx:1030 +#: src/forms/StockForms.tsx:1071 +#: src/forms/StockForms.tsx:1187 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976 msgid "Actions" msgstr "操作" @@ -135,16 +135,16 @@ msgstr "否" #: src/forms/PurchaseOrderForms.tsx:915 #: src/forms/ReturnOrderForms.tsx:246 #: src/forms/SalesOrderForms.tsx:436 -#: src/forms/StockForms.tsx:370 -#: src/forms/StockForms.tsx:838 -#: src/forms/StockForms.tsx:886 -#: src/forms/StockForms.tsx:952 -#: src/forms/StockForms.tsx:998 -#: src/forms/StockForms.tsx:1039 -#: src/forms/StockForms.tsx:1088 -#: src/forms/StockForms.tsx:1156 -#: src/forms/StockForms.tsx:1204 -#: src/forms/StockForms.tsx:1248 +#: src/forms/StockForms.tsx:378 +#: src/forms/StockForms.tsx:865 +#: src/forms/StockForms.tsx:913 +#: src/forms/StockForms.tsx:979 +#: src/forms/StockForms.tsx:1025 +#: src/forms/StockForms.tsx:1066 +#: src/forms/StockForms.tsx:1115 +#: src/forms/StockForms.tsx:1183 +#: src/forms/StockForms.tsx:1231 +#: src/forms/StockForms.tsx:1275 #: src/forms/TransferOrderForms.tsx:234 #: src/pages/build/BuildDetail.tsx:260 #: src/pages/part/PartDetail.tsx:1166 @@ -328,7 +328,7 @@ msgstr "生產訂單" #: lib/enums/ModelInformation.tsx:122 #: lib/enums/Roles.tsx:35 #: src/defaults/actions.tsx:184 -#: src/pages/Index/Settings/SystemSettings.tsx:315 +#: src/pages/Index/Settings/SystemSettings.tsx:316 #: src/pages/build/BuildIndex.tsx:87 #: src/pages/part/PartDetail.tsx:780 #: src/pages/sales/SalesOrderDetail.tsx:437 @@ -386,7 +386,7 @@ msgid "Project Codes" msgstr "項目編碼" #: lib/enums/ModelInformation.tsx:160 -#: src/components/wizards/OrderPartsWizard.tsx:341 +#: src/components/wizards/OrderPartsWizard.tsx:346 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33 #: src/pages/purchasing/PurchaseOrderDetail.tsx:577 #: src/pages/stock/StockDetail.tsx:363 @@ -399,7 +399,7 @@ msgstr "採購訂單" #: lib/enums/ModelInformation.tsx:161 #: lib/enums/Roles.tsx:41 #: src/defaults/actions.tsx:133 -#: src/pages/Index/Settings/SystemSettings.tsx:342 +#: src/pages/Index/Settings/SystemSettings.tsx:343 #: src/pages/company/CompanyDetail.tsx:210 #: src/pages/company/SupplierPartDetail.tsx:274 #: src/pages/part/PartDetail.tsx:751 @@ -432,7 +432,7 @@ msgstr "銷售訂單" #: lib/enums/ModelInformation.tsx:177 #: lib/enums/Roles.tsx:47 #: src/defaults/actions.tsx:143 -#: src/pages/Index/Settings/SystemSettings.tsx:360 +#: src/pages/Index/Settings/SystemSettings.tsx:361 #: src/pages/company/CompanyDetail.tsx:230 #: src/pages/part/PartDetail.tsx:763 #: src/pages/sales/SalesIndex.tsx:107 @@ -457,7 +457,7 @@ msgstr "退貨訂單" #: lib/enums/ModelInformation.tsx:197 #: lib/enums/Roles.tsx:43 #: src/defaults/actions.tsx:165 -#: src/pages/Index/Settings/SystemSettings.tsx:372 +#: src/pages/Index/Settings/SystemSettings.tsx:373 #: src/pages/company/CompanyDetail.tsx:237 #: src/pages/part/PartDetail.tsx:770 #: src/pages/sales/SalesIndex.tsx:147 @@ -482,7 +482,7 @@ msgstr "" #: lib/enums/ModelInformation.tsx:213 #: lib/enums/Roles.tsx:45 #: src/defaults/actions.tsx:154 -#: src/pages/Index/Settings/SystemSettings.tsx:385 +#: src/pages/Index/Settings/SystemSettings.tsx:386 #: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/LocationDetail.tsx:249 msgid "Transfer Orders" @@ -1477,7 +1477,7 @@ msgid "Remove the associated image from this item?" msgstr "刪除與此項關聯的圖片?" #: src/components/details/DetailsImage.tsx:82 -#: src/forms/StockForms.tsx:956 +#: src/forms/StockForms.tsx:983 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417 #: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898 @@ -2076,7 +2076,7 @@ msgstr "API 版本" #: src/defaults/actions.tsx:232 #: src/pages/Index/Settings/AdminCenter/Index.tsx:233 #: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:399 +#: src/pages/Index/Settings/SystemSettings.tsx:400 msgid "Plugins" msgstr "插件" @@ -2519,7 +2519,7 @@ msgid "Change" msgstr "變更" #: src/components/items/RoleTable.tsx:150 -#: src/forms/StockForms.tsx:1002 +#: src/forms/StockForms.tsx:1029 #: src/tables/stock/StockItemTestResultTable.tsx:369 msgid "Add" msgstr "添加" @@ -2874,8 +2874,8 @@ msgstr "使用者設定" #: src/components/nav/NavigationDrawer.tsx:146 #: src/components/nav/SettingsHeader.tsx:41 #: src/defaults/actions.tsx:193 -#: src/pages/Index/Settings/SystemSettings.tsx:418 -#: src/pages/Index/Settings/SystemSettings.tsx:423 +#: src/pages/Index/Settings/SystemSettings.tsx:419 +#: src/pages/Index/Settings/SystemSettings.tsx:424 msgid "System Settings" msgstr "系統設置" @@ -2924,7 +2924,7 @@ msgstr "登出" #: src/components/render/Part.tsx:36 #: src/components/wizards/ImportPartWizard.tsx:808 #: src/defaults/links.tsx:47 -#: src/forms/StockForms.tsx:841 +#: src/forms/StockForms.tsx:868 #: src/pages/Index/Settings/SystemSettings.tsx:260 #: src/pages/part/PartDetail.tsx:663 #: src/pages/stock/LocationDetail.tsx:481 @@ -2937,7 +2937,7 @@ msgstr "庫存" #: src/components/nav/NavigationDrawer.tsx:84 #: src/defaults/links.tsx:57 -#: src/pages/Index/Settings/SystemSettings.tsx:310 +#: src/pages/Index/Settings/SystemSettings.tsx:311 #: src/pages/build/BuildDetail.tsx:816 #: src/pages/build/BuildIndex.tsx:121 msgid "Manufacturing" @@ -2945,7 +2945,7 @@ msgstr "製造" #: src/components/nav/NavigationDrawer.tsx:91 #: src/defaults/links.tsx:63 -#: src/pages/Index/Settings/SystemSettings.tsx:338 +#: src/pages/Index/Settings/SystemSettings.tsx:339 #: src/pages/company/ManufacturerDetail.tsx:9 #: src/pages/company/ManufacturerPartDetail.tsx:274 #: src/pages/company/SupplierDetail.tsx:9 @@ -2957,7 +2957,7 @@ msgstr "採購中" #: src/components/nav/NavigationDrawer.tsx:98 #: src/defaults/links.tsx:69 -#: src/pages/Index/Settings/SystemSettings.tsx:355 +#: src/pages/Index/Settings/SystemSettings.tsx:356 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:575 #: src/pages/sales/SalesIndex.tsx:211 @@ -3093,7 +3093,7 @@ msgid "Attachments" msgstr "附件" #: src/components/panels/NotesPanel.tsx:27 -#: src/forms/StockForms.tsx:911 +#: src/forms/StockForms.tsx:938 #: src/tables/part/PartTestResultTable.tsx:214 #: src/tables/stock/StockTrackingTable.tsx:279 msgid "Notes" @@ -3389,15 +3389,15 @@ msgstr "類別" #: src/components/render/Stock.tsx:132 #: src/forms/BuildForms.tsx:849 #: src/forms/PurchaseOrderForms.tsx:709 -#: src/forms/StockForms.tsx:839 -#: src/forms/StockForms.tsx:887 -#: src/forms/StockForms.tsx:953 -#: src/forms/StockForms.tsx:999 -#: src/forms/StockForms.tsx:1040 -#: src/forms/StockForms.tsx:1089 -#: src/forms/StockForms.tsx:1157 -#: src/forms/StockForms.tsx:1205 -#: src/forms/StockForms.tsx:1249 +#: src/forms/StockForms.tsx:866 +#: src/forms/StockForms.tsx:914 +#: src/forms/StockForms.tsx:980 +#: src/forms/StockForms.tsx:1026 +#: src/forms/StockForms.tsx:1067 +#: src/forms/StockForms.tsx:1116 +#: src/forms/StockForms.tsx:1184 +#: src/forms/StockForms.tsx:1232 +#: src/forms/StockForms.tsx:1276 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88 #: src/pages/core/UserDetail.tsx:158 #: src/pages/stock/StockDetail.tsx:309 @@ -3418,7 +3418,7 @@ msgid "Serial Number" msgstr "序列號" #: src/components/render/Stock.tsx:104 -#: src/components/wizards/OrderPartsWizard.tsx:380 +#: src/components/wizards/OrderPartsWizard.tsx:385 #: src/forms/BomForms.tsx:42 #: src/forms/BuildForms.tsx:266 #: src/forms/BuildForms.tsx:687 @@ -3426,7 +3426,7 @@ msgstr "序列號" #: src/forms/PurchaseOrderForms.tsx:918 #: src/forms/ReturnOrderForms.tsx:247 #: src/forms/SalesOrderForms.tsx:439 -#: src/forms/StockForms.tsx:889 +#: src/forms/StockForms.tsx:916 #: src/forms/TransferOrderForms.tsx:237 #: src/pages/build/BuildIndex.tsx:47 #: src/pages/part/PartStockHistoryDetail.tsx:61 @@ -3453,15 +3453,15 @@ msgstr "數量" #: src/forms/BuildForms.tsx:371 #: src/forms/BuildForms.tsx:453 #: src/forms/BuildForms.tsx:527 -#: src/forms/StockForms.tsx:840 -#: src/forms/StockForms.tsx:888 -#: src/forms/StockForms.tsx:954 -#: src/forms/StockForms.tsx:1000 -#: src/forms/StockForms.tsx:1041 -#: src/forms/StockForms.tsx:1090 -#: src/forms/StockForms.tsx:1158 -#: src/forms/StockForms.tsx:1206 -#: src/forms/StockForms.tsx:1250 +#: src/forms/StockForms.tsx:867 +#: src/forms/StockForms.tsx:915 +#: src/forms/StockForms.tsx:981 +#: src/forms/StockForms.tsx:1027 +#: src/forms/StockForms.tsx:1068 +#: src/forms/StockForms.tsx:1117 +#: src/forms/StockForms.tsx:1185 +#: src/forms/StockForms.tsx:1233 +#: src/forms/StockForms.tsx:1277 #: src/tables/build/BuildLineTable.tsx:95 msgid "Batch" msgstr "批次" @@ -3983,7 +3983,7 @@ msgid "Supplier" msgstr "供應商" #: src/components/wizards/ImportPartWizard.tsx:221 -#: src/forms/StockForms.tsx:645 +#: src/forms/StockForms.tsx:655 msgid "Loading..." msgstr "正在加載..." @@ -4129,13 +4129,13 @@ msgid "Sales Requirements" msgstr "銷售需求" #: src/components/wizards/OrderPartsWizard.tsx:129 -#: src/forms/StockForms.tsx:955 -#: src/forms/StockForms.tsx:1001 -#: src/forms/StockForms.tsx:1042 -#: src/forms/StockForms.tsx:1091 -#: src/forms/StockForms.tsx:1159 -#: src/forms/StockForms.tsx:1207 -#: src/forms/StockForms.tsx:1251 +#: src/forms/StockForms.tsx:982 +#: src/forms/StockForms.tsx:1028 +#: src/forms/StockForms.tsx:1069 +#: src/forms/StockForms.tsx:1118 +#: src/forms/StockForms.tsx:1186 +#: src/forms/StockForms.tsx:1234 +#: src/forms/StockForms.tsx:1278 #: src/pages/company/SupplierPartDetail.tsx:195 #: src/pages/company/SupplierPartDetail.tsx:392 #: src/pages/part/PartDetail.tsx:395 @@ -4180,64 +4180,64 @@ msgstr "零件已新增至採購訂單" msgid "Select supplier part" msgstr "選擇供應商零件" -#: src/components/wizards/OrderPartsWizard.tsx:326 +#: src/components/wizards/OrderPartsWizard.tsx:331 msgid "Copy supplier part number" msgstr "複製供應商零件號碼" -#: src/components/wizards/OrderPartsWizard.tsx:329 +#: src/components/wizards/OrderPartsWizard.tsx:334 msgid "New supplier part" msgstr "新增供應商零件" -#: src/components/wizards/OrderPartsWizard.tsx:353 +#: src/components/wizards/OrderPartsWizard.tsx:358 msgid "Select purchase order" msgstr "選擇採購訂單" -#: src/components/wizards/OrderPartsWizard.tsx:367 +#: src/components/wizards/OrderPartsWizard.tsx:372 msgid "New purchase order" msgstr "新增採購訂單" -#: src/components/wizards/OrderPartsWizard.tsx:423 +#: src/components/wizards/OrderPartsWizard.tsx:428 msgid "Add to selected purchase order" msgstr "新增至選定的採購訂單" -#: src/components/wizards/OrderPartsWizard.tsx:440 -#: src/components/wizards/OrderPartsWizard.tsx:578 +#: src/components/wizards/OrderPartsWizard.tsx:445 +#: src/components/wizards/OrderPartsWizard.tsx:583 msgid "No parts selected" msgstr "未選擇任何零件" -#: src/components/wizards/OrderPartsWizard.tsx:441 +#: src/components/wizards/OrderPartsWizard.tsx:446 msgid "No purchaseable parts selected" msgstr "未選擇可採購的零件" -#: src/components/wizards/OrderPartsWizard.tsx:477 +#: src/components/wizards/OrderPartsWizard.tsx:482 msgid "Parts Added" msgstr "已新增零件" -#: src/components/wizards/OrderPartsWizard.tsx:478 +#: src/components/wizards/OrderPartsWizard.tsx:483 msgid "All selected parts added to a purchase order" msgstr "所有選定的零件已新增至採購訂單" -#: src/components/wizards/OrderPartsWizard.tsx:579 +#: src/components/wizards/OrderPartsWizard.tsx:584 msgid "You must select at least one part to order" msgstr "您必須至少選擇一個零件進行訂購" -#: src/components/wizards/OrderPartsWizard.tsx:590 +#: src/components/wizards/OrderPartsWizard.tsx:595 msgid "Supplier part is required" msgstr "供應商零件為必填項目" -#: src/components/wizards/OrderPartsWizard.tsx:594 +#: src/components/wizards/OrderPartsWizard.tsx:599 msgid "Quantity is required" msgstr "數量為必填項目" -#: src/components/wizards/OrderPartsWizard.tsx:607 +#: src/components/wizards/OrderPartsWizard.tsx:612 msgid "Invalid part selection" msgstr "無效的零件選擇" -#: src/components/wizards/OrderPartsWizard.tsx:609 +#: src/components/wizards/OrderPartsWizard.tsx:614 msgid "Please correct the errors in the selected parts" msgstr "請修正選定零件中的錯誤" -#: src/components/wizards/OrderPartsWizard.tsx:620 +#: src/components/wizards/OrderPartsWizard.tsx:625 #: src/tables/build/BuildLineTable.tsx:885 #: src/tables/part/PartTable.tsx:417 #: src/tables/sales/SalesOrderLineItemTable.tsx:417 @@ -4821,7 +4821,7 @@ msgstr "要完成的數量" #: src/forms/PurchaseOrderForms.tsx:834 #: src/forms/ReturnOrderForms.tsx:201 #: src/forms/ReturnOrderForms.tsx:248 -#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:780 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87 #: src/pages/build/BuildDetail.tsx:282 #: src/pages/core/UserDetail.tsx:151 @@ -5104,12 +5104,12 @@ msgid "Set Expiry Date" msgstr "設定到期日" #: src/forms/PurchaseOrderForms.tsx:641 -#: src/forms/StockForms.tsx:740 +#: src/forms/StockForms.tsx:750 msgid "Adjust Packaging" msgstr "調整封包" #: src/forms/PurchaseOrderForms.tsx:650 -#: src/forms/StockForms.tsx:731 +#: src/forms/StockForms.tsx:741 #: src/hooks/UseStockAdjustActions.tsx:152 msgid "Change Status" msgstr "更改狀態" @@ -5153,7 +5153,7 @@ msgid "Enter batch code for received items" msgstr "輸入收貨項目的批次代碼" #: src/forms/PurchaseOrderForms.tsx:789 -#: src/forms/StockForms.tsx:224 +#: src/forms/StockForms.tsx:232 msgid "Serial Numbers" msgstr "序列號" @@ -5172,7 +5172,7 @@ msgid "Enter an expiry date for received items" msgstr "輸入收貨項目的到期日" #: src/forms/PurchaseOrderForms.tsx:820 -#: src/forms/StockForms.tsx:775 +#: src/forms/StockForms.tsx:796 #: src/pages/company/SupplierPartDetail.tsx:177 #: src/pages/company/SupplierPartDetail.tsx:244 #: src/pages/stock/StockDetail.tsx:430 @@ -5274,218 +5274,219 @@ msgstr "留空以使用訂單地址" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:202 +#: src/forms/StockForms.tsx:210 msgid "Add given quantity as packs instead of individual items" msgstr "將給定的數量添加為包,而不是單個項目" -#: src/forms/StockForms.tsx:216 +#: src/forms/StockForms.tsx:224 msgid "Enter initial quantity for this stock item" msgstr "輸入此庫存項的初始數量" -#: src/forms/StockForms.tsx:226 +#: src/forms/StockForms.tsx:234 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "輸入新庫存的序列號(或留空)" -#: src/forms/StockForms.tsx:247 +#: src/forms/StockForms.tsx:255 msgid "Stock Status" msgstr "庫存狀態" -#: src/forms/StockForms.tsx:326 +#: src/forms/StockForms.tsx:334 #: src/pages/stock/StockDetail.tsx:754 #: src/tables/stock/StockItemTable.tsx:426 #: src/tables/stock/StockItemTable.tsx:475 msgid "Add Stock Item" msgstr "編輯庫存項" -#: src/forms/StockForms.tsx:371 +#: src/forms/StockForms.tsx:379 msgid "Select the part to install" msgstr "選擇要安裝的零件" -#: src/forms/StockForms.tsx:506 +#: src/forms/StockForms.tsx:514 msgid "Confirm Stock Transfer" msgstr "確認庫存轉移" -#: src/forms/StockForms.tsx:707 +#: src/forms/StockForms.tsx:717 msgid "Confirm Stock Return" msgstr "" -#: src/forms/StockForms.tsx:719 +#: src/forms/StockForms.tsx:729 msgid "Move to default location" msgstr "移動到默認位置" -#: src/forms/StockForms.tsx:842 -msgid "Move" -msgstr "移動" - -#: src/forms/StockForms.tsx:890 -msgid "Return" -msgstr "退貨" - -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:759 +#: src/forms/StockForms.tsx:932 msgid "Merge into existing stock" msgstr "" -#: src/forms/StockForms.tsx:906 +#: src/forms/StockForms.tsx:869 +msgid "Move" +msgstr "移動" + +#: src/forms/StockForms.tsx:917 +msgid "Return" +msgstr "退貨" + +#: src/forms/StockForms.tsx:933 msgid "Merge returned items into existing stock items if possible" msgstr "" -#: src/forms/StockForms.tsx:912 +#: src/forms/StockForms.tsx:939 msgid "Stock transaction notes" msgstr "" -#: src/forms/StockForms.tsx:1043 +#: src/forms/StockForms.tsx:1070 #: src/pages/Index/Scan.tsx:180 msgid "Count" msgstr "總計" -#: src/forms/StockForms.tsx:1356 +#: src/forms/StockForms.tsx:1383 #: src/hooks/UseStockAdjustActions.tsx:112 msgid "Add Stock" msgstr "添加庫存" -#: src/forms/StockForms.tsx:1357 +#: src/forms/StockForms.tsx:1384 msgid "Stock added" msgstr "庫存已新增" -#: src/forms/StockForms.tsx:1360 +#: src/forms/StockForms.tsx:1387 msgid "Increase the quantity of the selected stock items by a given amount." msgstr "增加選定庫存項目的數量。" -#: src/forms/StockForms.tsx:1371 +#: src/forms/StockForms.tsx:1398 #: src/hooks/UseStockAdjustActions.tsx:122 msgid "Remove Stock" msgstr "移除庫存" -#: src/forms/StockForms.tsx:1372 +#: src/forms/StockForms.tsx:1399 msgid "Stock removed" msgstr "庫存已移除" -#: src/forms/StockForms.tsx:1375 +#: src/forms/StockForms.tsx:1402 msgid "Decrease the quantity of the selected stock items by a given amount." msgstr "減少選定庫存項目的數量。" -#: src/forms/StockForms.tsx:1386 +#: src/forms/StockForms.tsx:1424 #: src/hooks/UseStockAdjustActions.tsx:132 msgid "Transfer Stock" msgstr "轉移庫存" -#: src/forms/StockForms.tsx:1387 +#: src/forms/StockForms.tsx:1425 msgid "Stock transferred" msgstr "庫存已轉移" -#: src/forms/StockForms.tsx:1390 +#: src/forms/StockForms.tsx:1428 msgid "Transfer selected items to the specified location." msgstr "將選定項目轉移到指定位置。" -#: src/forms/StockForms.tsx:1401 +#: src/forms/StockForms.tsx:1439 #: src/hooks/UseStockAdjustActions.tsx:182 msgid "Return Stock" msgstr "退回庫存" -#: src/forms/StockForms.tsx:1402 +#: src/forms/StockForms.tsx:1440 msgid "Stock returned" msgstr "庫存已退回" -#: src/forms/StockForms.tsx:1405 +#: src/forms/StockForms.tsx:1443 msgid "Return selected items into stock, to the specified location." msgstr "將選定項目退回庫存,至指定位置。" -#: src/forms/StockForms.tsx:1416 +#: src/forms/StockForms.tsx:1454 #: src/hooks/UseStockAdjustActions.tsx:102 msgid "Count Stock" msgstr "庫存數量" -#: src/forms/StockForms.tsx:1417 +#: src/forms/StockForms.tsx:1455 msgid "Stock counted" msgstr "庫存已盤點" -#: src/forms/StockForms.tsx:1420 +#: src/forms/StockForms.tsx:1458 msgid "Count the selected stock items, and adjust the quantity accordingly." msgstr "盤點選定的庫存項目,並相應地調整數量。" -#: src/forms/StockForms.tsx:1431 +#: src/forms/StockForms.tsx:1469 msgid "Change Stock Status" msgstr "更改庫存狀態" -#: src/forms/StockForms.tsx:1432 +#: src/forms/StockForms.tsx:1470 msgid "Stock status changed" msgstr "庫存狀態已變更" -#: src/forms/StockForms.tsx:1435 +#: src/forms/StockForms.tsx:1473 msgid "Change the status of the selected stock items." msgstr "變更選定庫存項目的狀態。" -#: src/forms/StockForms.tsx:1458 +#: src/forms/StockForms.tsx:1496 #: src/hooks/UseStockAdjustActions.tsx:162 msgid "Change Batch Code" msgstr "變更批次代碼" -#: src/forms/StockForms.tsx:1461 +#: src/forms/StockForms.tsx:1499 msgid "Change batch code for the selected stock items" msgstr "變更選定庫存項目的批次代碼" -#: src/forms/StockForms.tsx:1478 +#: src/forms/StockForms.tsx:1516 #: src/hooks/UseStockAdjustActions.tsx:142 msgid "Merge Stock" msgstr "合併庫存" -#: src/forms/StockForms.tsx:1479 +#: src/forms/StockForms.tsx:1517 msgid "Stock merged" msgstr "庫存已合併" -#: src/forms/StockForms.tsx:1481 +#: src/forms/StockForms.tsx:1519 msgid "Merge Stock Items" msgstr "合併庫存項目" -#: src/forms/StockForms.tsx:1483 +#: src/forms/StockForms.tsx:1521 msgid "Merge operation cannot be reversed" msgstr "合併操作無法還原" -#: src/forms/StockForms.tsx:1484 +#: src/forms/StockForms.tsx:1522 msgid "Tracking information may be lost when merging items" msgstr "合併項目時可能會遺失追蹤資訊" -#: src/forms/StockForms.tsx:1485 +#: src/forms/StockForms.tsx:1523 msgid "Supplier information may be lost when merging items" msgstr "合併項目時可能會遺失供應商資訊" -#: src/forms/StockForms.tsx:1503 +#: src/forms/StockForms.tsx:1541 msgid "Assign Stock to Customer" msgstr "將庫存分配給客戶" -#: src/forms/StockForms.tsx:1504 +#: src/forms/StockForms.tsx:1542 msgid "Stock assigned to customer" msgstr "庫存已分配給客戶" -#: src/forms/StockForms.tsx:1514 +#: src/forms/StockForms.tsx:1552 msgid "Delete Stock Items" msgstr "刪除庫存項" -#: src/forms/StockForms.tsx:1515 +#: src/forms/StockForms.tsx:1553 msgid "Stock deleted" msgstr "庫存已刪除" -#: src/forms/StockForms.tsx:1518 +#: src/forms/StockForms.tsx:1556 msgid "This operation will permanently delete the selected stock items." msgstr "此操作將永久刪除選定的庫存項目。" -#: src/forms/StockForms.tsx:1527 +#: src/forms/StockForms.tsx:1565 msgid "Parent stock location" msgstr "上級庫存地點" -#: src/forms/StockForms.tsx:1654 +#: src/forms/StockForms.tsx:1692 msgid "Find Serial Number" msgstr "尋找序號" -#: src/forms/StockForms.tsx:1665 +#: src/forms/StockForms.tsx:1703 msgid "No matching items" msgstr "沒有符合的項目" -#: src/forms/StockForms.tsx:1671 +#: src/forms/StockForms.tsx:1709 msgid "Multiple matching items" msgstr "多個符合的項目" -#: src/forms/StockForms.tsx:1680 +#: src/forms/StockForms.tsx:1718 msgid "Invalid response from server" msgstr "伺服器回應無效" @@ -7294,15 +7295,15 @@ msgstr "定價" msgid "Part Creation" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:280 +#: src/pages/Index/Settings/SystemSettings.tsx:281 msgid "Stock Expiry" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:289 +#: src/pages/Index/Settings/SystemSettings.tsx:290 msgid "Part Stocktake" msgstr "零件盤點" -#: src/pages/Index/Settings/SystemSettings.tsx:299 +#: src/pages/Index/Settings/SystemSettings.tsx:300 #: src/pages/part/PartStockHistoryDetail.tsx:296 #: src/pages/stock/StockDetail.tsx:554 msgid "Stock Tracking" @@ -7312,7 +7313,7 @@ msgstr "庫存跟蹤" #~ msgid "Switch to User Setting" #~ msgstr "Switch to User Setting" -#: src/pages/Index/Settings/SystemSettings.tsx:327 +#: src/pages/Index/Settings/SystemSettings.tsx:328 msgid "External Build Orders" msgstr "" From 3f365373918deb47a800370deee48e6aa0c70ef2 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 25 Jun 2026 12:23:44 +1000 Subject: [PATCH 29/40] Revert devcontainer to python 3.12 (#12249) --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 3b3fa1e979..440b246f13 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,7 +1,7 @@ # Dockerfile for the InvenTree devcontainer # This container is used for development of the InvenTree project, and includes all necessary dependencies for both backend and frontend development. -FROM mcr.microsoft.com/devcontainers/python:3.14-trixie@sha256:66af9ee0a89e76f83b5c54a0cfdc19966ec8e443e294707f8f9b45f465b42cf1 +FROM mcr.microsoft.com/devcontainers/python:3.12-trixie@sha256:5440cb68898d190ad6c6e8a4634ce89d0645bea47f9c8beb75612bb8e3983711 # InvenTree paths ENV INVENTREE_HOME="/home/inventree" From e5fa67ca9f021c14e9340619fe4a807f0c012ae2 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 25 Jun 2026 14:26:53 +1000 Subject: [PATCH 30/40] Project code active (#12250) * Add 'active' field to the ProjectCode model - Allows retiring of old project codes without deleting * Update UI table * Refactor ProjectCodeField * Add unit test * Bump API version and CHANGELOG --- CHANGELOG.md | 2 ++ .../InvenTree/InvenTree/api_version.py | 5 ++++- src/backend/InvenTree/common/admin.py | 3 ++- src/backend/InvenTree/common/api.py | 2 +- .../migrations/0045_projectcode_active.py | 22 +++++++++++++++++++ src/backend/InvenTree/common/models.py | 6 +++++ src/backend/InvenTree/common/serializers.py | 9 +++++++- src/backend/InvenTree/common/tests.py | 16 ++++++++++++++ src/frontend/src/forms/BuildForms.tsx | 7 ++---- src/frontend/src/forms/CommonFields.tsx | 12 ++++++++++ src/frontend/src/forms/CommonForms.tsx | 9 ++++---- src/frontend/src/forms/PurchaseOrderForms.tsx | 11 +++------- src/frontend/src/forms/ReturnOrderForms.tsx | 8 +++---- src/frontend/src/forms/SalesOrderForms.tsx | 8 +++---- src/frontend/src/forms/TransferOrderForms.tsx | 8 +++---- .../src/tables/settings/ProjectCodeTable.tsx | 22 ++++++++++++++++++- 16 files changed, 112 insertions(+), 38 deletions(-) create mode 100644 src/backend/InvenTree/common/migrations/0045_projectcode_active.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 410d9a6054..4bea76d17c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- [#12250](https://github.com/inventree/InvenTree/pull/12250) adds "active" field to the ProjectCode model and API endpoints + ### Changed ### Removed diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index 1bd9877491..b34c1ef5c5 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,11 +1,14 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 512 +INVENTREE_API_VERSION = 513 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v513 -> 2026-06-25 : https://github.com/inventree/InvenTree/pull/12250 + - Adds "active" field to the ProjectCode model and API endpoints + v512 -> 2026-06-20 : https://github.com/inventree/InvenTree/pull/12022 - Adds optional "merge" field to each item in the Stock Transfer API endpoint - When merge is enabled, transferred stock is combined into compatible existing stock at the destination diff --git a/src/backend/InvenTree/common/admin.py b/src/backend/InvenTree/common/admin.py index e35d269f0b..44ac152760 100644 --- a/src/backend/InvenTree/common/admin.py +++ b/src/backend/InvenTree/common/admin.py @@ -115,7 +115,8 @@ class BarcodeScanResultAdmin(admin.ModelAdmin): class ProjectCodeAdmin(admin.ModelAdmin): """Admin settings for ProjectCode.""" - list_display = ('code', 'description') + list_display = ('code', 'description', 'active') + list_filter = ('active',) search_fields = ('code', 'description') diff --git a/src/backend/InvenTree/common/api.py b/src/backend/InvenTree/common/api.py index f2bec5e94b..f2a1a4c636 100644 --- a/src/backend/InvenTree/common/api.py +++ b/src/backend/InvenTree/common/api.py @@ -491,7 +491,7 @@ class ProjectCodeList(DataExportViewMixin, ListCreateAPI): filter_backends = SEARCH_ORDER_FILTER ordering_fields = ['code'] - + filterset_fields = ['active'] search_fields = ['code', 'description'] diff --git a/src/backend/InvenTree/common/migrations/0045_projectcode_active.py b/src/backend/InvenTree/common/migrations/0045_projectcode_active.py new file mode 100644 index 0000000000..c0a8461972 --- /dev/null +++ b/src/backend/InvenTree/common/migrations/0045_projectcode_active.py @@ -0,0 +1,22 @@ +# Generated by Django 5.2.15 on 2026-06-25 03:13 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("common", "0044_notificationmessage_charfield_pk"), + ] + + operations = [ + migrations.AddField( + model_name="projectcode", + name="active", + field=models.BooleanField( + default=True, + help_text="Is this project code active?", + verbose_name="Active", + ), + ), + ] diff --git a/src/backend/InvenTree/common/models.py b/src/backend/InvenTree/common/models.py index 3e903ac9d2..b07dd08eeb 100644 --- a/src/backend/InvenTree/common/models.py +++ b/src/backend/InvenTree/common/models.py @@ -181,6 +181,12 @@ class ProjectCode(InvenTree.models.InvenTreeMetadataModel): help_text=_('Project description'), ) + active = models.BooleanField( + default=True, + verbose_name=_('Active'), + help_text=_('Is this project code active?'), + ) + responsible = models.ForeignKey( users.models.Owner, on_delete=models.SET_NULL, diff --git a/src/backend/InvenTree/common/serializers.py b/src/backend/InvenTree/common/serializers.py index 3c0ef9e859..f37e46e594 100644 --- a/src/backend/InvenTree/common/serializers.py +++ b/src/backend/InvenTree/common/serializers.py @@ -417,7 +417,14 @@ class ProjectCodeSerializer(DataImportExportSerializerMixin, InvenTreeModelSeria """Meta options for ProjectCodeSerializer.""" model = common_models.ProjectCode - fields = ['pk', 'code', 'description', 'responsible', 'responsible_detail'] + fields = [ + 'pk', + 'code', + 'description', + 'active', + 'responsible', + 'responsible_detail', + ] responsible_detail = OwnerSerializer( source='responsible', read_only=True, allow_null=True diff --git a/src/backend/InvenTree/common/tests.py b/src/backend/InvenTree/common/tests.py index 2bd0c41db8..6935e3b475 100644 --- a/src/backend/InvenTree/common/tests.py +++ b/src/backend/InvenTree/common/tests.py @@ -1752,6 +1752,22 @@ class ProjectCodesTest(InvenTreeAPITestCase): str(response.data['code']), ) + def test_filter_active(self): + """Test that the 'active' field can be filtered via the API.""" + # Mark one code as inactive + code = ProjectCode.objects.first() + code.active = False + code.save() + + active_count = ProjectCode.objects.filter(active=True).count() + inactive_count = ProjectCode.objects.filter(active=False).count() + + response = self.get(self.url, data={'active': True}, expected_code=200) + self.assertEqual(len(response.data), active_count) + + response = self.get(self.url, data={'active': False}, expected_code=200) + self.assertEqual(len(response.data), inactive_count) + def test_write_access(self): """Test that non-staff users have read-only access.""" # By default user has staff access, can create a new project code diff --git a/src/frontend/src/forms/BuildForms.tsx b/src/frontend/src/forms/BuildForms.tsx index 3fd3acbc41..2ff3c0bd53 100644 --- a/src/frontend/src/forms/BuildForms.tsx +++ b/src/frontend/src/forms/BuildForms.tsx @@ -5,7 +5,6 @@ import { IconCircleCheck, IconInfoCircle, IconLink, - IconList, IconSitemap, IconTruckDelivery, IconUsersGroup @@ -36,7 +35,7 @@ import { } from '../hooks/UseGenerator'; import { useGlobalSettingsState } from '../states/SettingsStates'; import { RenderPartColumn } from '../tables/ColumnRenderers'; -import { TagsField } from './CommonFields'; +import { ProjectCodeField, TagsField } from './CommonFields'; /** * Field set for BuildOrder forms @@ -93,9 +92,7 @@ export function useBuildOrderFields({ }, title: {}, quantity: {}, - project_code: { - icon: - }, + project_code: ProjectCodeField(), priority: {}, parent: { icon: , diff --git a/src/frontend/src/forms/CommonFields.tsx b/src/frontend/src/forms/CommonFields.tsx index 9fcd5fd25b..07f16e0bb9 100644 --- a/src/frontend/src/forms/CommonFields.tsx +++ b/src/frontend/src/forms/CommonFields.tsx @@ -1,5 +1,6 @@ import type { ApiFormFieldType } from '@lib/types/Forms'; import { t } from '@lingui/core/macro'; +import { IconList } from '@tabler/icons-react'; export function TagsField({ label, @@ -17,3 +18,14 @@ export function TagsField({ placeholder: placeholder ?? t`Select tags` }; } + +export function ProjectCodeField(): ApiFormFieldType { + return { + filters: { + active: true + }, + label: t`Project Code`, + description: t`Select project code for this item`, + icon: + }; +} diff --git a/src/frontend/src/forms/CommonForms.tsx b/src/frontend/src/forms/CommonForms.tsx index fc3ad49135..3bd64bc0d0 100644 --- a/src/frontend/src/forms/CommonForms.tsx +++ b/src/frontend/src/forms/CommonForms.tsx @@ -5,7 +5,6 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { apiUrl } from '@lib/functions/Api'; import type { ApiFormFieldSet, ApiFormFieldType } from '@lib/types/Forms'; -import { t } from '@lingui/core/macro'; import type { StatusCodeInterface, StatusCodeListInterface @@ -13,6 +12,7 @@ import type { import { useApi } from '../contexts/ApiContext'; import { useGlobalStatusState } from '../states/GlobalStatusState'; import { useUserState } from '../states/UserState'; +import { ProjectCodeField } from './CommonFields'; export function projectCodeFields(): ApiFormFieldSet { return { @@ -20,7 +20,8 @@ export function projectCodeFields(): ApiFormFieldSet { description: {}, responsible: { icon: - } + }, + active: {} }; } @@ -90,9 +91,7 @@ export function extraLineItemFields(): ApiFormFieldSet { quantity: {}, price: {}, price_currency: {}, - project_code: { - description: t`Select project code for this line item` - }, + project_code: ProjectCodeField(), notes: {}, link: {} }; diff --git a/src/frontend/src/forms/PurchaseOrderForms.tsx b/src/frontend/src/forms/PurchaseOrderForms.tsx index 4faf5756ad..3dce873eb6 100644 --- a/src/frontend/src/forms/PurchaseOrderForms.tsx +++ b/src/frontend/src/forms/PurchaseOrderForms.tsx @@ -20,7 +20,6 @@ import { IconHash, IconInfoCircle, IconLink, - IconList, IconNotes, IconSitemap, IconUser, @@ -57,7 +56,7 @@ import { useSerialNumberGenerator } from '../hooks/UseGenerator'; import { useGlobalSettingsState } from '../states/SettingsStates'; -import { TagsField } from './CommonFields'; +import { ProjectCodeField, TagsField } from './CommonFields'; /* * Construct a set of fields for creating / editing a PurchaseOrderLineItem instance */ @@ -191,9 +190,7 @@ export function usePurchaseOrderLineItemFields({ value: autoPricing, onValueChange: setAutoPricing }, - project_code: { - description: t`Select project code for this line item` - }, + project_code: ProjectCodeField(), target_date: { icon: }, @@ -271,9 +268,7 @@ export function usePurchaseOrderFields({ } }, supplier_reference: {}, - project_code: { - icon: - }, + project_code: ProjectCodeField(), order_currency: { icon: }, diff --git a/src/frontend/src/forms/ReturnOrderForms.tsx b/src/frontend/src/forms/ReturnOrderForms.tsx index ea919f5da7..3377ff1f22 100644 --- a/src/frontend/src/forms/ReturnOrderForms.tsx +++ b/src/frontend/src/forms/ReturnOrderForms.tsx @@ -23,7 +23,7 @@ import { Thumbnail } from '../components/images/Thumbnail'; import { useCreateApiFormModal } from '../hooks/UseForm'; import { useGlobalSettingsState } from '../states/SettingsStates'; import { StatusFilterOptions } from '../tables/Filter'; -import { TagsField } from './CommonFields'; +import { ProjectCodeField, TagsField } from './CommonFields'; export function useReturnOrderFields({ duplicateOrderId @@ -44,7 +44,7 @@ export function useReturnOrderFields({ } }, customer_reference: {}, - project_code: {}, + project_code: ProjectCodeField(), order_currency: {}, start_date: { icon: @@ -138,9 +138,7 @@ export function useReturnOrderLineItemFields({ }, price: {}, price_currency: {}, - project_code: { - description: t`Select project code for this line item` - }, + project_code: ProjectCodeField(), target_date: {}, notes: {}, link: {} diff --git a/src/frontend/src/forms/SalesOrderForms.tsx b/src/frontend/src/forms/SalesOrderForms.tsx index 125ca7f894..a863a51852 100644 --- a/src/frontend/src/forms/SalesOrderForms.tsx +++ b/src/frontend/src/forms/SalesOrderForms.tsx @@ -31,7 +31,7 @@ import { useCreateApiFormModal, useEditApiFormModal } from '../hooks/UseForm'; import { useGlobalSettingsState } from '../states/SettingsStates'; import { useUserState } from '../states/UserState'; import { RenderPartColumn } from '../tables/ColumnRenderers'; -import { TagsField } from './CommonFields'; +import { ProjectCodeField, TagsField } from './CommonFields'; export function useSalesOrderFields({ duplicateOrderId @@ -57,7 +57,7 @@ export function useSalesOrderFields({ } }, customer_reference: {}, - project_code: {}, + project_code: ProjectCodeField(), order_currency: {}, start_date: { icon: @@ -194,9 +194,7 @@ export function useSalesOrderLineItemFields({ value: partCurrency, onValueChange: setPartCurrency }, - project_code: { - description: t`Select project code for this line item` - }, + project_code: ProjectCodeField(), target_date: {}, notes: {}, link: {} diff --git a/src/frontend/src/forms/TransferOrderForms.tsx b/src/frontend/src/forms/TransferOrderForms.tsx index 3935d89b92..638028603d 100644 --- a/src/frontend/src/forms/TransferOrderForms.tsx +++ b/src/frontend/src/forms/TransferOrderForms.tsx @@ -10,7 +10,7 @@ import type { TableFieldRowProps } from '../components/forms/fields/TableField'; import { useCreateApiFormModal } from '../hooks/UseForm'; import { useGlobalSettingsState } from '../states/SettingsStates'; import { RenderPartColumn } from '../tables/ColumnRenderers'; -import { TagsField } from './CommonFields'; +import { ProjectCodeField, TagsField } from './CommonFields'; export function useTransferOrderFields({ duplicateOrderId @@ -23,7 +23,7 @@ export function useTransferOrderFields({ const fields: ApiFormFieldSet = { reference: {}, description: {}, - project_code: {}, + project_code: ProjectCodeField(), start_date: { icon: }, @@ -91,9 +91,7 @@ export function useTransferOrderLineItemFields({ }, reference: {}, quantity: {}, - project_code: { - description: t`Select project code for this line item` - }, + project_code: ProjectCodeField(), target_date: {}, notes: {}, link: {} diff --git a/src/frontend/src/tables/settings/ProjectCodeTable.tsx b/src/frontend/src/tables/settings/ProjectCodeTable.tsx index d6cdddf9e8..e20e3210ed 100644 --- a/src/frontend/src/tables/settings/ProjectCodeTable.tsx +++ b/src/frontend/src/tables/settings/ProjectCodeTable.tsx @@ -11,6 +11,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; import useTable from '@lib/hooks/UseTable'; +import type { TableFilter } from '@lib/index'; import type { TableColumn } from '@lib/types/Tables'; import { projectCodeFields } from '../../forms/CommonForms'; import { @@ -19,7 +20,11 @@ import { useEditApiFormModal } from '../../hooks/UseForm'; import { useUserState } from '../../states/UserState'; -import { DescriptionColumn, ResponsibleColumn } from '../ColumnRenderers'; +import { + BooleanColumn, + DescriptionColumn, + ResponsibleColumn +} from '../ColumnRenderers'; import { InvenTreeTable } from '../InvenTreeTable'; /** @@ -37,6 +42,9 @@ export default function ProjectCodeTable() { sortable: true }, DescriptionColumn({}), + BooleanColumn({ + accessor: 'active' + }), ResponsibleColumn({}) ]; }, []); @@ -89,6 +97,17 @@ export default function ProjectCodeTable() { [user] ); + const tableFilters: TableFilter[] = useMemo(() => { + return [ + { + name: 'active', + label: t`Active`, + description: t`Show active items`, + type: 'boolean' + } + ]; + }, []); + const tableActions = useMemo(() => { return [ From 496b20e08fe124d275b861a8b92d130917bf154c Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Thu, 25 Jun 2026 08:06:02 +0200 Subject: [PATCH 31/40] fix js-yaml, esbuild vulns (#12190) * fix js-yaml, esbuild vulns * update bump * upgrade vite --- src/frontend/package.json | 6 +- src/frontend/yarn.lock | 892 +++++++++++++------------------------- 2 files changed, 303 insertions(+), 595 deletions(-) diff --git a/src/frontend/package.json b/src/frontend/package.json index 10e1d887c8..8c1bf2e93e 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -134,7 +134,7 @@ "rollup": "^4.61.1", "rollup-plugin-license": "^3.7.1", "typescript": "^5.9.3", - "vite": "^6.4.2", + "vite": "^7.0.0", "vite-plugin-babel-macros": "^1.0.6", "vite-plugin-dts": "^5.0.2", "vite-plugin-externals": "^0.6.2", @@ -142,6 +142,8 @@ }, "resolutions": { "undici": "^6.24.0", - "vite": "^6.4.2" + "vite": "^7", + "js-yaml": "^4", + "esbuild": "^0.28" } } diff --git a/src/frontend/yarn.lock b/src/frontend/yarn.lock index 0612b6ef65..fbb2ec10ab 100644 --- a/src/frontend/yarn.lock +++ b/src/frontend/yarn.lock @@ -600,289 +600,140 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz#5e13fac887f08c44f76b0ccaf3370eb00fec9bb6" integrity sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg== -"@esbuild/aix-ppc64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz#80fcbe36130e58b7670511e888b8e88a259ed76c" - integrity sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA== +"@esbuild/aix-ppc64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz#7a01a8d2ec2fbb2dac78adad09b0fa781e4082be" + integrity sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ== -"@esbuild/aix-ppc64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz#7a289c158e29cbf59ea0afc83cc80f06d1c89402" - integrity sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA== +"@esbuild/android-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz#b540a27d14e4afd058496a4dbec4d3f414db110a" + integrity sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg== -"@esbuild/android-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz#8aa4965f8d0a7982dc21734bf6601323a66da752" - integrity sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg== +"@esbuild/android-arm@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.1.tgz#704bd297de6d762de54eabbeafbf55f6756abe2f" + integrity sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ== -"@esbuild/android-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz#b8828d9edfa3a92660644eb8de6e4f3c203d7b17" - integrity sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw== +"@esbuild/android-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.1.tgz#d1cb166d34b0fbf0fe8ab460a5594f24a378701e" + integrity sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng== -"@esbuild/android-arm@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.12.tgz#300712101f7f50f1d2627a162e6e09b109b6767a" - integrity sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg== +"@esbuild/darwin-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz#1034b26457fc886368fe61bbd09f653f6afa8e54" + integrity sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q== -"@esbuild/android-arm@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.0.tgz#5ec1847605e05b5dbe5df90db9ff7e3e4c58dca7" - integrity sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ== +"@esbuild/darwin-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz#65556a432a1e4d72032d8218c1932fcca1a49772" + integrity sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ== -"@esbuild/android-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.12.tgz#87dfb27161202bdc958ef48bb61b09c758faee16" - integrity sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg== +"@esbuild/freebsd-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz#2e61e0592f9030d7e3dae18ee25ebc535918aef6" + integrity sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw== -"@esbuild/android-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.0.tgz#390642175b88ef82bad4cce03f8ab13fe9b1912e" - integrity sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA== +"@esbuild/freebsd-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz#c95ec289959ef8079c4dca817a1e2c4be66b9bd3" + integrity sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ== -"@esbuild/darwin-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz#79197898ec1ff745d21c071e1c7cc3c802f0c1fd" - integrity sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg== +"@esbuild/linux-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz#40b22175dda06182f3ee8141186c5ff304c4a717" + integrity sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g== -"@esbuild/darwin-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz#ae45325960d5950cd6951e4f97396f4e1ff7d8d3" - integrity sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q== +"@esbuild/linux-arm@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz#c09a0f67917592ac0de892a9be4d3814debd2a6c" + integrity sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ== -"@esbuild/darwin-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz#146400a8562133f45c4d2eadcf37ddd09718079e" - integrity sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA== +"@esbuild/linux-ia32@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz#a580f9c676797833891e519fc7a1337c8afd8db3" + integrity sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w== -"@esbuild/darwin-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz#c079247d589b6b99449659d94f06951b84bff2e4" - integrity sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ== +"@esbuild/linux-loong64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz#46452cf321dc7f9e91c2fa780a56bb56e79cd68b" + integrity sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg== -"@esbuild/freebsd-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz#1c5f9ba7206e158fd2b24c59fa2d2c8bb47ca0fe" - integrity sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg== +"@esbuild/linux-mips64el@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz#4211b3184dd6608f53dcb22e39f5d34ee08852c8" + integrity sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ== -"@esbuild/freebsd-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz#45c456215a486593c94900297202dc11c880a37a" - integrity sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q== +"@esbuild/linux-ppc64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz#697857c2a61cb9b0b6bb6652e40c1dc5e1ca8e5d" + integrity sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ== -"@esbuild/freebsd-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz#ea631f4a36beaac4b9279fa0fcc6ca29eaeeb2b3" - integrity sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ== +"@esbuild/linux-riscv64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz#d192943eb146a40ac4c6497d0cf7be35b986bf08" + integrity sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ== -"@esbuild/freebsd-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz#0399494c1c85e4388e9b7040bd60d48f2a5b0d2c" - integrity sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw== +"@esbuild/linux-s390x@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz#acea0356da0e0ebc08f97cf7b9c2e401e1e648dc" + integrity sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag== -"@esbuild/linux-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz#e1066bce58394f1b1141deec8557a5f0a22f5977" - integrity sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ== +"@esbuild/linux-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz#6f0c3ce0cb64c534b70c4c45ecb2c16d34e35dfd" + integrity sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA== -"@esbuild/linux-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz#d6d9f09ef0de54116bf459a4d53cac7e0952fe39" - integrity sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A== +"@esbuild/netbsd-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz#8bcd77077a0dce3378b574fedb26d2a253b73d36" + integrity sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw== -"@esbuild/linux-arm@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz#452cd66b20932d08bdc53a8b61c0e30baf4348b9" - integrity sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw== +"@esbuild/netbsd-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz#e7fb2a01e99c830c94e6623cd9fefb4c8fb58347" + integrity sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg== -"@esbuild/linux-arm@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz#7b42ffa84c288ae94fdc431c1b28a89e3c3b9278" - integrity sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw== +"@esbuild/openbsd-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz#c52909372db8b86e2c55e05a8940033b5660a3b2" + integrity sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q== -"@esbuild/linux-ia32@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz#b24f8acc45bcf54192c7f2f3be1b53e6551eafe0" - integrity sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA== +"@esbuild/openbsd-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz#c427b9be5a64c262ff9a7eb70b5fbbaadf446c6c" + integrity sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw== -"@esbuild/linux-ia32@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz#deb15d112ed8dd605346b6b953d23a21ff81253f" - integrity sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ== +"@esbuild/openharmony-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz#dc9b147baca2e6c4b3c85571741ef4860a489097" + integrity sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg== -"@esbuild/linux-loong64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz#f9cfffa7fc8322571fbc4c8b3268caf15bd81ad0" - integrity sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng== +"@esbuild/sunos-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz#ce866d12df13c15e4c99f073a3d466f6e0649b3a" + integrity sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ== -"@esbuild/linux-loong64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz#81fb89d07eecc79b157dea61033757726fce0ca4" - integrity sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg== +"@esbuild/win32-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz#7468e3692d01d629d5941e5d83817bb80f9e39b4" + integrity sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA== -"@esbuild/linux-mips64el@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz#575a14bd74644ffab891adc7d7e60d275296f2cd" - integrity sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw== +"@esbuild/win32-ia32@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz#a5bc0063fb2bcab6d0ed63f2a1537958bc269ec6" + integrity sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg== -"@esbuild/linux-mips64el@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz#d0e42691b3ff7af9fb2217b70fc01f343bdb62bb" - integrity sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w== - -"@esbuild/linux-ppc64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz#75b99c70a95fbd5f7739d7692befe60601591869" - integrity sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA== - -"@esbuild/linux-ppc64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz#389f3e5e98f17d477c467cc87136e1a076eead87" - integrity sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg== - -"@esbuild/linux-riscv64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz#2e3259440321a44e79ddf7535c325057da875cd6" - integrity sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w== - -"@esbuild/linux-riscv64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz#763bd60d59b242be12da1e67d5729f3024c605fa" - integrity sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ== - -"@esbuild/linux-s390x@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz#17676cabbfe5928da5b2a0d6df5d58cd08db2663" - integrity sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg== - -"@esbuild/linux-s390x@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz#aac6061634872e4677de693bce8030d73b1fd055" - integrity sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q== - -"@esbuild/linux-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz#0583775685ca82066d04c3507f09524d3cd7a306" - integrity sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw== - -"@esbuild/linux-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz#4f2917747188fe77632bcec65b2d84b422419779" - integrity sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ== - -"@esbuild/netbsd-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz#f04c4049cb2e252fe96b16fed90f70746b13f4a4" - integrity sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg== - -"@esbuild/netbsd-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz#814df0ae57a0c386814491b8397eeba82094a947" - integrity sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw== - -"@esbuild/netbsd-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz#77da0d0a0d826d7c921eea3d40292548b258a076" - integrity sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ== - -"@esbuild/netbsd-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz#e01bdf7e60fa1a08e46d46d960b0d9bb8ac210af" - integrity sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw== - -"@esbuild/openbsd-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz#6296f5867aedef28a81b22ab2009c786a952dccd" - integrity sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A== - -"@esbuild/openbsd-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz#4a15c36aacca68d2d5a4c90b710c06759f4c1ffa" - integrity sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g== - -"@esbuild/openbsd-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz#f8d23303360e27b16cf065b23bbff43c14142679" - integrity sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw== - -"@esbuild/openbsd-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz#475e6101498a8ecce3008d7c388111d7a27c17bd" - integrity sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA== - -"@esbuild/openharmony-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz#49e0b768744a3924be0d7fd97dd6ce9b2923d88d" - integrity sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg== - -"@esbuild/openharmony-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz#cfdc3957f0b7a69f1bde129aad17fcc2f6fa033e" - integrity sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w== - -"@esbuild/sunos-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz#a6ed7d6778d67e528c81fb165b23f4911b9b13d6" - integrity sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w== - -"@esbuild/sunos-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz#a013c856fecacd1c3aec985c8afe1d1cb017497d" - integrity sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw== - -"@esbuild/win32-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz#9ac14c378e1b653af17d08e7d3ce34caef587323" - integrity sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg== - -"@esbuild/win32-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz#eae05e0f35271cad3898b43168d3e9a3bbaf47e5" - integrity sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA== - -"@esbuild/win32-ia32@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz#918942dcbbb35cc14fca39afb91b5e6a3d127267" - integrity sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ== - -"@esbuild/win32-ia32@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz#06161ebc5bf75c08d69feb3c6b22560515913998" - integrity sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA== - -"@esbuild/win32-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz#9bdad8176be7811ad148d1f8772359041f46c6c5" - integrity sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA== - -"@esbuild/win32-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz#04d90d5752b4ce65d2b6ac25eba08ff7624fe07c" - integrity sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw== - -"@flakiness/flakiness-report@^0.34.0": - version "0.34.0" - resolved "https://registry.yarnpkg.com/@flakiness/flakiness-report/-/flakiness-report-0.34.0.tgz#e15f79129479befd12b15e6890fde09be8b95db4" - integrity sha512-37SRIky7mnMhV9Go/VO3pwo5r0ZQ5h/rTYmQBWdIyty2ZGylEUdbxZ+Yz2wCJwlmVeK9V8VWm0pInAjxUJ/x5g== +"@esbuild/win32-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz#10064ee44f4347b90c9a02b446bbf80a91632b12" + integrity sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A== "@flakiness/playwright@^1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@flakiness/playwright/-/playwright-1.13.0.tgz#d03fe74294452ad0ec479d7b1bb42b7fea973b28" - integrity sha512-9bT6zkFIcsXwU5OsowIu4HXTPcEe8TVk8I538LJbkZpKIX7RMoUNU3StxK97hYN3P22VONO5yllHJAf3bD13+g== - dependencies: - "@flakiness/flakiness-report" "^0.34.0" - "@flakiness/sdk" "^3.3.1" - -"@flakiness/sdk@^3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@flakiness/sdk/-/sdk-3.3.1.tgz#dfb1b6d62f3ff3ff9f4a1e573761227ae3e6a3a2" - integrity sha512-LrV+g246Oo9MSpVKU9bY/UHOYglwcqr0e4I6Vz0RGhHtOyrR2xZRCVzsM4crItDvNbIW4/9AJSRwQ5nptCykvw== - dependencies: - debug "^4.4.3" - open "^10.2.0" - stable-hash "^0.0.6" - which "^6.0.1" - zod "^4.3.5" + version "1.15.0" + resolved "https://registry.yarnpkg.com/@flakiness/playwright/-/playwright-1.15.0.tgz#fa1f3049032982ad5967655da298bb05d611cc06" + integrity sha512-t7/q+MhYwN3FYXtymQIB4Z+W8n1Y80CspF8J9gOCS7PFp190YXat3pzleWRWVchsDlYqXCAXyeTLuDct/4/npA== "@floating-ui/core@^1.7.5": version "1.7.5" @@ -1420,130 +1271,130 @@ estree-walker "^2.0.2" picomatch "^4.0.2" -"@rollup/rollup-android-arm-eabi@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.61.1.tgz#ce83f259581a4f5e6255d92902249f0366a15dd3" - integrity sha512-JnBB8MdXj45cajvTuO5FmPlvFVJRQgvrz1uSEl3NwqFnReAPGwb8EanbGi4z2nRaqLzjJSv5/JmycoTKlRZxHA== +"@rollup/rollup-android-arm-eabi@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.2.tgz#5e9849b661c2229cf967a08dbe2dbbe9e8c991e5" + integrity sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg== -"@rollup/rollup-android-arm64@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.61.1.tgz#1a763329ffbc2a19057128ac266a1a46782a5f17" - integrity sha512-Jx2g7iSjw4AOT0HDPHM9RV3GNjRXwybWtSFZiZAYUTjUwjVrYIwq3kBf+LnhqJlzXFAqTAh2F7IGI+O568exPw== +"@rollup/rollup-android-arm64@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.2.tgz#5b0699ee5dd484b222c9ed74aff43c91ea8b17f8" + integrity sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw== -"@rollup/rollup-darwin-arm64@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.61.1.tgz#ff9cffe102d29e052f49e5017fd036142f9bb7ef" - integrity sha512-0F1L/Z3Eqv8mT2n3dCpeO8GcTvHvVqkP5/t6DMsn0KzhYVcg+s7Ncl5DS8qjKYEeio6Az0Gt6nyBORay5qIlCA== +"@rollup/rollup-darwin-arm64@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.2.tgz#8bc52c9d7a3ce8d0533c351a9c935de781daa06f" + integrity sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A== -"@rollup/rollup-darwin-x64@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.61.1.tgz#1ef1e8f5bd16865d8d2f377a58e7622820b3dda3" - integrity sha512-qLttcH871ujY4YcVfUSShhOw+CsoTatYz8gRbHO7Bb92QH059/P0y5do1KMs41fY0BpD2x4AJH/gID0zFiqVKQ== +"@rollup/rollup-darwin-x64@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.2.tgz#ba2ef3e8fb310f0af35588f270cfa5aa96e48764" + integrity sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA== -"@rollup/rollup-freebsd-arm64@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.61.1.tgz#cb7d041010788213879f663d3100c4320c0910d9" - integrity sha512-fUI4RapGE0Oh3mb8mgfvC1O2nU1RpDZUKnDQm3xB1Ipg7C2wTs5Kstz7G2uWK99a8S2yTMq8/P4uycwNa0nJyw== +"@rollup/rollup-freebsd-arm64@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.2.tgz#93b10bdbfe8ada226b8bc0c02ef6b7f544474d96" + integrity sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw== -"@rollup/rollup-freebsd-x64@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.61.1.tgz#25d4b4d7e52bb1a144fd130209732e5d0518251a" - integrity sha512-H5YrdvJaDtI/U9/emrD4b++xkvp3y/JvOe4rizHbxvkyMfRS/CiRYdji+Pl8D0brEaNFWUh1drQxgAGIl6Xudw== +"@rollup/rollup-freebsd-x64@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.2.tgz#3e8aa38ef3c9c300946871e3fdbb0c30e0a20f86" + integrity sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg== -"@rollup/rollup-linux-arm-gnueabihf@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.61.1.tgz#9569a8dd884a22950df4461de8b26c750390531c" - integrity sha512-Q8CBCCQtDFrYtXoeUXSrnFXKOnyUhx6bz+SkL6A0E7V8kAiCJ5pamq1WtbfpVGhR5TSpXY6ak3avmDc5fHTyJA== +"@rollup/rollup-linux-arm-gnueabihf@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.2.tgz#1d7994384bb0ad1bc41921b506e1642d4f9d7fc3" + integrity sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg== -"@rollup/rollup-linux-arm-musleabihf@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.61.1.tgz#33d0080b8cce62df8c3e6240875abf0d6c125cda" - integrity sha512-nwnhk1581l0FBVellGcVCAT0Oi06onEA3WB53sf01VO3I0UPBkMH9sXONYME2K0ovXcNayJfNtHfm6mpJElatQ== +"@rollup/rollup-linux-arm-musleabihf@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.2.tgz#a6540f47cf844a56b80ca9ff95d2acdfb2cef97b" + integrity sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA== -"@rollup/rollup-linux-arm64-gnu@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.61.1.tgz#9c66a9b4d1746595680eec691e136f8efcfe3d78" - integrity sha512-x5Xr49hwt3hdW75UOZm3395YwwzPyauktslv29KpWL/T+vVAzoT3azLcTWv0eMciBNrx+DYjH4paehHoLpPvpg== +"@rollup/rollup-linux-arm64-gnu@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.2.tgz#404f2045651840cbf48da91ba6d0f490f0bc2cbf" + integrity sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA== -"@rollup/rollup-linux-arm64-musl@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.61.1.tgz#e37aa97039af9dbb76a324148db06c6266acc9a0" - integrity sha512-unMS3H73DpaoPyyEVPjGKleM/s0mkmsauTENpw4INQY8y4+IuLNjkueQ5QCtC0D3N38Y38yhAU8OoZ20S2Tm6w== +"@rollup/rollup-linux-arm64-musl@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.2.tgz#a3404ffddf7b474b48c99b9c893b6247bb765ba5" + integrity sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ== -"@rollup/rollup-linux-loong64-gnu@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.61.1.tgz#22951f5686b653968619d21a02b2572d5cbe51dc" - integrity sha512-zNZzGRnAhwjFEYmvphJRV5XaQGjs62cCmeYYHUT//NbvEnHauw+I85nGG+SiVg5ld4GX8D1IbKIX+ozITQnhMQ== +"@rollup/rollup-linux-loong64-gnu@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.2.tgz#e8aac6d549b377945e349882f199b7c8eb75ca38" + integrity sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg== -"@rollup/rollup-linux-loong64-musl@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.61.1.tgz#778c983d0050792d85a62e2c74009fff821e5606" - integrity sha512-LdpWGL8X209B2SIvWjqlc8VZgM6PKfontSerGepuldQmHYrAOtnMCXeJkxXGbC+PPZVOuu5czJo7fNV6aeW8rQ== +"@rollup/rollup-linux-loong64-musl@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.2.tgz#6e2e44ea50310b3a582078a915e5feb879c820d4" + integrity sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ== -"@rollup/rollup-linux-ppc64-gnu@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.61.1.tgz#74f34764b688a6081c8f75e155b58d2cdb39112f" - integrity sha512-EC5kTtNaNGOmbMGqar8dvJy6y/hg99GAwjfBz++pxZhQATXGcRjd6c5en5wcbru0vkRmiMGsQKdMJOOf6sza4g== +"@rollup/rollup-linux-ppc64-gnu@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.2.tgz#6898302da6d77a0537cde64b2b4c6b60659bd110" + integrity sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A== -"@rollup/rollup-linux-ppc64-musl@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.61.1.tgz#821ccda4531dcdb42e56adddc178907615a6da07" - integrity sha512-8hiwp6D4acEcNK78I4rP0/XtS1sknWIAMJBPdR4l6zUtyTm5KiTDr5bXmWt4foY7nAN7AThDHgkLIEZOWKbzWw== +"@rollup/rollup-linux-ppc64-musl@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.2.tgz#333717c95dd5a66bef8f63e7ef8a9fd845fd18d0" + integrity sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w== -"@rollup/rollup-linux-riscv64-gnu@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.61.1.tgz#849fa5c6b43fc6c4d257671fcebd701fe6947bd6" - integrity sha512-10dh/h/BqA7DuMPWSxkR8uks18FRwnwOEqr5zOTEl+NOwP/OMzKX8OFR/Of9xxDA7D5qef1Nzar5WDD2kCCr1g== +"@rollup/rollup-linux-riscv64-gnu@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.2.tgz#81bc06ba380352004d01f4826eb7cdccefa05bad" + integrity sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg== -"@rollup/rollup-linux-riscv64-musl@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.61.1.tgz#80a8711af6c316ce448b93294c4a0891c2ddacbe" - integrity sha512-YKJ5lg35DP17gcAOggnihe+APw9HLyj1Xn7gsmGumBJAUDa6NGXNixJzmkWLhcK9TOuuyQjdamzvJefkO7qHZQ== +"@rollup/rollup-linux-riscv64-musl@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.2.tgz#95a7cd39de21389ad6788a5284eaaa738e29ca4c" + integrity sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q== -"@rollup/rollup-linux-s390x-gnu@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.61.1.tgz#90acba54363c128b73dbb310642b977b5e6b9daa" - integrity sha512-Mlil5G2Jj6a7B3LWGctg+XPL9vdXYuzCtNXfxOQ0nPjc2m6ueUktocPGH9bnAM0bNRKb/bAWTujUU7IJQdQA+g== +"@rollup/rollup-linux-s390x-gnu@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.2.tgz#06e6db2ec1bc48b5374c7923ef83c2eb024b2452" + integrity sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg== -"@rollup/rollup-linux-x64-gnu@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.61.1.tgz#32085c3f532c59269824ed9239e13f5acbe182b9" - integrity sha512-bVWIOIk6pV01p4CdUbPP7CJ/434z+OooYjDuFcR+44N35YvKUC66G8MGnvcWx5mWKW3g61J+t74l3Kj15Kwn2Q== +"@rollup/rollup-linux-x64-gnu@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.2.tgz#5dc818988285e09e88790c6462def72413df2da3" + integrity sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A== -"@rollup/rollup-linux-x64-musl@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.61.1.tgz#becf0e9e29d77e7d04de841bda635e9f73b89dfb" - integrity sha512-qy5pBvZbqNFheBz61R1rzsezjm0J7O2oNGoWtGoY89SZYLUfxAJTBAqDChqAIdB4rCiIbi9nF7yZ83GnNiLwSw== +"@rollup/rollup-linux-x64-musl@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.2.tgz#2080f4a93349e9afd34be6fc1a37e01fc8bfc80f" + integrity sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg== -"@rollup/rollup-openbsd-x64@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.61.1.tgz#d8478e23a575745f0febbde0867a133cf29fe164" - integrity sha512-E83TXjI4zm0+5f2qO+UOudaCYIhYwpJ5jq6YCZNIZ+6CbfhKrkAGezeiASBL9ElxAxFsRS9ZhESv8mfnj6TKeg== +"@rollup/rollup-openbsd-x64@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.2.tgz#21d64a8acb66221724b923e51af5333df1af044b" + integrity sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg== -"@rollup/rollup-openharmony-arm64@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.61.1.tgz#b367bc49355b7ec2508cbad970721ac78b41bf0c" - integrity sha512-fbWnKqVkjrJN38vNe3ahkbk6iejS/3b0Nt7EEtPpE6RBacZcGXNKbzfHN3GUUlXOPghUg0j6XUGrtjX9z1sIvA== +"@rollup/rollup-openharmony-arm64@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.2.tgz#8e0fcd9d02141e337b4c5b5cff576cb9a76b1ba0" + integrity sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA== -"@rollup/rollup-win32-arm64-msvc@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.61.1.tgz#d7be3478b45d6434d13cbe62cce29c4fb6366948" - integrity sha512-ArMl38iVAbk0New1ogihQNY6iphLi4ZaRsa037gUzv5yeKPY8TD3Dmy4x2RNC1VztU/uqm+G+/RwFrSka3Oy2g== +"@rollup/rollup-win32-arm64-msvc@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.2.tgz#bdb4cc4efd58efe808203347f0f5463f0ea16e52" + integrity sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg== -"@rollup/rollup-win32-ia32-msvc@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.61.1.tgz#7ec5801739cae3bf119f419b77a10cb0dc49f40f" - integrity sha512-0mYtjHS9ucAbcATycCNK9IGBk/cCe/ma7EmSLGZdsxnOA8cjRIyU04wDpVAD9NiOfLUR9KTxdiO53uOkherqjQ== +"@rollup/rollup-win32-ia32-msvc@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.2.tgz#dbaebde5afd24eae0eefe915d901632e7cb59860" + integrity sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q== -"@rollup/rollup-win32-x64-gnu@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.61.1.tgz#94a83572bf151772d945ffd4777ded305cd8c346" - integrity sha512-gK1iCEPfpoSG9wfBihXxvBMi8ZfcWffYkEsC/Eih+iFENTaewvNcrEQ69lIOWYO5pePHKLHHO7nq5AILGO/HQQ== +"@rollup/rollup-win32-x64-gnu@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.2.tgz#84109e85fea5f8f1353499f96578fdc2a0e8b138" + integrity sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg== -"@rollup/rollup-win32-x64-msvc@4.61.1": - version "4.61.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.61.1.tgz#cb98a579ab6eec9940bda7a736df5e2b94eb0a27" - integrity sha512-X+zaP2x+j4RXGfbp/seSoRHWnPxzApilDszisZxbYH5C/jTxFhCtDNdPGZb9lJyYPs24wGxruPF7Y+sIXt9Gzw== +"@rollup/rollup-win32-x64-msvc@4.62.2": + version "4.62.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.2.tgz#3671ce3f9b928d5c01f879792d5c0b60ae14d4ad" + integrity sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA== "@sentry-internal/browser-utils@10.57.0": version "10.57.0" @@ -2065,13 +1916,6 @@ archy@^1.0.0: resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -2093,9 +1937,9 @@ attr-accept@^2.2.4: integrity sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ== axios@^1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.17.0.tgz#ae5a1164a4f719942cd73c67e6a3f62d3ccb8f2b" - integrity sha512-J8SwNxprqqpbfenehxWYXE7CW+wM1BB4w3+N+g+/Wx40xM4rsLrfPmHHxSWIxJLYDgSY/HqlFPIYb2/S3rxafw== + version "1.18.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.18.1.tgz#d63f9863bcd8938815c86f9e2abd380189d96dfe" + integrity sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g== dependencies: follow-redirects "^1.16.0" form-data "^4.0.5" @@ -2122,9 +1966,9 @@ base64-js@^1.3.1: integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== baseline-browser-mapping@^2.10.12: - version "2.10.35" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.35.tgz#f0f2232e0de2d2f82cc491bcf830b05ed05937c6" - integrity sha512-honAfLBde0HAFLdNyBEfuuENkF6zR+ozxqxa/2zJKHBe1qzLqyTSeRKpdPEHAP03rlDGyQOPnCSxnVpVqQo9Mg== + version "2.10.38" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.38.tgz#c84d093c4bf7325c5053c279d90f153c66526042" + integrity sha512-31/02mVB4yuQU6adKk5SlY6m+mxDwUq5KZkyYgnLrrKl7TEm1+3PyDtDBz2kOv/wxZz41GHsvV1A/u6RmiyBvw== before-after-hook@^4.0.0: version "4.0.0" @@ -2178,13 +2022,6 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -bundle-name@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" - integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== - dependencies: - run-applescript "^7.0.0" - cac@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/cac/-/cac-7.0.0.tgz#7dda83da2268f75f840ab89ac3bcc36c120a78da" @@ -2229,9 +2066,9 @@ camelize@^1.0.0: integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== caniuse-lite@^1.0.30001782: - version "1.0.30001797" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001797.tgz#1332709e1439f01ff92085dd17001e0a45897ec0" - integrity sha512-l8xKG+gwAIExZGl9FrF7KUwuOmk6wbEPC9Xoy/RtnWv1XG0Q4LFlagaLpUv3Kiza3W/wm27zy0yWJEieYKAP6w== + version "1.0.30001799" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz#5c909138c27f1a61219d3e092071c1cc7d32dc55" + integrity sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw== chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0: version "4.1.2" @@ -2533,7 +2370,7 @@ dayjs@^1.11.21: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.21.tgz#57f87562e62de76f3c704bd2b8d522fc33068eb2" integrity sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA== -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.4.0, debug@^4.4.3: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.4.0: version "4.4.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== @@ -2565,19 +2402,6 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -default-browser-id@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.1.tgz#f7a7ccb8f5104bf8e0f71ba3b1ccfa5eafdb21e8" - integrity sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q== - -default-browser@^5.2.1: - version "5.5.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.5.0.tgz#2792e886f2422894545947cc80e1a444496c5976" - integrity sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw== - dependencies: - bundle-name "^4.1.0" - default-browser-id "^5.0.0" - default-require-extensions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-3.0.1.tgz#bfae00feeaeada68c2ae256c62540f60b80625bd" @@ -2592,11 +2416,6 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -2648,9 +2467,9 @@ easymde@^2.21.0: marked "^4.1.0" electron-to-chromium@^1.5.328: - version "1.5.370" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.370.tgz#47dbc6565e5f13991a483e10cddff4bf0933de96" - integrity sha512-D5tSHJReAb/Kf3Hu9F/GO4lJuSWzEWHwvQ/kKSUP7pimNgvxkSKj+gUQhHpKKACwrin7rS3byU7IxreF56rl5g== + version "1.5.375" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.375.tgz#54a9a616dc2b3765e7263d98d14c2135408954d9" + integrity sha512-ZWP5eB4BVPW/ZYo9252hQZHZ5XavtsTgpbhcmMmRwymavC5AsLWQWBPaKMeNd2LW0KGby5HPXvj7+sr4ta5j/Q== embla-carousel-react@^8.6.0: version "8.6.0" @@ -2729,69 +2548,37 @@ es6-error@^4.0.1: resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== -esbuild@^0.25.0, esbuild@^0.25.1: - version "0.25.12" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.12.tgz#97a1d041f4ab00c2fce2f838d2b9969a2d2a97a5" - integrity sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg== +esbuild@^0.25.1, esbuild@^0.27.0, esbuild@^0.28, "esbuild@npm:esbuild@>=0.17.6 <0.29.0": + version "0.28.1" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.28.1.tgz#ef45b4634c9c9d97a296aea4114a5f9840f95578" + integrity sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw== optionalDependencies: - "@esbuild/aix-ppc64" "0.25.12" - "@esbuild/android-arm" "0.25.12" - "@esbuild/android-arm64" "0.25.12" - "@esbuild/android-x64" "0.25.12" - "@esbuild/darwin-arm64" "0.25.12" - "@esbuild/darwin-x64" "0.25.12" - "@esbuild/freebsd-arm64" "0.25.12" - "@esbuild/freebsd-x64" "0.25.12" - "@esbuild/linux-arm" "0.25.12" - "@esbuild/linux-arm64" "0.25.12" - "@esbuild/linux-ia32" "0.25.12" - "@esbuild/linux-loong64" "0.25.12" - "@esbuild/linux-mips64el" "0.25.12" - "@esbuild/linux-ppc64" "0.25.12" - "@esbuild/linux-riscv64" "0.25.12" - "@esbuild/linux-s390x" "0.25.12" - "@esbuild/linux-x64" "0.25.12" - "@esbuild/netbsd-arm64" "0.25.12" - "@esbuild/netbsd-x64" "0.25.12" - "@esbuild/openbsd-arm64" "0.25.12" - "@esbuild/openbsd-x64" "0.25.12" - "@esbuild/openharmony-arm64" "0.25.12" - "@esbuild/sunos-x64" "0.25.12" - "@esbuild/win32-arm64" "0.25.12" - "@esbuild/win32-ia32" "0.25.12" - "@esbuild/win32-x64" "0.25.12" - -"esbuild@npm:esbuild@>=0.17.6 <0.29.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.28.0.tgz#5dee347ffb3e3874212a35a69836b077b1ce6d96" - integrity sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw== - optionalDependencies: - "@esbuild/aix-ppc64" "0.28.0" - "@esbuild/android-arm" "0.28.0" - "@esbuild/android-arm64" "0.28.0" - "@esbuild/android-x64" "0.28.0" - "@esbuild/darwin-arm64" "0.28.0" - "@esbuild/darwin-x64" "0.28.0" - "@esbuild/freebsd-arm64" "0.28.0" - "@esbuild/freebsd-x64" "0.28.0" - "@esbuild/linux-arm" "0.28.0" - "@esbuild/linux-arm64" "0.28.0" - "@esbuild/linux-ia32" "0.28.0" - "@esbuild/linux-loong64" "0.28.0" - "@esbuild/linux-mips64el" "0.28.0" - "@esbuild/linux-ppc64" "0.28.0" - "@esbuild/linux-riscv64" "0.28.0" - "@esbuild/linux-s390x" "0.28.0" - "@esbuild/linux-x64" "0.28.0" - "@esbuild/netbsd-arm64" "0.28.0" - "@esbuild/netbsd-x64" "0.28.0" - "@esbuild/openbsd-arm64" "0.28.0" - "@esbuild/openbsd-x64" "0.28.0" - "@esbuild/openharmony-arm64" "0.28.0" - "@esbuild/sunos-x64" "0.28.0" - "@esbuild/win32-arm64" "0.28.0" - "@esbuild/win32-ia32" "0.28.0" - "@esbuild/win32-x64" "0.28.0" + "@esbuild/aix-ppc64" "0.28.1" + "@esbuild/android-arm" "0.28.1" + "@esbuild/android-arm64" "0.28.1" + "@esbuild/android-x64" "0.28.1" + "@esbuild/darwin-arm64" "0.28.1" + "@esbuild/darwin-x64" "0.28.1" + "@esbuild/freebsd-arm64" "0.28.1" + "@esbuild/freebsd-x64" "0.28.1" + "@esbuild/linux-arm" "0.28.1" + "@esbuild/linux-arm64" "0.28.1" + "@esbuild/linux-ia32" "0.28.1" + "@esbuild/linux-loong64" "0.28.1" + "@esbuild/linux-mips64el" "0.28.1" + "@esbuild/linux-ppc64" "0.28.1" + "@esbuild/linux-riscv64" "0.28.1" + "@esbuild/linux-s390x" "0.28.1" + "@esbuild/linux-x64" "0.28.1" + "@esbuild/netbsd-arm64" "0.28.1" + "@esbuild/netbsd-x64" "0.28.1" + "@esbuild/openbsd-arm64" "0.28.1" + "@esbuild/openbsd-x64" "0.28.1" + "@esbuild/openharmony-arm64" "0.28.1" + "@esbuild/sunos-x64" "0.28.1" + "@esbuild/win32-arm64" "0.28.1" + "@esbuild/win32-ia32" "0.28.1" + "@esbuild/win32-x64" "0.28.1" escalade@^3.2.0: version "3.2.0" @@ -2822,11 +2609,6 @@ espree@^11.2.0: acorn-jsx "^5.3.2" eslint-visitor-keys "^5.0.1" -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - estree-walker@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" @@ -2860,7 +2642,7 @@ fast-equals@^4.0.3: resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-4.0.3.tgz#72884cc805ec3c6679b99875f6b7654f39f0e8c7" integrity sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg== -fdir@^6.4.3, fdir@^6.4.4, fdir@^6.5.0: +fdir@^6.4.3, fdir@^6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== @@ -3181,11 +2963,6 @@ is-core-module@^2.16.1: dependencies: hasown "^2.0.3" -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3203,13 +2980,6 @@ is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" @@ -3245,23 +3015,11 @@ is-windows@^1.0.2: resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-wsl@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.1.tgz#327897b26832a3eb117da6c27492d04ca132594f" - integrity sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw== - dependencies: - is-inside-container "^1.0.0" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isexe@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-4.0.0.tgz#48f6576af8e87a18feb796b7ed5e2e5903b43dca" - integrity sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw== - istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" @@ -3366,15 +3124,7 @@ js-sha256@^0.10.1: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1: - version "3.14.2" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.2.tgz#77485ce1dd7f33c061fd1b16ecea23b55fcb04b0" - integrity sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.1.0: +js-yaml@^3.13.1, js-yaml@^4, js-yaml@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.2.0.tgz#2bd9e85682dd91bd469afb809d816043b3d49524" integrity sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw== @@ -3628,9 +3378,9 @@ ms@^2.1.3: integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== nanoid@^3.3.12: - version "3.3.12" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.12.tgz#ab3d912e217a6d0a514f00a72a16543a28982c05" - integrity sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ== + version "3.3.15" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.15.tgz#36c490fad8c6e86c824c940dfdde999b69ed4316" + integrity sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA== node-preload@^0.2.1: version "0.2.1" @@ -3704,16 +3454,6 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -open@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/open/-/open-10.2.0.tgz#b9d855be007620e80b6fb05fac98141fe62db73c" - integrity sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA== - dependencies: - default-browser "^5.2.1" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - wsl-utils "^0.1.0" - ora@^5.1.0: version "5.4.1" resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" @@ -3928,7 +3668,7 @@ postcss-value-parser@^4.0.2: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.5.3: +postcss@^8.5.6: version "8.5.15" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.15.tgz#d1eaf677a324e9ec02196da2d3fecf4a0b9a735c" integrity sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A== @@ -4297,45 +4037,40 @@ rollup-plugin-license@^3.7.1: spdx-expression-validate "^2.0.0" spdx-satisfies "^5.0.1" -rollup@^4.34.9, rollup@^4.61.1: - version "4.61.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.61.1.tgz#4a053204912e9083e51cb3a0bf02ffdc397264fb" - integrity sha512-I4KW6iuRpuu2uHBLraZ1wNZe0DP7lnRha+VJ9tNaYVaVgKhW0aI3h4RYnoRPeql0flHm/Co55b7snEDcOfOJrA== +rollup@^4.43.0, rollup@^4.61.1: + version "4.62.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.62.2.tgz#d90fc4cb811f071303c890b779595634f35f9541" + integrity sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA== dependencies: "@types/estree" "1.0.9" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.61.1" - "@rollup/rollup-android-arm64" "4.61.1" - "@rollup/rollup-darwin-arm64" "4.61.1" - "@rollup/rollup-darwin-x64" "4.61.1" - "@rollup/rollup-freebsd-arm64" "4.61.1" - "@rollup/rollup-freebsd-x64" "4.61.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.61.1" - "@rollup/rollup-linux-arm-musleabihf" "4.61.1" - "@rollup/rollup-linux-arm64-gnu" "4.61.1" - "@rollup/rollup-linux-arm64-musl" "4.61.1" - "@rollup/rollup-linux-loong64-gnu" "4.61.1" - "@rollup/rollup-linux-loong64-musl" "4.61.1" - "@rollup/rollup-linux-ppc64-gnu" "4.61.1" - "@rollup/rollup-linux-ppc64-musl" "4.61.1" - "@rollup/rollup-linux-riscv64-gnu" "4.61.1" - "@rollup/rollup-linux-riscv64-musl" "4.61.1" - "@rollup/rollup-linux-s390x-gnu" "4.61.1" - "@rollup/rollup-linux-x64-gnu" "4.61.1" - "@rollup/rollup-linux-x64-musl" "4.61.1" - "@rollup/rollup-openbsd-x64" "4.61.1" - "@rollup/rollup-openharmony-arm64" "4.61.1" - "@rollup/rollup-win32-arm64-msvc" "4.61.1" - "@rollup/rollup-win32-ia32-msvc" "4.61.1" - "@rollup/rollup-win32-x64-gnu" "4.61.1" - "@rollup/rollup-win32-x64-msvc" "4.61.1" + "@rollup/rollup-android-arm-eabi" "4.62.2" + "@rollup/rollup-android-arm64" "4.62.2" + "@rollup/rollup-darwin-arm64" "4.62.2" + "@rollup/rollup-darwin-x64" "4.62.2" + "@rollup/rollup-freebsd-arm64" "4.62.2" + "@rollup/rollup-freebsd-x64" "4.62.2" + "@rollup/rollup-linux-arm-gnueabihf" "4.62.2" + "@rollup/rollup-linux-arm-musleabihf" "4.62.2" + "@rollup/rollup-linux-arm64-gnu" "4.62.2" + "@rollup/rollup-linux-arm64-musl" "4.62.2" + "@rollup/rollup-linux-loong64-gnu" "4.62.2" + "@rollup/rollup-linux-loong64-musl" "4.62.2" + "@rollup/rollup-linux-ppc64-gnu" "4.62.2" + "@rollup/rollup-linux-ppc64-musl" "4.62.2" + "@rollup/rollup-linux-riscv64-gnu" "4.62.2" + "@rollup/rollup-linux-riscv64-musl" "4.62.2" + "@rollup/rollup-linux-s390x-gnu" "4.62.2" + "@rollup/rollup-linux-x64-gnu" "4.62.2" + "@rollup/rollup-linux-x64-musl" "4.62.2" + "@rollup/rollup-openbsd-x64" "4.62.2" + "@rollup/rollup-openharmony-arm64" "4.62.2" + "@rollup/rollup-win32-arm64-msvc" "4.62.2" + "@rollup/rollup-win32-ia32-msvc" "4.62.2" + "@rollup/rollup-win32-x64-gnu" "4.62.2" + "@rollup/rollup-win32-x64-msvc" "4.62.2" fsevents "~2.3.2" -run-applescript@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.1.0.tgz#2e9e54c4664ec3106c5b5630e249d3d6595c4911" - integrity sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q== - safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" @@ -4352,9 +4087,9 @@ semver@^6.0.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.5.3, semver@^7.5.4: - version "7.8.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.3.tgz#c350de61c2a1ddbc96d7fae3e5b6fcf92d477fbe" - integrity sha512-wnilbGyMxzbY7dNOl7jpKbLSjcfeweJWU5j4+u5qW+6/wuGD9KzIGOyZnQVSBM9E7DtWaaH3CyHkppYrKYoxwg== + version "7.8.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.4.tgz#c73eceebae0616934be8dff28a7fd70757c8e696" + integrity sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA== set-blocking@^2.0.0: version "2.0.0" @@ -4469,16 +4204,6 @@ spdx-satisfies@^5.0.1: spdx-expression-parse "^3.0.0" spdx-ranges "^2.0.0" -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -stable-hash@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/stable-hash/-/stable-hash-0.0.6.tgz#7dd2cb7c71c2526b0d089b6bf0d1fcef38a6f97e" - integrity sha512-0afH4mobqTybYZsXImQRLOjHV4gvOW+92HdUIax9t7a8d9v54KWykEuMVIcXhD9BCi+w3kS4x7O6fmZQ3JlG/g== - string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -4587,7 +4312,7 @@ tiny-invariant@^1.3.3: dependencies: esm "^3.2.25" -tinyglobby@^0.2.13: +tinyglobby@^0.2.15: version "0.2.17" resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.17.tgz#562a9a6c9eb2b3b123d39719f9af5bb44fcd7631" integrity sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g== @@ -4821,17 +4546,17 @@ vite-plugin-istanbul@^9.0.1: source-map "^0.7.6" test-exclude "^8.0.0" -"vite@^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", vite@^6.4.2, vite@^8.0.0: - version "6.4.3" - resolved "https://registry.yarnpkg.com/vite/-/vite-6.4.3.tgz#85a164db7ce706f2a776812efa2b340f1721858e" - integrity sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A== +"vite@^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", vite@^7, vite@^7.0.0, vite@^8.0.0: + version "7.3.5" + resolved "https://registry.yarnpkg.com/vite/-/vite-7.3.5.tgz#90c2d0b7b94a224e7e7dcf22d2912ff0b5291165" + integrity sha512-KuOaNhcnGFN2zIPGA7wRmzF+lJA1sea7rHq17aiJ++9lzY1WWG6Jpwqwe1KNbRVPIqHmr8GLYx7jbrQcN/7/ww== dependencies: - esbuild "^0.25.0" - fdir "^6.4.4" - picomatch "^4.0.2" - postcss "^8.5.3" - rollup "^4.34.9" - tinyglobby "^0.2.13" + esbuild "^0.27.0" + fdir "^6.5.0" + picomatch "^4.0.3" + postcss "^8.5.6" + rollup "^4.43.0" + tinyglobby "^0.2.15" optionalDependencies: fsevents "~2.3.3" @@ -4869,13 +4594,6 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -which@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/which/-/which-6.0.1.tgz#021642443a198fb93b784a5606721cb18cfcbfce" - integrity sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg== - dependencies: - isexe "^4.0.0" - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -4895,13 +4613,6 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -wsl-utils@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/wsl-utils/-/wsl-utils-0.1.0.tgz#8783d4df671d4d50365be2ee4c71917a0557baab" - integrity sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw== - dependencies: - is-wsl "^3.1.0" - y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" @@ -4952,11 +4663,6 @@ zod@^3.22.4: resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.76.tgz#26841c3f6fd22a6a2760e7ccb719179768471e34" integrity sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ== -zod@^4.3.5: - version "4.4.3" - resolved "https://registry.yarnpkg.com/zod/-/zod-4.4.3.tgz#b680f172885d18bbebf21a834ea25e55a1bbf356" - integrity sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ== - zustand@^5.0.14: version "5.0.14" resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.14.tgz#18216c24fcb980cf36898f9c57520e67b1f77855" From 39b74c7e87fe3e4b21441992ee0dc911b8a042c6 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 25 Jun 2026 22:44:32 +1000 Subject: [PATCH 32/40] Skip "many" fields in DataExport (#12255) - Exporting multi-dimensional datasets requires a custom exporter --- src/backend/InvenTree/data_exporter/mixins.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/backend/InvenTree/data_exporter/mixins.py b/src/backend/InvenTree/data_exporter/mixins.py index f40ee113f2..0d58d0efff 100644 --- a/src/backend/InvenTree/data_exporter/mixins.py +++ b/src/backend/InvenTree/data_exporter/mixins.py @@ -99,6 +99,10 @@ class DataExportSerializerMixin: fields.update(self.get_child_fields(name, field)) continue + # Skip 'many' fields (e.g. nested serializers) + if getattr(field, 'many', False): + continue + fields[name] = field return fields From b99b80957f34f850e280d880d52c3eb52d09dd07 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 26 Jun 2026 00:02:50 +1000 Subject: [PATCH 33/40] [UI] Improve revision selector (#12254) - Display upstream revisions too --- src/frontend/src/pages/part/PartDetail.tsx | 23 ++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/frontend/src/pages/part/PartDetail.tsx b/src/frontend/src/pages/part/PartDetail.tsx index af83e85522..38194069b6 100644 --- a/src/frontend/src/pages/part/PartDetail.tsx +++ b/src/frontend/src/pages/part/PartDetail.tsx @@ -218,7 +218,10 @@ export default function PartDetail() { // Fetch information on parts which are revisions of *this* part const partRevisionQuery = useQuery({ refetchOnMount: true, - enabled: revisionsEnabled && !!part && !!part.revision_count, + enabled: + revisionsEnabled && + !!part && + (!!part.revision_count || !!part.revision_of), queryKey: ['part_revisions', part.pk, part.revision_count], queryFn: async () => api @@ -227,7 +230,23 @@ export default function PartDetail() { revision_of: part.pk } }) - .then((response) => response.data) + .then(async (response) => { + let data = response.data; + + // If the part is also a revision, fetch upstream revision information too + if (!!part.revision_of) { + await api + .get(apiUrl(ApiEndpoints.part_list), { + params: { + revision_of: part.revision_of + } + }) + .then((response) => { + data = [...data, ...response.data]; + }); + } + return data; + }) }); const partRevisionOptions: any[] = useMemo(() => { From e847d96a88142485a52f06a195cacd66cce6cd9d Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 26 Jun 2026 08:02:38 +1000 Subject: [PATCH 34/40] Bug fix for exception handler (#12257) --- src/backend/InvenTree/importer/models.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/InvenTree/importer/models.py b/src/backend/InvenTree/importer/models.py index 00f361be02..ce64e0677d 100644 --- a/src/backend/InvenTree/importer/models.py +++ b/src/backend/InvenTree/importer/models.py @@ -6,6 +6,7 @@ from datetime import datetime from typing import Optional from django.contrib.auth.models import User +from django.core.exceptions import FieldDoesNotExist from django.core.exceptions import ValidationError as DjangoValidationError from django.core.validators import FileExtensionValidator from django.db import models @@ -200,7 +201,7 @@ class DataImportSession(models.Model): related_field = model_class._meta.get_field(field_name) model = related_field.remote_field.model return model - except (AttributeError, models.FieldDoesNotExist): + except (AttributeError, FieldDoesNotExist): return None def extract_columns(self) -> None: From 8f73d9291bc5bdda4d58e77c667bf433d4471528 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Fri, 26 Jun 2026 00:04:36 +0200 Subject: [PATCH 35/40] chore(backend): typing fixes (#12247) * bump ty * various fixes * fix settings * bump stubs * update pre-commit setup * update ignore * fix various issues * fix style * fix ignores * fix wrong ty warnings * ignore __class__ type checking errors see https://github.com/astral-sh/ty/issues/3122 * fix exception logging * update ignoring * bump ty further * add cleanup cmd * Merge branch 'master' of https://github.com/inventree/InvenTree into typechecking-remove-ignore * bump ty * remove now unused class ignores --- pyproject.toml | 17 ++++----- src/backend/InvenTree/InvenTree/exceptions.py | 5 +++ .../InvenTree/plugin/broken/broken_file.py | 2 +- src/backend/requirements-dev-3.14.txt | 38 +++++++++---------- src/backend/requirements-dev.txt | 38 +++++++++---------- 5 files changed, 52 insertions(+), 48 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 1bf6587443..1076f0896a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -105,17 +105,16 @@ generate-hashes=true extra-paths = ["src/backend/InvenTree"] [tool.ty.rules] -unresolved-reference="ignore" # 21 # see https://github.com/astral-sh/ty/issues/220 -unresolved-attribute="ignore" # 505 # need Plugin Mixin typing +unresolved-attribute="ignore" # 837 # need Plugin Mixin typing call-non-callable="ignore" # 8 ## -invalid-assignment="ignore" # 17 # need to wait for better django field stubs -invalid-method-override="ignore" # 104 -invalid-return-type="ignore" # 22 ## -# possibly-missing-attribute="ignore" # 25 # https://github.com/astral-sh/ty/issues/164 -unknown-argument="ignore" # 3 # need to wait for better django field stubs +invalid-assignment="ignore" # 40 # need to wait for better django field stubs +invalid-method-override="ignore" # 103 +invalid-return-type="ignore" # 44 ## invalid-argument-type="ignore" # 49 -no-matching-overload="ignore" # 3 # need to wait for betterdjango field stubs -# possibly-unbound-attribute="ignore" # 21 +no-matching-overload="ignore" # 10 # need to wait for betterdjango field stubs + +# warn about unused ignore comments +unused-ignore-comment = "error" [tool.coverage.run] source = ["src/backend/InvenTree", "InvenTree"] diff --git a/src/backend/InvenTree/InvenTree/exceptions.py b/src/backend/InvenTree/InvenTree/exceptions.py index 61bde3b275..597f1f5063 100644 --- a/src/backend/InvenTree/InvenTree/exceptions.py +++ b/src/backend/InvenTree/InvenTree/exceptions.py @@ -25,6 +25,7 @@ def log_error( error_data: Optional[str] = None, scope: Optional[str] = None, plugin: Optional[str] = None, + user_id: Optional[int] = None, ): """Log an error to the database. @@ -37,6 +38,7 @@ def log_error( error_data: The error data (optional, overrides 'data') scope: The scope of the error (optional) plugin: The plugin name associated with this error (optional) + user_id: The user ID associated with this error (optional) """ import InvenTree.ready @@ -71,6 +73,9 @@ def log_error( except AttributeError: data = 'No traceback information available' + if user_id: + data = f'User ID: {user_id}\n{data}' + # Log error to stderr logger.error(info) diff --git a/src/backend/InvenTree/plugin/broken/broken_file.py b/src/backend/InvenTree/plugin/broken/broken_file.py index f56932e876..bf97149aef 100644 --- a/src/backend/InvenTree/plugin/broken/broken_file.py +++ b/src/backend/InvenTree/plugin/broken/broken_file.py @@ -7,4 +7,4 @@ class BrokenFileIntegrationPlugin(InvenTreePlugin): """An very broken plugin.""" -aaa = bb # noqa: F821 +aaa = bb # noqa: F821 # ty:ignore[unresolved-reference] diff --git a/src/backend/requirements-dev-3.14.txt b/src/backend/requirements-dev-3.14.txt index f711289cc9..620f7d574c 100644 --- a/src/backend/requirements-dev-3.14.txt +++ b/src/backend/requirements-dev-3.14.txt @@ -669,25 +669,25 @@ sqlparse==0.5.5 \ # -c src/backend/requirements.txt # django # django-silk -ty==0.0.51 \ - --hash=sha256:08adbe53fb8bc9e7f00e89bf1d3c875a02cda76d83f109d2e6ab1ff35a7bfa8c \ - --hash=sha256:25a5b31e6f23fd5dc63ad29087ded09932409e4154e2fe07bbaed015035990bb \ - --hash=sha256:2faed19a8f1505370de071c008df52a994fc03a204f3267c3a33a32ca26f854f \ - --hash=sha256:429a997394dac73870d71b87cc90efc54da3efaf319e72ca18aeef35a78aef90 \ - --hash=sha256:49a21237f6fd1de56beaff0a3e85fe022a09a3401e67e3abec41ce838a5d4d2e \ - --hash=sha256:608d417cd1eaf79bcbd713d9830d5e3db9d57ec225c3af3e4ac9a9ff66b45d70 \ - --hash=sha256:61b4b6a003c3ebe53a63a1125c9b6542aa01bc1b6c9a235d01ee328d000d61a9 \ - --hash=sha256:62ced5e380284f12b2dc4802a3e4ed3dac39913fc6719afde7978814a4c7f169 \ - --hash=sha256:62d94f06e8c317e89b6884f2bde443040e596b88c7c79bd944c84c105b06257a \ - --hash=sha256:79d1877e93460f936bc10ed1a31525702b7ce51075763ccba993be17f0b9e905 \ - --hash=sha256:947986bd82d324b3a5c58ce03f1dad160cdf36443d3e8f64b3484b861ba9bc64 \ - --hash=sha256:abd92913bc90d1705ef9391ff8c6822b61e2e827fa295eb30bf0dfabcf815645 \ - --hash=sha256:b90172d46365bb9d51a7011cbb5c60cc4f514f42c86635df6c092b717f85e1ac \ - --hash=sha256:bc7459348a253247bbfb2669a021e614281b86bbea24c36112b8a6e1a2499a16 \ - --hash=sha256:c1bd1355aee86af01e4e21b0bc16fc460fb05905761f0d8b8d70841de0feade8 \ - --hash=sha256:cc233a6235fb23e2a44b14731a10043e37ba2f30f2c361cf49ad3633c5b9da9c \ - --hash=sha256:dc5e93695ab5dcbf1eef663aee60ec23a413547cc9cb06adcb0d842e9166bd0f \ - --hash=sha256:f8f52952cff665bc52a36147e610c10f5699d30007d7a14ab7f345cff93476ff +ty==0.0.54 \ + --hash=sha256:01ab9eb8c0802d35ae73fa08e4e037963250ee5ee6aa7ed8c8b994e5495db5ef \ + --hash=sha256:0365ea133d6b028952c22e6412a00da9739bc3b538df3c0a61972bf64d8558f1 \ + --hash=sha256:0de0cf48918609a3996cc2a4e18e8028fc4d2446bb82df822e9737f53bb9afee \ + --hash=sha256:2259e1a1f744a5f20f079dcc4061c1464001c75f255aaca7316e422f8f5e5e09 \ + --hash=sha256:57c7c6c1fcd2aa29cd40117142c0d45a2b0e6c42817ef58ea8dcb5f59d6ea802 \ + --hash=sha256:5a0a764e2261f9292adf14bbc91b9d7ef7ee7c00b8f3d9f2563f19ae3605109b \ + --hash=sha256:651e90094d41c4add3d616e0f2c1c881c6700a2ae3ac191c023c665050ff2cdc \ + --hash=sha256:6a0ce5af9eefe636888377d8ab8ea817239ed96de64fede62c4e5331ae16db5c \ + --hash=sha256:6e43124e6ac4cb9702d99facb28c6b2f2574c8a4b8f59eae2632eef4962e3439 \ + --hash=sha256:7e876c9b5130afc6b6e46035a2eecca9b563b78249030296e1089922428d5415 \ + --hash=sha256:8674617617399d4fdd568b3e3a8f87a913df525c80691d732b0744b571b341c8 \ + --hash=sha256:994ede70fc1b6f0efc29d0f1fc0d819630bed1d2610eac2e9dabb2840f3f3bf9 \ + --hash=sha256:ad329d1942e23ee428948e673b2a50249f27e164220075b0a2ef8169029c8423 \ + --hash=sha256:b1d048df26abb433acc5b3bcef214167c7dc9e3341f8f200a3c59702516a0ed0 \ + --hash=sha256:b6b3cfe174f27744413c898b2488ca52ea76070637095de131698e506b455055 \ + --hash=sha256:dc179be5a070c5dc7785a5e108eece2ab216978a91f91e11661308749a6c28ee \ + --hash=sha256:e949f7bbfa80a9fa00968924028aa673a505faa234b0b9d1241b7d34373eae14 \ + --hash=sha256:f478476f3222807b4d92f15c5298a8c242f2ed17c724da75f4a8c6b522b4f29a # via # -c src/backend/requirements-dev.txt # -r src/backend/requirements-dev.in diff --git a/src/backend/requirements-dev.txt b/src/backend/requirements-dev.txt index de265fdb59..1cbfd6f7ca 100644 --- a/src/backend/requirements-dev.txt +++ b/src/backend/requirements-dev.txt @@ -594,25 +594,25 @@ sqlparse==0.5.5 \ # -c src/backend/requirements.txt # django # django-silk -ty==0.0.51 \ - --hash=sha256:08adbe53fb8bc9e7f00e89bf1d3c875a02cda76d83f109d2e6ab1ff35a7bfa8c \ - --hash=sha256:25a5b31e6f23fd5dc63ad29087ded09932409e4154e2fe07bbaed015035990bb \ - --hash=sha256:2faed19a8f1505370de071c008df52a994fc03a204f3267c3a33a32ca26f854f \ - --hash=sha256:429a997394dac73870d71b87cc90efc54da3efaf319e72ca18aeef35a78aef90 \ - --hash=sha256:49a21237f6fd1de56beaff0a3e85fe022a09a3401e67e3abec41ce838a5d4d2e \ - --hash=sha256:608d417cd1eaf79bcbd713d9830d5e3db9d57ec225c3af3e4ac9a9ff66b45d70 \ - --hash=sha256:61b4b6a003c3ebe53a63a1125c9b6542aa01bc1b6c9a235d01ee328d000d61a9 \ - --hash=sha256:62ced5e380284f12b2dc4802a3e4ed3dac39913fc6719afde7978814a4c7f169 \ - --hash=sha256:62d94f06e8c317e89b6884f2bde443040e596b88c7c79bd944c84c105b06257a \ - --hash=sha256:79d1877e93460f936bc10ed1a31525702b7ce51075763ccba993be17f0b9e905 \ - --hash=sha256:947986bd82d324b3a5c58ce03f1dad160cdf36443d3e8f64b3484b861ba9bc64 \ - --hash=sha256:abd92913bc90d1705ef9391ff8c6822b61e2e827fa295eb30bf0dfabcf815645 \ - --hash=sha256:b90172d46365bb9d51a7011cbb5c60cc4f514f42c86635df6c092b717f85e1ac \ - --hash=sha256:bc7459348a253247bbfb2669a021e614281b86bbea24c36112b8a6e1a2499a16 \ - --hash=sha256:c1bd1355aee86af01e4e21b0bc16fc460fb05905761f0d8b8d70841de0feade8 \ - --hash=sha256:cc233a6235fb23e2a44b14731a10043e37ba2f30f2c361cf49ad3633c5b9da9c \ - --hash=sha256:dc5e93695ab5dcbf1eef663aee60ec23a413547cc9cb06adcb0d842e9166bd0f \ - --hash=sha256:f8f52952cff665bc52a36147e610c10f5699d30007d7a14ab7f345cff93476ff +ty==0.0.54 \ + --hash=sha256:01ab9eb8c0802d35ae73fa08e4e037963250ee5ee6aa7ed8c8b994e5495db5ef \ + --hash=sha256:0365ea133d6b028952c22e6412a00da9739bc3b538df3c0a61972bf64d8558f1 \ + --hash=sha256:0de0cf48918609a3996cc2a4e18e8028fc4d2446bb82df822e9737f53bb9afee \ + --hash=sha256:2259e1a1f744a5f20f079dcc4061c1464001c75f255aaca7316e422f8f5e5e09 \ + --hash=sha256:57c7c6c1fcd2aa29cd40117142c0d45a2b0e6c42817ef58ea8dcb5f59d6ea802 \ + --hash=sha256:5a0a764e2261f9292adf14bbc91b9d7ef7ee7c00b8f3d9f2563f19ae3605109b \ + --hash=sha256:651e90094d41c4add3d616e0f2c1c881c6700a2ae3ac191c023c665050ff2cdc \ + --hash=sha256:6a0ce5af9eefe636888377d8ab8ea817239ed96de64fede62c4e5331ae16db5c \ + --hash=sha256:6e43124e6ac4cb9702d99facb28c6b2f2574c8a4b8f59eae2632eef4962e3439 \ + --hash=sha256:7e876c9b5130afc6b6e46035a2eecca9b563b78249030296e1089922428d5415 \ + --hash=sha256:8674617617399d4fdd568b3e3a8f87a913df525c80691d732b0744b571b341c8 \ + --hash=sha256:994ede70fc1b6f0efc29d0f1fc0d819630bed1d2610eac2e9dabb2840f3f3bf9 \ + --hash=sha256:ad329d1942e23ee428948e673b2a50249f27e164220075b0a2ef8169029c8423 \ + --hash=sha256:b1d048df26abb433acc5b3bcef214167c7dc9e3341f8f200a3c59702516a0ed0 \ + --hash=sha256:b6b3cfe174f27744413c898b2488ca52ea76070637095de131698e506b455055 \ + --hash=sha256:dc179be5a070c5dc7785a5e108eece2ab216978a91f91e11661308749a6c28ee \ + --hash=sha256:e949f7bbfa80a9fa00968924028aa673a505faa234b0b9d1241b7d34373eae14 \ + --hash=sha256:f478476f3222807b4d92f15c5298a8c242f2ed17c724da75f4a8c6b522b4f29a # via -r src/backend/requirements-dev.in types-psycopg2==2.9.21.20260518 \ --hash=sha256:2fd728a4fa3860db0a4a9813e5f49c30ed329b3d2e60e73530d9db01b2b98420 \ From 5d581a35e49f93bf2f0aa36df0419fc6bc0141a6 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Fri, 26 Jun 2026 01:55:36 +0200 Subject: [PATCH 36/40] chore(backend): harden gh setup (#12262) * pin plugin creator version * hard pin install script --- .github/workflows/frontend.yaml | 5 +++-- contrib/container/Dockerfile | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/frontend.yaml b/.github/workflows/frontend.yaml index 2585d982d9..7065f6f054 100644 --- a/.github/workflows/frontend.yaml +++ b/.github/workflows/frontend.yaml @@ -15,6 +15,7 @@ on: env: python_version: 3.12 node_version: 24 + plugin_creator_version: 1.20.0 # The OS version must be set per job server_start_sleep: 60 @@ -153,7 +154,7 @@ jobs: run: cd src/frontend && npx playwright install-deps - name: Install Sample Plugin run: | - pip install -U inventree-plugin-creator + pip install -U inventree-plugin-creator==${{ env.plugin_creator_version }} create-inventree-plugin --default cd MyCustomPlugin && pip install -e . && cd frontend && npm install && npm run translate && npm run build - name: Run Playwright tests @@ -235,7 +236,7 @@ jobs: run: cd src/frontend && npx playwright install-deps - name: Install Sample Plugin run: | - pip install -U inventree-plugin-creator + pip install -U inventree-plugin-creator==${{ env.plugin_creator_version }} create-inventree-plugin --default cd MyCustomPlugin && pip install -e . && cd frontend && npm install && npm run translate && npm run build - name: Playwright [${{ matrix.shard }} / 4] diff --git a/contrib/container/Dockerfile b/contrib/container/Dockerfile index 16418375e6..de1ab6ce8e 100644 --- a/contrib/container/Dockerfile +++ b/contrib/container/Dockerfile @@ -119,7 +119,8 @@ RUN pip install --user --require-hashes -r base_requirements.txt --no-cache-dir rm -rf /root/.cache/pip # Install frontend build dependencies -RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.5/install.sh | bash && \ +# pinned to v0.40.5 +RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/1889911f0841e669de0be5bd02c737a3f1fd20fa/install.sh | bash && \ bash -c "export NVM_DIR="$HOME/.nvm" && source $HOME/.nvm/nvm.sh && \ nvm install $NODE_VERSION && corepack enable yarn && yarn config set network-timeout 600000 -g" RUN bash -c "source $HOME/.nvm/nvm.sh && cd '${INVENTREE_HOME}' && invoke int.frontend-compile --extract" From 56679e4b313f0d1e94c701de30bae873ae220052 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Fri, 26 Jun 2026 01:56:01 +0200 Subject: [PATCH 37/40] chore(backend): dep bump (#12258) * general deps bump * cleanup other dep files --- contrib/container/requirements.in | 14 +- contrib/container/requirements.txt | 40 +-- contrib/dev_reqs/requirements.in | 2 +- contrib/dev_reqs/requirements.txt | 6 +- src/backend/requirements-3.14.txt | 415 +++++++++++++------------ src/backend/requirements-dev-3.14.txt | 217 +++++++------ src/backend/requirements-dev.txt | 217 +++++++------ src/backend/requirements.in | 11 +- src/backend/requirements.txt | 418 +++++++++++++------------- 9 files changed, 650 insertions(+), 690 deletions(-) diff --git a/contrib/container/requirements.in b/contrib/container/requirements.in index 932b942c3d..1e29f27b0d 100644 --- a/contrib/container/requirements.in +++ b/contrib/container/requirements.in @@ -1,18 +1,18 @@ # Base python requirements for docker containers # Basic package requirements -invoke>=2.2.0 # Invoke build tool -pyyaml>=6.0.1 -setuptools>=69.0.0 -wheel>=0.41.0 +invoke # Invoke build tool +pyyaml +setuptools +wheel # Database links psycopg[binary, pool] -mysqlclient>=2.2.0 -mariadb>=1.1.8 +mysqlclient +mariadb # gunicorn web server -gunicorn>=22.0.0 +gunicorn # LDAP required packages django-auth-ldap # Django integration for ldap auth diff --git a/contrib/container/requirements.txt b/contrib/container/requirements.txt index 066208a24c..53d6a48a72 100644 --- a/contrib/container/requirements.txt +++ b/contrib/container/requirements.txt @@ -236,26 +236,26 @@ typing-extensions==4.15.0 \ # via # -c src/backend/requirements.txt # psycopg-pool -uv==0.11.23 \ - --hash=sha256:03fbb0a1c7b6d15e96778bdd79e8d1826c6259fea17fc13337fb0744136953f2 \ - --hash=sha256:3a900c8fd757f8c3da9dc5532d9a22d30540e91fdefd63c93909fedbfd756655 \ - --hash=sha256:576d776a1ca62e3d8aba99f0d8ec607db91a5ebaf52feaff820f28ed820e1665 \ - --hash=sha256:61e6bd7e7f0fe24f103540ba19516443bea6e689022c787217310a1e64558e3f \ - --hash=sha256:6d7cea7d9ade3c1c3e3db1dfcc23d335bceaabf38f51e442b6f57f8f7885a9a6 \ - --hash=sha256:7a85330de0a7eb0d5c6cf03c80edfb86facad19df367a0b52fc906db1ab15ce9 \ - --hash=sha256:91d19c4249d7437b69b91c385134360d7ed9d0ee2e2e83e81d369867151e78c2 \ - --hash=sha256:985aa93c9d6223e32fc747e09662537c4073c9ebef59c0a4fd7c6949d1d24fb3 \ - --hash=sha256:9dd412127cbe0e115bd3fc5c6cbe9cf59f593273fafab9f7dc6b2ac95efcc7c1 \ - --hash=sha256:ac337dacd640aab1ef97cf00f8c01e2889f0fd0ef8460a0f4e816bf12bb5988b \ - --hash=sha256:b3f515fd6b43068f241467496bced62cb2ed36d52d4c0877cfe61a1240713d32 \ - --hash=sha256:b8abe7d6f5e0d92bd41a9c000bbd9c8387af7886df4790c0451a34e781b8a075 \ - --hash=sha256:bbc41182d655f92cd380ecdf378da7fc1598c6b19057208f450f0ee9c259f46a \ - --hash=sha256:c2089b992919858dabae89d410cbb5cecf9034d26bbb04f14e6da52dffced290 \ - --hash=sha256:ca1d37e851fb9323250385403d8512a71c0d1b6162c729ff4909f37cfd067920 \ - --hash=sha256:d256f90513d01ff6cbc2f17d88c0ccde65d138500df547ece214e6a50731c4b7 \ - --hash=sha256:d62410e5f60a961cfda00ead8a1cc5fd37d052afda021099e488e90c15419beb \ - --hash=sha256:e7e215d69ea21fd5824a63edf8fef933bee2c028a0c2930651cfa6b88ca4ff8e \ - --hash=sha256:f2476dda35866ea3ded3a5905759da2d32dfac36dfd5b3428191a99a8ce15b02 +uv==0.11.24 \ + --hash=sha256:047d763d20d71968c00f4afec40b0e75d9da7e3693f725b9f502d84a25256893 \ + --hash=sha256:0e100b9cbc59beff2730840ac989b1f100cc03c90514e7cab6992a1f3f13784e \ + --hash=sha256:3176668ea8a2318d775c0d9188661c61ccc36790220724b1d360fcc8945d520e \ + --hash=sha256:356435577fae11fafe7a067ee3269cccefd35b031b83a3a36c87fe9d192bffba \ + --hash=sha256:38f38c9449aafd71dc0fa35e66a8a547ee48947b2f2f94084893c2afe6058cfa \ + --hash=sha256:438f8291fb9daea30a4bd333299b82e6ef755578302745a021162f328cfcfc68 \ + --hash=sha256:48a6123f71b801e0e0b8a38520b011632ad81e0a043445044ce5b1a7b1cec7b6 \ + --hash=sha256:6ecdad43e870f88d3772d9d37e877259ae35ec374d51589805cdcf6196205829 \ + --hash=sha256:79757f90b7765996366b80e77cad13555c7f7e1282ca8d8b686ee21773ab0b77 \ + --hash=sha256:8346b0086d213b80430f3bb4477379a8a4fa550b03447d23c84eee85c2e52bc4 \ + --hash=sha256:8602a1b6300a3a948afacc62e1cb933c8394c27966db85ed7e29483300b69dc4 \ + --hash=sha256:9312b6fd44361674e9c847a828ded792493766697816261e05848a024fe34129 \ + --hash=sha256:bf568c62dddd55ad9c85a16ffdfbcc7746be9c3159ed644e4f9e6f5e44905cbb \ + --hash=sha256:c4ab221c0a949f8006a7582786dae384706b2f82016a0db60baa7cc696042705 \ + --hash=sha256:c8ec3caf656645f58b53cb9aee9aa95cfc65c82ba2d7f1362bfd2660d1484307 \ + --hash=sha256:d6a49543c659c0cf1ff4c944955d97e69dbce4b76e3d284f5a92cea19133ebb6 \ + --hash=sha256:e499579f557abf17b8ffd1490d3e827748aea096f6eaa66737e729e046449f08 \ + --hash=sha256:e7e78c18686202c8b8715bebb83bfaf58f82d7fb848b6a5ae4e925a9fac3de4c \ + --hash=sha256:ed0c9a9d7909f0e48a9dafe666ca9ebefe2a1534e51ed05c0a7de7406465f868 # via -r contrib/container/requirements.in wheel==0.47.0 \ --hash=sha256:212281cab4dff978f6cedd499cd893e1f620791ca6ff7107cf270781e587eced \ diff --git a/contrib/dev_reqs/requirements.in b/contrib/dev_reqs/requirements.in index bb389b1af7..115b23c47f 100644 --- a/contrib/dev_reqs/requirements.in +++ b/contrib/dev_reqs/requirements.in @@ -1,4 +1,4 @@ # Packages needed for CI/packages requests==2.34.2 pyyaml==6.0.3 -jc==1.25.6 +jc diff --git a/contrib/dev_reqs/requirements.txt b/contrib/dev_reqs/requirements.txt index 916e1453b7..d5a831592b 100644 --- a/contrib/dev_reqs/requirements.txt +++ b/contrib/dev_reqs/requirements.txt @@ -145,9 +145,9 @@ idna==3.18 \ # via # -c src/backend/requirements.txt # requests -jc==1.25.6 \ - --hash=sha256:27f58befc7ae0a4c63322926c5f1ec892e3eac4a065eff3b07cfe420a6924a07 \ - --hash=sha256:7367b59e6e0da8babeede1e5b0da083f3c5aa6b6e585b4aed28dd7c4b2d76162 +jc==1.25.7 \ + --hash=sha256:5ed6a0da915c931c04693cab806d5c31d9ef14ca998c6c32308460d37cb30baf \ + --hash=sha256:63481e34d92715781e1b094eca7d76d122a14489463d45b7f3e8180f44ea3a10 # via -r contrib/dev_reqs/requirements.in pygments==2.20.0 \ --hash=sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f \ diff --git a/src/backend/requirements-3.14.txt b/src/backend/requirements-3.14.txt index 55035af0c8..ecedc0c601 100644 --- a/src/backend/requirements-3.14.txt +++ b/src/backend/requirements-3.14.txt @@ -101,16 +101,16 @@ blessed==1.44.0 \ # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -boto3==1.43.34 \ - --hash=sha256:42595057324606928c6e2432b3093978e4d722e0d432bce942f2a385702c0a43 \ - --hash=sha256:444207c6c883d4df3ea3b2c36df43ad492b86e0b889eebd2fc1d5ea8db0a8a1a +boto3==1.43.36 \ + --hash=sha256:42942dde254673abcbc9e6e60017c88341a4f49d99d24e1f2e290fb38138c26f \ + --hash=sha256:587d7ee92a12e440ad12b0e7f11f3358f0c4d65b19f64726efc94aaf194aff28 # via # -c src/backend/requirements.txt # django-anymail # django-storages -botocore==1.43.34 \ - --hash=sha256:238a0269f33c5914b9343900b44767e783b3e8b6dcb6e065eac8b4495601c5df \ - --hash=sha256:ccc973cf30c6445b30afe5760f6dc949a80f1f862cb23d9c45747f2c814ece77 +botocore==1.43.36 \ + --hash=sha256:3c65fdc39ed01d8dfde1e961b34038aed03c459f8ddf80717a12ac006475e49d \ + --hash=sha256:4cae47d1b2d426316b85a0087d9e69e048f13bc003b5177d74639fe9dfd28205 # via # -c src/backend/requirements.txt # boto3 @@ -961,9 +961,9 @@ gunicorn==26.0.0 \ # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -icalendar==7.1.3 \ - --hash=sha256:690f30aa50a76cbf854db5ad52654705db9c5cd0e1b152222f5d4b7854b60667 \ - --hash=sha256:eb03a0e215f30db689a72c49f18f998aabf17522eb0858a293c393510850727c +icalendar==7.2.0 \ + --hash=sha256:32dacc396101825b82f9f1bbdf691c02be613130d5ab7a457e553fcd20959fdd \ + --hash=sha256:77922b6be57dfcc2e94f93063d2fd7e948ada9b5bdf7b08bebbc684b1b66c7c4 # via # -c src/backend/requirements.txt # django-ical @@ -1023,9 +1023,9 @@ jsonschema-specifications==2025.9.1 \ # via # -c src/backend/requirements.txt # jsonschema -jwcrypto==1.5.7 \ - --hash=sha256:70204d7cca406eda8c82352e3c41ba2d946610dafd19e54403f0a1f4f18633c6 \ - --hash=sha256:729463fefe28b6de5cf1ebfda3e94f1a1b41d2799148ef98a01cb9678ebe2bb0 +jwcrypto==1.5.8 \ + --hash=sha256:85aeb475f808d56bbc2f2ed1f6f73e6a317c4011a4321505f02f0aed695a3742 \ + --hash=sha256:c3d7114b6f6e65b52f6b7da817eb8cb8423e1da31e1ef13508447c81ecbdcc34 # via # -c src/backend/requirements.txt # django-oauth-toolkit @@ -1267,34 +1267,34 @@ markupsafe==3.0.3 \ # via # -c src/backend/requirements.txt # jinja2 -nh3==0.3.5 \ - --hash=sha256:0a09f51806fd51b4fedbf9ea2b61fef388f19aef0d62fe51199d41648be14588 \ - --hash=sha256:207c01801d3e9bb8ec08f08689346bdd30ce15b8bf60013a925d08b5388962a4 \ - --hash=sha256:23a312224875f72cd16bde417f49071451877e29ef646a60e50fcb69407cc18a \ - --hash=sha256:2c069570b06aa848457713ad7af4a9905691291548c4466a9ad78ee95808382b \ - --hash=sha256:38748140bf76383ab7ce2dce0ad4cb663855d8fbc9098f7f3483673d09616a17 \ - --hash=sha256:387abd011e81959d5a35151a11350a0795c6edeb53ebfa02d2e882dc01299263 \ - --hash=sha256:3bb854485c9b33e5bb143ff3e49e577073bc6bc320f0ff8fc316dd89c0d3c101 \ - --hash=sha256:45855e14ff056064fec77133bfcf7cd691838168e5e17bbef075394954dc9dc8 \ - --hash=sha256:45e6a65dc88a300a2e3502cb9c8e6d1d6b831d6fba7470643333609c6aab1f30 \ - --hash=sha256:488928988caad25ba14b1eb5bc74e25e21f3b5e40341d956f3ce4a8bc19460dc \ - --hash=sha256:48f45e3e914be93a596431aa143dedf1582557bf41a58153c296048d6e3798c9 \ - --hash=sha256:50d401ab2d8e86d59e2126e3ab2a2f45840c405842b626d9a51624b3a33b6878 \ - --hash=sha256:52d877980d7ca01dc3baf3936bf844828bc6f332962227a684ed79c18cce14c3 \ - --hash=sha256:559e4c73b689e9a7aa97ac9760b1bc488038d7c1a575aa4ab5a0e19ee9630c0f \ - --hash=sha256:6ea58cc44d274c643b83547ca9654a0b1a817609b160601356f76a2b744c49ad \ - --hash=sha256:72c5bdedec27fa33de6a5326346ea8aa3fe54f6ac294d54c4b204fb66a9f1e79 \ - --hash=sha256:84bdeb082544fbcb77a12c034dd77d7da0556fdc0727b787eb6214b958c15e29 \ - --hash=sha256:8f85285700a18e9f3fc5bff41fe573fa84f81542ef13b48a89f9fecca0474d3b \ - --hash=sha256:acfd354e61accbe4c74f8017c6e397a776916dfe47c48643cf7fd84ade826f93 \ - --hash=sha256:c357f1d042c67f135a5e6babb2b0e3b9d9224ff4a3543240f597767b01384ffd \ - --hash=sha256:c3aae321f67ae66cff2a627115f106a377d4475d10b0e13d97959a13486b9a88 \ - --hash=sha256:c88605d8d468f7fc1b31e06129bc91d6c96f6c621776c9b504a0da9beac9df5f \ - --hash=sha256:de8e8621853b6470fe928c684ee0d3f39ea8086cebafe4c416486488dea7b68d \ - --hash=sha256:e49c9b564e6bcb03ecd2f057213df9a0de15a95812ac9db9600b590db23d3ae9 \ - --hash=sha256:ea232933394d1d58bf7c4bb348dc4660eae6604e1ae81cd2ba6d9ed80d390f3b \ - --hash=sha256:eeedc90ed8c42c327e8e10e621ccfa314fc6cce35d5929f4297ff1cdb89667c4 \ - --hash=sha256:fe3a787dc76b50de6bee54ef242f26c41dfe47654428e3e94f0fae5bb6dd2cc1 +nh3==0.3.6 \ + --hash=sha256:082675ff87b9385ec430ffe6d5847ba7456cc39b73720cd4add472f9f4cffd56 \ + --hash=sha256:2411e8c3cee81a1ddd62c2a5d50585c28aa5566d373ad1db92536b95ddb24ef2 \ + --hash=sha256:25c733bee928530556b1db0ea46c52cf5aa686146e38e60a6fc7cb801ef91cec \ + --hash=sha256:2f90d9a0cfdbee218994fdaaeeb5a0fde62d08f35e4eef0378ec1e2200172fd0 \ + --hash=sha256:34d2b0d934156b87ee114f599a3ba9b8b9e17b5d79652ba3a13fa50903de965e \ + --hash=sha256:36d06341bd501240d320f5942481ed5e6846136b666e1ba4faf802b78ebc875f \ + --hash=sha256:43bc1ed3fa0716295fabee29ba42b2667e4a51d140b0a68e092170a765474fa6 \ + --hash=sha256:44673b27010051ab5a5e438a86ec31bbda61d4a77d7e900af6b7be3037c1abae \ + --hash=sha256:455469a29951edc92bc48b47ac2281c3f2609e6c4f6a047056449f8c2c23facf \ + --hash=sha256:4713502748f564fee0633b37b3403783ce0a3af3a3d148ad91025a5bdadb7bc6 \ + --hash=sha256:5276ef17bdba9ad8040575c74072008b13aae429436e9d0429e718bb5f90f4da \ + --hash=sha256:597a8e843bea00b2eb5520658dc24a9bb032e7fc9e7c2c0c4cd29420220c9796 \ + --hash=sha256:69bbb92865a693d909db3a700d3c01537533844d0948c1e9323561ce06ecda41 \ + --hash=sha256:69f365963f63a1e9bff53bdbb3c542c7c2efed3e163c9d5d83a772a2ac468c21 \ + --hash=sha256:82ca5bf427ad1b216b65ede1a2e2d87dc49bec417ceba0f297213107d3cd9d78 \ + --hash=sha256:889932a97fb4abb6f95fef1914c0d269ebfb60011e67121c1163059b9449dbb4 \ + --hash=sha256:905f877dc66dd7aea4a76e54bcb26acb5ff8216f720c0017ccf63e0e6035698e \ + --hash=sha256:a43ebd7543555c3ac1bc353023d0794e75cb76f6f18f19c32e95441496c0cc25 \ + --hash=sha256:d14bf7982e7a77c0c775634c29c07ce08b38a046df73e1c1f139b3e82f18a38e \ + --hash=sha256:e196fa70c2ff2eb4de7d3df3108f8f358c1d69dff20d45b11f20a5aa227ffb6d \ + --hash=sha256:e1b160831c9cdb06a6c79c2f9cdb11386602938f9af260d1c457a85add4f6f69 \ + --hash=sha256:e6b7beece07525dc6e6b0fc2f104442de2ba328360ad00e50cbe2e1fd620447d \ + --hash=sha256:edb2b4a1a27523e6cc7c417f8d21ce3d005243548b93e56b762b66b0c7f589f9 \ + --hash=sha256:f2f14b7ae1fca99c4a66c981aac3974e7fbc1ca30a12673d223ae1df76680917 \ + --hash=sha256:f338ac7d594c067679f1e99b4f5ec3906842979560f9d8f15d6bdfa39a353b10 \ + --hash=sha256:f3736c9dd3d1856f80cd031715b84ca75cda2bbb1ac802c3da26bfce590838d7 \ + --hash=sha256:f5ed5fe84aee7f39db95c214a7421bf0499fbf500fec6d86a4e29bfc37971438 # via # -c src/backend/requirements.txt # -r src/backend/requirements.in @@ -1311,9 +1311,9 @@ openpyxl==3.1.5 \ # via # -c src/backend/requirements.txt # tablib -opentelemetry-api==1.42.1 \ - --hash=sha256:51a69edacadbc03a8950ace1c4c21099cacc538820ac2c9e36277e78cebba714 \ - --hash=sha256:56c63bea9f77b62856be8c47600474acad853b2924b99b1687c4cb6297166716 +opentelemetry-api==1.43.0 \ + --hash=sha256:107d0d03857ea8fc7c5fcbbbd83f800c281f0d560553d61c1d675fccfd1761c1 \ + --hash=sha256:20acf45e9b21851926835292e4045d290acade1edd2ff3de86d2f069687ba1fd # via # -c src/backend/requirements.txt # -r src/backend/requirements.in @@ -1331,34 +1331,34 @@ opentelemetry-api==1.42.1 \ # opentelemetry-instrumentation-wsgi # opentelemetry-sdk # opentelemetry-semantic-conventions -opentelemetry-exporter-otlp==1.42.1 \ - --hash=sha256:2d9ebaed714377a67d224d46795ddcc11d2c877fa5de35fda70b6f3b010729a9 \ - --hash=sha256:aedd54545bb0587cd45210abdc8be545af9c01413f3307786e276df1e3c83bee +opentelemetry-exporter-otlp==1.43.0 \ + --hash=sha256:65aded6c50ee7dd2b9948c9d0e59ddb4ed4eea6e8532fba95cbe6a4a64a566ba \ + --hash=sha256:70f3fe740a64596d4157588a2ee7e4fd37d2acc0c0f522a2882b8c29316cd0f0 # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -opentelemetry-exporter-otlp-proto-common==1.42.1 \ - --hash=sha256:04f1f01fb597c4249dfcd7f8b861c902c2102369d376d9d346ff38de4469a2ee \ - --hash=sha256:f48d395ab815b444da118868977e9798ea354c25737d5cf39578ae894011c140 +opentelemetry-exporter-otlp-proto-common==1.43.0 \ + --hash=sha256:123c3f9cc87218562490c63b36f497bf3a722faf174a515d1443f31ababa6264 \ + --hash=sha256:c4e32ba6d6b13bdb2b8f6764c4fd28d00192826561aa04f6d14eedfce7ac076f # via # -c src/backend/requirements.txt # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-exporter-otlp-proto-grpc==1.42.1 \ - --hash=sha256:0ae1177e2038b18a929b3098215243631ef91136cba26b7e2b12790ceb7e87cc \ - --hash=sha256:975c4461f167dd8ed8857d68d3b6b25f3d272eab896f6a9470d0f5b90e2faf15 +opentelemetry-exporter-otlp-proto-grpc==1.43.0 \ + --hash=sha256:1b3e0627daa9bc21884d4a13946807c255eb558bfe5bdd543dffb6f4c9faee0d \ + --hash=sha256:6a10d1feacffffda19acacbf277b736094b1e2f4dbb98c90ccb2c6e1962e2ec6 # via # -c src/backend/requirements.txt # opentelemetry-exporter-otlp -opentelemetry-exporter-otlp-proto-http==1.42.1 \ - --hash=sha256:00a16da1b312a1d6c7233d600d557c91df71125af73020f3b9a7765bd699d59d \ - --hash=sha256:bf142a21035d7571ac3a09cb2e5639f49886f243972883cfe777ed3bf02b734d +opentelemetry-exporter-otlp-proto-http==1.43.0 \ + --hash=sha256:647f603aa8efdbdb4dbff842e0729d0406a6fff26b295a72d3d60e7d963b2610 \ + --hash=sha256:fa8a42bb7d00ee5391f4c0b04d8e6a46c03caa437903296ab73a81dc11ba118f # via # -c src/backend/requirements.txt # opentelemetry-exporter-otlp -opentelemetry-instrumentation==0.63b1 \ - --hash=sha256:32368d6ae52c8de20aa790a6ad86b10a76f09956092337ae37d675773990e541 \ - --hash=sha256:f1986716d52cc316ea5f60189098726a9071d8ecc0eee96c9ed110be08bade9c +opentelemetry-instrumentation==0.64b0 \ + --hash=sha256:133ab7ffca796557aec059bf6be3190a34b6dea987f25be3d9409e230cbdad8b \ + --hash=sha256:b47d528dead6271d7743114417eb67fc915bd9258111c48dbf9a4951d2efa88d # via # -c src/backend/requirements.txt # opentelemetry-instrumentation-dbapi @@ -1370,82 +1370,82 @@ opentelemetry-instrumentation==0.63b1 \ # opentelemetry-instrumentation-sqlite3 # opentelemetry-instrumentation-system-metrics # opentelemetry-instrumentation-wsgi -opentelemetry-instrumentation-dbapi==0.63b1 \ - --hash=sha256:1bc842ddcacb7ec3622ef306ffdb3c584bf97df79d381e03604ea6eb23c63781 \ - --hash=sha256:406978ed56bcfc5fd246fd918e6b36d0f5de26fa396c78cf63326a7b530597c8 +opentelemetry-instrumentation-dbapi==0.64b0 \ + --hash=sha256:1caa96d438bf37f71dd778c9f1e03ba1f50b8ab54aeef68b2a630c93c05cddc6 \ + --hash=sha256:8e3a1528fc9753a04190a7e7bf0180c5abd059f3aa68ec3857edb363c9847c44 # via # -c src/backend/requirements.txt # opentelemetry-instrumentation-psycopg # opentelemetry-instrumentation-pymysql # opentelemetry-instrumentation-sqlite3 -opentelemetry-instrumentation-django==0.63b1 \ - --hash=sha256:909ea4afbb18f16eb811d7ac330ed0f6fda7765191d49bccb8cca38c4fbc005f \ - --hash=sha256:f2071d2f92e4779c5a14dd452b0dfe426343599e6efa9d888304fb639a9f3101 +opentelemetry-instrumentation-django==0.64b0 \ + --hash=sha256:3d2673b4f77156b15b1b119c8849b50e3644cfc325f7a24c03602596de2dbba4 \ + --hash=sha256:c1f628e53c22aa8f9cc9cbe6e61e781940da6eda5f910d26720ef8ac73e25afe # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -opentelemetry-instrumentation-psycopg==0.63b1 \ - --hash=sha256:4d74ec2dda8e54ead9bd71f134af984792f77e1d8809591ae53edadddd4c8fc0 \ - --hash=sha256:86819f4cccea21a47920807826495797b7261cc1893c8e855415e76fb7b8e2e8 +opentelemetry-instrumentation-psycopg==0.64b0 \ + --hash=sha256:a9835b8749db71a9c1e075ae81c084b1f370130341ceff6a231095f89f48a0c6 \ + --hash=sha256:e9f41fad425183392d97068dbe2ce6e938514520312cfd7bf409242bd800c013 # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -opentelemetry-instrumentation-pymysql==0.63b1 \ - --hash=sha256:2cf6a24e136b5b0c3f6e59675fc44b42ad2b97474b075a82859f9868a9252648 \ - --hash=sha256:6b54b83c86ac6c2e8dae642bbee4894e2283ceb5da23d571f1abb7060f7b62f4 +opentelemetry-instrumentation-pymysql==0.64b0 \ + --hash=sha256:f5ab8399f7d8952b1622f9938d56604b51f51e7882f5058d7fd4fa3509c458f4 \ + --hash=sha256:fc0da8eb158e0fb525f18e5be3bfa25dc0bc1d9e195c5fe31fbf919b55bd1a64 # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -opentelemetry-instrumentation-redis==0.63b1 \ - --hash=sha256:28d235159df43cc2bc8779af5c602afad1e08603fff75ac8ca34dd1bf30a9cb9 \ - --hash=sha256:f0e51c4006f68e340abbf28a7995feff004de78649697cbdf3bac0072cacd082 +opentelemetry-instrumentation-redis==0.64b0 \ + --hash=sha256:5458a541986f665b9d7e641421fa5d0c286f1813b452faab6f84503823719d52 \ + --hash=sha256:c37e194c1e8ff59944d5c2f18014ee18f244a103958b1f2482099525ae9099f9 # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -opentelemetry-instrumentation-requests==0.63b1 \ - --hash=sha256:513fcaa3d93debbdb359c00ce1a137a34a89ee908c51ac43beb7e8c18ac2b3cd \ - --hash=sha256:935c980a11e33bfd7ed969c741e4bd7c84077045651469f10e163534368d87f7 +opentelemetry-instrumentation-requests==0.64b0 \ + --hash=sha256:8213a20b6578c41aa05cc5b48419aea75e1584924a4904dfcf36524597e7cc96 \ + --hash=sha256:dcad4324ad97d785a5a3b9500acf3af3965b4c1d1b95776fa5e275b173d9541c # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -opentelemetry-instrumentation-sqlite3==0.63b1 \ - --hash=sha256:3d61afda8358dc32135fabd27e5934bd25ea0eed68d64c34508f24ba8d723efc \ - --hash=sha256:cc11c68cccde061dc8bcc5f80fe00bb0105a0fbb11b390859a23ca91ccd4e3b6 +opentelemetry-instrumentation-sqlite3==0.64b0 \ + --hash=sha256:2d46810db20543a209c6568c8d1220859563bc4135cd6d00461ef70e446a0297 \ + --hash=sha256:fc73cd28b7c77ddbec1d688113abe944805e9f085ff724729a8b7a4888efc3e7 # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -opentelemetry-instrumentation-system-metrics==0.63b1 \ - --hash=sha256:995051f47876d79461aed8b7aa205d4584d90794ef864342cc748929c389bb42 \ - --hash=sha256:d6d4d7a1a854be4165143cf6420ee5894188762eb367d7bf9da5be4a83a4b632 +opentelemetry-instrumentation-system-metrics==0.64b0 \ + --hash=sha256:38bc9c4ed4fccea2a68b1a43d57764649d1c3096927dc7244c5e7f173899044b \ + --hash=sha256:ec8280693cdf6ea9020384c3fe884eea64a43ae78f1e2f6edc20951c871aac7e # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -opentelemetry-instrumentation-wsgi==0.63b1 \ - --hash=sha256:03d61c4678ce82402e7f37b6a3dbd84cb97b85b3cb416a78c2e74c7c6d9451fa \ - --hash=sha256:86779715262227d3436bdfb16aabd1c524b0f236725a69e8754ceda76c6d79dc +opentelemetry-instrumentation-wsgi==0.64b0 \ + --hash=sha256:1cce6ea28d1800c154e6ccdf52f05bae2f05c5e28ee44f0dddb17ada26208986 \ + --hash=sha256:5a3b0174f39072c0abb749be4ae7e469c7585e87cdfaf63665657b1a7058c105 # via # -c src/backend/requirements.txt # -r src/backend/requirements.in # opentelemetry-instrumentation-django -opentelemetry-proto==1.42.1 \ - --hash=sha256:c6a51e6b4f05ae63565f3a113217f3d2bfaec68f78c02d7a6c85f9010d1cfca6 \ - --hash=sha256:dedb74cba2886c59c7789b227a7a670613025a07489040050aedff6e5c0fb43c +opentelemetry-proto==1.43.0 \ + --hash=sha256:224778df17e1f3fafeaaa21d874236ca5f6ffc2f86e0899298ec7351aac27924 \ + --hash=sha256:c58f1f7ef84bc7dc2834016c0c37fe0081dde7ca9f6339be1970fbf9cdaaa90d # via # -c src/backend/requirements.txt # opentelemetry-exporter-otlp-proto-common # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-sdk==1.42.1 \ - --hash=sha256:083cd4bbfaa5aa7b5a9e552430d9951219967cfb27aa61feb13a77aba1fc839d \ - --hash=sha256:8c834e8f8c9ba4171d4ec843d0cb8a67e4c7394d3f9e9297e582cbd9456ddbf7 +opentelemetry-sdk==1.43.0 \ + --hash=sha256:d1323a547c1ce69d6a069a17a44b7da82bb8b332051ecb074041f87642c86823 \ + --hash=sha256:d8187c81c162df9913e4003dd6485f7390d9a24fc17026ec7387b8b8218b08e9 # via # -c src/backend/requirements.txt # -r src/backend/requirements.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-semantic-conventions==0.63b1 \ - --hash=sha256:3daf963611334b365e98a57438183eb012d3bfb40b2d931a9af613476b8701a9 \ - --hash=sha256:dfe5ef4dee82586b746f522b818ceb298d00b3d59f660042bd79404bff8d0682 +opentelemetry-semantic-conventions==0.64b0 \ + --hash=sha256:72f76fb2d1582d9d033dd1fcd84532e961e6ff3d90d24ba6fabc72975a83864c \ + --hash=sha256:ea77e85e354b8f604ddbe5f3d9135216f982fa4d77e5859ac30f6d8a50505aa6 # via # -c src/backend/requirements.txt # opentelemetry-instrumentation @@ -1456,9 +1456,9 @@ opentelemetry-semantic-conventions==0.63b1 \ # opentelemetry-instrumentation-system-metrics # opentelemetry-instrumentation-wsgi # opentelemetry-sdk -opentelemetry-util-http==0.63b1 \ - --hash=sha256:6284194028c59cd439f8acfe388145069a6127f11dc077e1344a2094adacc3f8 \ - --hash=sha256:ba1268f00922ee522dba2ae38458060f99486e7385a8056985901ca9685adfff +opentelemetry-util-http==0.64b0 \ + --hash=sha256:8a86a220dbfc56d736f47f1e5c4e7932a21fcf69052312e1bcf166444dc79322 \ + --hash=sha256:c1e5350d25507c1afcd6076cf9ac062485a0a4f79cd9971366996fd3056bacdb # via # -c src/backend/requirements.txt # opentelemetry-instrumentation-django @@ -1607,23 +1607,21 @@ ppf-datamatrix==0.2 \ # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -prettytable==3.17.0 \ - --hash=sha256:59f2590776527f3c9e8cf9fe7b66dd215837cca96a9c39567414cbc632e8ddb0 \ - --hash=sha256:aad69b294ddbe3e1f95ef8886a060ed1666a0b83018bbf56295f6f226c43d287 +prettytable==3.18.0 \ + --hash=sha256:439217116152244369caf3d9f1caf2f9fe29b03bd79e88d2928c8e718c95d680 \ + --hash=sha256:b3346e0e6f79180833aebaac088ae926340586cf6d7d991b9eb125b65f72313a # via # -c src/backend/requirements.txt # pip-licenses -protobuf==6.33.6 \ - --hash=sha256:0cd27b587afca21b7cfa59a74dcbd48a50f0a6400cfb59391340ad729d91d326 \ - --hash=sha256:77179e006c476e69bf8e8ce866640091ec42e1beb80b213c3900006ecfba6901 \ - --hash=sha256:7d29d9b65f8afef196f8334e80d6bc1d5d4adedb449971fefd3723824e6e77d3 \ - --hash=sha256:9720e6961b251bde64edfdab7d500725a2af5280f3f4c87e57c0208376aa8c3a \ - --hash=sha256:a6768d25248312c297558af96a9f9c929e8c4cee0659cb07e780731095f38135 \ - --hash=sha256:bd56799fb262994b2c2faa1799693c95cc2e22c62f56fb43af311cae45d26f0e \ - --hash=sha256:c96c37eec15086b79762ed265d59ab204dabc53056e3443e702d2681f4b39ce3 \ - --hash=sha256:e2afbae9b8e1825e3529f88d514754e094278bb95eadc0e199751cdd9a2e82a2 \ - --hash=sha256:e9db7e292e0ab79dd108d7f1a94fe31601ce1ee3f7b79e0692043423020b0593 \ - --hash=sha256:f443a394af5ed23672bc6c486be138628fbe5c651ccbc536873d7da23d1868cf +protobuf==7.35.1 \ + --hash=sha256:11d6b0ec246892d85215b0a13ca6e0233cf5284b68f0ac02646427f4ff88a799 \ + --hash=sha256:230a75ddfc2de4806e56696ce9640c1cdfdb6543b7cfce98d42a4c0a0e7bdb87 \ + --hash=sha256:24f857477359a85c0c235261b8ba905fd51b2562f4a64ca1df5473f29850cbf6 \ + --hash=sha256:353652e4efd0bca5b5fc2656abf8307ef351f0cf938c9eba09f0e09c20a25c30 \ + --hash=sha256:4bc97768d8fe4ad6743c8a19403e314511ed9f6d13205b687e52421c023ac1b9 \ + --hash=sha256:74758715c53d7158fb76caf4f0cfdacc5329a4b1bb994f865d6cf302d413a1c4 \ + --hash=sha256:b73f9489a4b8b1c9cb1f8ed951c736392592edb24b9d6819f36d2e10b171d5b4 \ + --hash=sha256:ce115a26fe0c39a2c29973d914d327e516a6455464489fe3cd1e51a1b354f81a # via # -c src/backend/requirements.txt # googleapis-common-protos @@ -1707,9 +1705,9 @@ pynacl==1.6.2 \ # via # -c src/backend/requirements.txt # paramiko -pypdf==6.13.3 \ - --hash=sha256:c6e3f86afb625791510b02ad5480e94b63970bb957df75d44657c282ecc52224 \ - --hash=sha256:f3cb822769725f1bac658c406cfc9460399043f3750c2d3e4650e0a85eacabd7 +pypdf==6.14.2 \ + --hash=sha256:3f07891af76dc002657e04993ab9b4de81de29f9013b9761d0b7968bff12e946 \ + --hash=sha256:7873f502fe4385e79539b21d872392dc0c4e3714327c15881cbc7fbfd1f95b25 # via # -c src/backend/requirements.txt # -r src/backend/requirements.in @@ -1937,9 +1935,9 @@ rapidfuzz==3.14.5 \ # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -redis==8.0.0 \ - --hash=sha256:a00c5355432051ac14e593b8b197fc76c887ee12d55a0984f69328a1115fdc49 \ - --hash=sha256:c938c18338585009f0bc310f4c7e4e4b4d37639356c4ac072cedf3af570c8dc7 +redis==8.0.1 \ + --hash=sha256:47daa35a058c23468d6437f17a8c76882cb316b838ef763036af99b96cedd743 \ + --hash=sha256:afc5a7a2f5a084f5b1880dec548dd45be17db7e43c82a30d84f952aefb05cfb0 # via # -c src/backend/requirements.txt # django-redis @@ -2229,97 +2227,97 @@ whitenoise==6.12.0 \ # via # -c src/backend/requirements.txt # -r src/backend/requirements.in -wrapt==2.2.1 \ - --hash=sha256:036dfb40128819a751c6f451c6b9c10172c49e4c401aebcdb8ecf2aec1683598 \ - --hash=sha256:03df9ebed4c73ab93fa8c07e3d41d818dfca1852b15731a3de59457b27814624 \ - --hash=sha256:05d5cb74d1b232ec8cfa130a8f900708699ff2491d97b8f85a4cdc5996294b85 \ - --hash=sha256:07be671fa8875971222b0ba9059ed8b4dc738631122feba17c93aa36b4213e9a \ - --hash=sha256:09ac16c081bebfd15d8e4dfa5bdc805990bbd52249ecff22530da7a129d6120b \ - --hash=sha256:0d9ff006f420b2ec8296aa56ade43ea7da3e997e85769f0aafc5e0661aacb710 \ - --hash=sha256:0f68f478004475d97906686e702ddbddeaf717c0b68ad2794384308f2dc713ae \ - --hash=sha256:17de18fc12cea55b8a9587314cb830573e37fb33b247a7515696350863714188 \ - --hash=sha256:1ae574d65c9fa8e86f64f6a7c2668f9fcd507b183e0e577619f504b883cb0a6c \ - --hash=sha256:1c9934ea5d92957e3cd0adbc0845539dccfd62710ebe16195a8c66c53954db36 \ - --hash=sha256:1d676ee388bc42a04d56dd7deb5605244dac2e35cc2fadbb43c9fa25bbd93508 \ - --hash=sha256:1ffa9cfd4bdb581539951b14ae661ff20ed0c3599b3e911a131ee0ec5ac11337 \ - --hash=sha256:2076d2335085eb09b9547e7688656fa8f5cf0183eab589d33499cd353489d797 \ - --hash=sha256:211f595f8e7faae5c5930fcc64708f2ba36849e0ba0fd653a843de9fa8d7db77 \ - --hash=sha256:24c52546acf2ab82412f2ab6fc5948a7fe958d3b4f070202e8dcdd865489eaf9 \ - --hash=sha256:2d83966dc7f4f45e8b97b5933685ac2e6e67fc0e19246ea314bceb9a8970c956 \ - --hash=sha256:2de9e20769fe9c1f6dcdc893c6a89287c5ccf8537c90b5de78aed8017697aad5 \ - --hash=sha256:2e08688ab16525897da6589d56d0aebaf417bbe91c2d8e3b96203b1efa596e85 \ - --hash=sha256:2f8c90c8afde51969487be4e1343ae049b268854877d415c2510baf833775052 \ - --hash=sha256:368eac1e20fd0bb03dd3cc42bf9887154c3861b60989389ccb5fac032617d215 \ - --hash=sha256:3aafea2975caef8ca49400640dde02cc7426e798f24870ed01f490bc3cffd32f \ - --hash=sha256:3e2f02472a1cbbf3884b365714a810b5947134a95ad6952b554cb8cce9d492b0 \ - --hash=sha256:3ffad790d9d11d8ecf9f17c4bb671a5b4089e4d8b575c46c5129597f41f836b0 \ - --hash=sha256:401229e9d63ca09f9b8891ecf83798d26c11bbb445d11ed9f1836b6d4585b38a \ - --hash=sha256:436addbc4bb4fc0a88c702577f51195d7d73683a7f3e0e5b253d8404d7847243 \ - --hash=sha256:44255c84bc57554fed822e83e70036b51afa9edb56fc7ca56c54410ece7898c9 \ - --hash=sha256:50972a1d974ea07725a7f6b1cec5f8759008afd030a0024843ebe7d52de47f2b \ - --hash=sha256:5590d63f5243251641cf543009b4c9314a79d0598fdb8a8e4cfc918494536c53 \ - --hash=sha256:585916e210db57b23543342c2f298e42331b617fd0c934caf5c64df44de8640e \ - --hash=sha256:5f1845c2a8cc1180ccccfa45785dd06f562730d19ef75be180334254012b6283 \ - --hash=sha256:5fa9bf3b9e66336589d03f42abce2da1055ad5c69b0c2b764852a8471c9b9114 \ - --hash=sha256:61a0013344674d2b648bc6e6fe9828dd4fc1d3b4eb7523809792f8cb952e2f16 \ - --hash=sha256:61acce4257a9883669703c525447c5b4c392edf0f987ae77ec32668440158f0e \ - --hash=sha256:628f5220c7a904d5fc78f7075c8d7871433eb6d035c94728a22fdf85f193d2a8 \ - --hash=sha256:64b7deeda4b70408e382328d8bbe52a256fe9bc63ae3db86d804608367e5422c \ - --hash=sha256:6744f504375775d7609c82c8d3d94af1c9a6f05586984536905908ba905277b9 \ - --hash=sha256:67a97e5b6c457f0cd3cfc19ebb2d84463e60c3ece754cc831e4281a3ca29bb18 \ - --hash=sha256:69f2e9244542cb34dd59c7f073445b9e54ad9f3fce8d93606c368a1b499fc413 \ - --hash=sha256:6ce32763ac31ce94fe9aada947e479b1975012bff166da409b4b9e4e376cf7e5 \ - --hash=sha256:6f56a647e4eaf5f0ca40330fb070f566bdf9f7b0db89a1af20d71c28dcd7a0ab \ - --hash=sha256:727ab4244622cd6ad2390f322642090c877d2e83a608d2653a7643ae5368d926 \ - --hash=sha256:74d6a0c31472fe5d814917266b9f46495d7c61ed890af08b468acea92fb89a8d \ - --hash=sha256:78b0aa6bfb7be8deed0ab23e7aa028cc5210c29bc2d32a04d52b50e517a7307e \ - --hash=sha256:7975bc88ab4b0f72ef2a2d5ae9d77d87efb5ef95e8f8046242fa9afdaaf2030b \ - --hash=sha256:7a4fdb9326aab4a5a477a1640e5ad786a8495901009d7e7b038371edd23a9d2b \ - --hash=sha256:844c858fc3bb7eacc0ba8efa904935d16aac6a4470948ad1e7e55c9f5a2a665f \ - --hash=sha256:87bacdaf225117a342a20d9c03438d701c02112f6e3f351ce9b7f32354f14797 \ - --hash=sha256:8a983a603a18c8708f024f7f6991b2e66159219abbf894634c5056243c55f3cd \ - --hash=sha256:8d1b4d0e0c2119587a31f5c029abd547e0c81d93b89d394566fe1588659eb579 \ - --hash=sha256:9011395be8db1827d106c6449b4bb6dd17e331ff6ec521f227e4588f1c78e46f \ - --hash=sha256:93fc2bf40cd7f4a0256010dce073d44eeb4a351b9bca94d0477ce2b6e62532b3 \ - --hash=sha256:95821352042722cd9f1108874579a47989d0a7e12a37d87d2fc4af20fd99ab8a \ - --hash=sha256:9907a4402ab6db12b7077a0ea5d7a4d028ecb22c8eee2b53527080d347cd1562 \ - --hash=sha256:9a04c28c10ba7fd12842b109d2edb0678872a2fe65277ca4ff06a0d61edee245 \ - --hash=sha256:9a5934eaea872e17936b5f45501eba5ab0bce9a74122e172b663d7c28c459c4a \ - --hash=sha256:9b984d1eb252145d6302c1dbd5e87fc6d404d45531447c84eadec04bf1fcb027 \ - --hash=sha256:9c210a6994b21aa9b29e81c8d11560e8fdab54c117e9cff37870d0a27bde1343 \ - --hash=sha256:9d8f204c8e3a8bf9ece17e0a83d137fd807440977f8a5e762d59306795011440 \ - --hash=sha256:a8f7176b83664af44567e9cc06e0d3827823fcc1a5e52307ebb8ac3aa95860b9 \ - --hash=sha256:a9dec1aca52dddde7df94818310fa2fe79739c8f385b2014c4cb1035f5508199 \ - --hash=sha256:ab5be648d5a0b86b7438864f8df3c705a65cef35a2fd3e5561e3e203167e0f27 \ - --hash=sha256:abd621552ede77c4c69be7fac44ba911225b0c812b6ba604e5964cf98085b474 \ - --hash=sha256:ac2745950b2bff80219c15ebf2fa9d8427eba7e249739f97e55c9d169e47e9e1 \ - --hash=sha256:aed9658797d0b45d6c49adcfc6b41f66e6f2d0c6de3ec79e16cf4b1855df240f \ - --hash=sha256:b6c0febfe38f22df2eb565c0ce8a092bb80411e56861ca382c443da83105423f \ - --hash=sha256:b9cf53ba90717db2e292401de290776c498d4bbfb0d4a559ca2895db8b9dcb5c \ - --hash=sha256:ba519b2d765df9871a25879e6f7fa78948ea59a2a31f9c1a257e34b651994afc \ - --hash=sha256:c318a64b53d97b841d7b5e637517e50a27be64bc695128422953d4b21710954e \ - --hash=sha256:c3723ff8eb8721f4daac98bc0256f15158e05316d5e52648ce9cebee434fbdd5 \ - --hash=sha256:c754dafdf5aaf0b401b644a90a30046929a0dd1a536e0ff0ec959a59155d9c7f \ - --hash=sha256:c803a3d331796255af51ba2c79ed0ac8275865b516c09e61f248d1e7aff31ce9 \ - --hash=sha256:c8cc5094b08abeae52da9c73c8a32003623be691a5193df2f4e3eac3d557c394 \ - --hash=sha256:cf3638274ab9d9b724c9baa0b4c04e132cd6faefb78b4dd3dd1a02a4bdaad41e \ - --hash=sha256:d047f6498c973874ba08ac3f97c69a2c4b2211c8de6f4c205f75cb1c9522596e \ - --hash=sha256:d2beb1c7cab10603aecdc42f8edd6ff013f9a32e4543474e38e6b77ce9975aeb \ - --hash=sha256:d7f513d3185e6fec82d0c3518f2e6365d8b4e49f5f45f29640d5162d56a23b54 \ - --hash=sha256:dd57607acc85678925940bd5df0385ff8332083a32fa8d7a43f8767f4997263c \ - --hash=sha256:e0cb7e4dd71f4c32e5e84843cd3c4cd65dda034314004bbe1d7f99af2426ab80 \ - --hash=sha256:e3677c7146ce694874941ba82b57092cc4875445aadf29d72807351023105143 \ - --hash=sha256:e395f7bc31851ef9b612050368cb446e9bc14cd7454b025018980349caf25ae5 \ - --hash=sha256:e422b2d647a65d6b080cad5accd09055d3809bdff00c76fba8dca00ca935572a \ - --hash=sha256:ed55af48b3eb28f43228ca2306788892bcb629eb2b5c4876e2a3659872c2f17a \ - --hash=sha256:ed928d0fda15fc0adc8d13305c8b3c0f2fba5b0669950c9e6d019d9162a3b3e8 \ - --hash=sha256:f4e1a92032a39cd5e3c647ca57dbf33b6a1938fd975623175793f9dbb63236de \ - --hash=sha256:f53ac9f3ef573326d009ed809beff4efcac6451931c2b8132586da4b9e53ff31 \ - --hash=sha256:f5b9daf6b629fce418e0cc3dd0436eac045188fa35deadb7a7f3941d5b8203f9 \ - --hash=sha256:f6518b94edb9150452e9aba08027d4cc293433753ec1fbefb4629a21cbc74181 \ - --hash=sha256:f70db64e8266d7c45d3b735f2e08eeb434b5e03da9a479ae42b2e2e486a21a00 \ - --hash=sha256:fafb4e739e43544d12cb4abd1605fd4683b6ca6a9ad682b7fd8f4d21973eafa8 \ - --hash=sha256:fd0135d34387f5fd087d9be368ea77ea89cf2451dc1cd1c622d35021bcb3ab50 +wrapt==2.2.2 \ + --hash=sha256:0065a3b657cec06813b4241d2462ccec287f6863103d7445b725fb3a889736f9 \ + --hash=sha256:055e6fcfaa28e58c6a8c247d48b92be9d56f818b7068aa4f22b15b3343a09931 \ + --hash=sha256:0788e321027c999bf221b667bd4a54aaefd1a36283749a860ac3eb77daed0302 \ + --hash=sha256:07fdcb012821859168641acf68afad61ef9783cf37100af85f152550e9677194 \ + --hash=sha256:09f811d43f6f33ec7515f0be76b159569f4057ab54d3e079c3204dddb90afa2a \ + --hash=sha256:0abfd648dac9ac9c5b3aa9b523d27f1789046640b58dcd5652a720ddb325e1fc \ + --hash=sha256:0ad520e6daa9bbf136f14de735474dbec7dcc0891f718e1d274ce8dc92e645af \ + --hash=sha256:0e64826f920c42d9d9f87e8cc09ffae66c51ede12d59061a5a426deb9aa71745 \ + --hash=sha256:0e7070c7472582e31af3dfc2622b2381a0df7435110a9388ed8db5ffbce67efb \ + --hash=sha256:10adb01371408c6de504a6658b9886480f1a4919a83752748a387a504a21df79 \ + --hash=sha256:11d95fc2fbad3163596c39d440e6f21ca9fccece74b56e30a37ac2fca786a07c \ + --hash=sha256:173e5bb5ca350a6e0abab60b7ec7cdd7992a814cb14b4de670a28f067f105663 \ + --hash=sha256:1fc7691f070220215cccb2a20836b9adbaecb8ff22ad47abe63de5f110994fac \ + --hash=sha256:209112cafd963710a05d199aae431d79a28bc76eb8e6d1bbbb8ad24340722cae \ + --hash=sha256:2252f77663651b89255895f58cc6ac08fcb206d4371813e5af61bb62d4f7689c \ + --hash=sha256:25904acb9475f46c24fe0423dbc8fda8cc5fbc282ab3dc6e72e919748c53f4e9 \ + --hash=sha256:26fc73a1b15e0946d2942b9a4426d162b51676338327dc067ccd8d2d76385f94 \ + --hash=sha256:2cb07f414fab25dbe6b5c7398e1491423a5c81a6209533639969a6c928d474a4 \ + --hash=sha256:2cd7181ab1c31192ff5219269830744b5a62020b3a6d433588c4f1c95b8f8bff \ + --hash=sha256:2e096c9d39a59b35b63c9aacfbbbec2088ff51ff1fc31051acc60a07f42f273a \ + --hash=sha256:305d4c247d61c4115794a169141823c62f719525ddb90b23aa332741c77d2c28 \ + --hash=sha256:30f7424af5c5c345b7f26490e097f74a2ef45b3d08b664dc33571aee3bd3b56c \ + --hash=sha256:3179a4db066b53d40562e368b12895440c8f0953b6543b89d6acc41c0273996e \ + --hash=sha256:3442eee2a5798f9b451f1b2cd7518ce8b7e28a2a364696c414460a0e295c012a \ + --hash=sha256:385cb1866f20479e83299af585375bfa0a4b0c6c9907a981483ea782ea8ae406 \ + --hash=sha256:3a4eb7964ff4643d333c84f880bcf554652b2a1050aebc54ae696327f61acfaf \ + --hash=sha256:3b686cfc008776a3952d6213cb296ed7f45d782a8453936406faa89eac0835ab \ + --hash=sha256:3c4095803491f6ef72128914c28ec05bbad9758433bb35f6715a3e9c8e46fb2d \ + --hash=sha256:3dc3dcfc2da95d501905f10dc11a0dc622e91d8cdd8bbfcb63ca54afd131e556 \ + --hash=sha256:4250b43d1a129d947e083c4dc6baf333c9bb34edd26f912d5b0457841fc858ab \ + --hash=sha256:4402f57c5f0d0579599858ffbdd9bf4e3f0972f51096f2bd6cc7dab6b76ee49e \ + --hash=sha256:45c2f2768e790c9f8db90f239ef23a2af8e7570f25a35619ef902df4a738447f \ + --hash=sha256:4b481fb0c40d9fd90a5809911208da700987d373a20a4709dc9e3944af7a6bec \ + --hash=sha256:4bccea5cdecffa9dd70e343741f0e41e0a16619313d04b72f78bb525162ebcd0 \ + --hash=sha256:518b0c5e323511ec56a38894802ddd5e1222626484e68efe63f201854ad788e5 \ + --hash=sha256:5499236ad1dc116012e2a5dd943f3f31af12fce452128e2bbcbd55a7d3d4d14c \ + --hash=sha256:55b9a899e6fff5444f229d30aa6e9ac92d2216d9d60f33c771b5d76a760d5f8e \ + --hash=sha256:58f9f8d637c9a6e245c6ef5b109b67ec187d2faed23d1405656b51d96e0a5b56 \ + --hash=sha256:5bad217350f19ce99ca5b5e71d406765ea86fe541628426772b657375ee1c048 \ + --hash=sha256:5d0a142f7af07caeb5e5da87493162a7b8efa19ba919e550a746f7446e13fb30 \ + --hash=sha256:62415fd095bc590b842b6d092f2b5d9ccbaeb7e0b28535c03dcea2718b48636b \ + --hash=sha256:656593bb3f5529f03d27af4136c4d7b11990e470bcbc6fefa5ef218695bece55 \ + --hash=sha256:6c99012a22f735a85eed7c4b86a3e99c30fdd57d9e115b2b45f796264b58d0bf \ + --hash=sha256:6d1a6050405bf334be33bf66296f113563622972a34900ae6fa60fd283a1a900 \ + --hash=sha256:6e7e45b43d3c774d244fe7264378f5a3f0f383bc55a54a9866434e524540110f \ + --hash=sha256:6fe35fd51b74867d8b80174c277bd6bbf6a73e443f908129dc531c4b688a20d5 \ + --hash=sha256:7d2f6573561fa05002e5ee71529f4ab0a7dffed3e45b51013fe6298fe2723c02 \ + --hash=sha256:814f1bf3e0a7035f67a1db0cdaf5e2bbcaa4d7092db96673cfa467adeaab8591 \ + --hash=sha256:8374eb6b1a58809211e84ff835a182bb17ab2807a5bfef23204c8cff38178a00 \ + --hash=sha256:8417fd3c674d3c8023d080292d29301531a12daf8bd938dd419710dd2f464f2b \ + --hash=sha256:8636809939152be6ae20a6cef0fed9fe60f411b47847d0426a826884b469e971 \ + --hash=sha256:8ffbeaea6771a6eba6e6eeb09767864995726bc8240bb54baf88a9bb1db34d5c \ + --hash=sha256:94b00b00f806eb3ef2abe9049ed45994a81ee9284884d96e6b8314927c6cea3d \ + --hash=sha256:955f1d6e72a352e478de8d8b503abe301c5e139a141b62eb0923bd694995025f \ + --hash=sha256:9e8b648270c613720a202d9a45ebabc33261b22c3a839b115ac5bce8c0bb0d69 \ + --hash=sha256:9ee098171b07edba66ab69a9bf0251d3cbef654107e800feb24c0c6f30592728 \ + --hash=sha256:a28287413351cb198b8c5ddd045c56fac1d195808642cd264d1ab50426146650 \ + --hash=sha256:a2d78c363f97d8bd718ee40432c66395685e9e98528ccaa423c3355d1715a26d \ + --hash=sha256:a41e758d80dc0ab8c210f641ac892009d356cf1f955d97db544c8dd317b4d14c \ + --hash=sha256:a795d3c06e5fbf9ea2f13196180b77aeab1b4685917256ee0d014cc163d90063 \ + --hash=sha256:aa14b01804bce36c6d63d7b6a4f55df390f29f8648cc13a1f40b166f4d54680d \ + --hash=sha256:abf033b7e4542357659cd83ed6cd5033c43aaa1887044045ceb571528837f72f \ + --hash=sha256:abf8c20a2d72ee69e16328b3c91342c446e723bfe48bfcc4dded3b9722ac027f \ + --hash=sha256:b84cd4058001c9727b0e9980b7a9e66325b5ca748b1b578e822cade1bc6b304f \ + --hash=sha256:b89d8d73c82db2bb7e6090b3afd7973f980d24e905cc34394eab60b884b3bf67 \ + --hash=sha256:bbf00ee0cb55ec24e2b0995a71942b85b21a066db8f3f46e1dbfdb9433ffba81 \ + --hash=sha256:c20279cd1a29800815d7b2d6338b60a6c6e78263f9d6e62e0eda251ba9cae2d0 \ + --hash=sha256:c38510a21d5b9cf3e84c460d909e9f2a098667439fd42841bb081cab45835d68 \ + --hash=sha256:c427c9d06d859848a69f0d928fe28b5c33a941b2265d10a0e1f15cd244f1ee33 \ + --hash=sha256:c5d7825491bfa2d08b97e9557768987952c7b9ae687d06c3320b40a37ccb7f20 \ + --hash=sha256:c6c64c5d02578bc4c4bca4f0aef1504de933c1d5b4ac2710b9131111459506c8 \ + --hash=sha256:cd385a48b055bdc3630ab30e0c7fd8514a36904ec23f9cee7a65d887334a3cea \ + --hash=sha256:d01d8e0afc55823245a3b97a79c7c77464e31ea7a7b629a4bf26f9441dc1f18e \ + --hash=sha256:d09db0f7e8357060d3c38fc22a018aba683a796bf184360fd1a58f6fc180dc77 \ + --hash=sha256:d619e1eed9bd4f6ed9f24cd61971aa086fa86505289628d464bcf8a2c2e3f328 \ + --hash=sha256:d8a15813215f33fa83667bfc978b300e35669ea8bb424e970a1426bcb7bc6cca \ + --hash=sha256:dcaa5e1451bd8751d7bd1568dfa3321c78092a52a7ecb5d1a0f18a5791e1fd00 \ + --hash=sha256:dfb00cb7bb22099e2f64b7340fb96113639aa7260c0972af3797ace2297b936c \ + --hash=sha256:e542b7c5af91e2123a8aabf19894319d5ec4268d2a9ffd2f239386133fc47746 \ + --hash=sha256:e5a5290e4bf2f332fc29ce72ffb9a2fff678aaac047e2e9f5f7165cd7792e099 \ + --hash=sha256:e6fb7e94e8fe3e4c3067bb1653a91cce7c5e83acc119fdd41501b1bf74654617 \ + --hash=sha256:e7f10ee0bd53673bfd52b67cbce83336fe6cad90d2377b03baf66491d2bbfb91 \ + --hash=sha256:ec8f83949028366531383603139403cac7a826e4011955813cdd640017845ce5 \ + --hash=sha256:ef2cce266b5b0b07e19fa82e59673b81142b7a3607c8ed1254113d048ed668da \ + --hash=sha256:f1a2ff355ece6a111ca7a20dc86df6659c9205d3fcee674ca34f2a2854fd4e73 \ + --hash=sha256:f32fe639c39561ccc187bcae17e9271be0eb45f1c2952510d2f29b33ab577347 \ + --hash=sha256:f4bfd8d1eb438153eff8b8cfe87f032ba65731e1ce06138b5090f745a33f6f95 \ + --hash=sha256:f90038ab58fafb584801ca62d72384d7d5225d93c76f7b773c22fae545bd8066 \ + --hash=sha256:fa81c5b5fe8cd6c41e3a798533b81288279e5fdbde2128f21071922764281c99 \ + --hash=sha256:fb18fc51e813df0d9c98049e3bf2298a5495a648602040e21fa3c7329371159e # via # -c src/backend/requirements.txt # opentelemetry-instrumentation @@ -2395,7 +2393,6 @@ xmlsec==1.3.17 \ --hash=sha256:f3fac9ae679f66585925cc00c5f6839ae36c1d03157619571dee18acc05b9c01 # via # -c src/backend/requirements.txt - # -r src/backend/requirements.in # python3-saml zopfli==0.4.3 \ --hash=sha256:0087c9a6f0c8a052be0f6d1a9bb71b6caffdd3e10201d6d6166e28d482cebe6d \ diff --git a/src/backend/requirements-dev-3.14.txt b/src/backend/requirements-dev-3.14.txt index 620f7d574c..e238f1978e 100644 --- a/src/backend/requirements-dev-3.14.txt +++ b/src/backend/requirements-dev-3.14.txt @@ -248,119 +248,104 @@ charset-normalizer==3.4.7 \ # -c src/backend/requirements.txt # pdfminer-six # requests -click==8.4.1 \ - --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \ - --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96 +click==8.4.2 \ + --hash=sha256:9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6 \ + --hash=sha256:e6f9f66136c816745b9d65817da91d61d957fb16e02e4dcd0552553c5a197b76 # via # -c src/backend/requirements-dev.txt # pip-tools -coverage[toml]==7.14.1 \ - --hash=sha256:0177614a0370f227888b4e436a7c55686d6a9f90eb1ade2b624ba685a1686e86 \ - --hash=sha256:01b7733daad0237daa01ef80fe2dfceffc911e6a17fa7b55d14aa8214eaaaecd \ - --hash=sha256:03a6f93c1ec3b7f2e77b5dbcc5573a2c21f12529a5c6bbe0f16f72303cc2fa4d \ - --hash=sha256:042c46ded7c288aeb07cf14a28b6c1e10b78fcba40171c3fa1e939377eeef0b5 \ - --hash=sha256:06144cd511cf2624873a035c5069cf297144f6e77a73ee3d7a55b605ec5efb42 \ - --hash=sha256:07c6290b1697b862c0478eab545eec949a0d0e4d6d03497f446d706da3b4f2de \ - --hash=sha256:10274a1fbeb8ec5d72966e17bb198a3104257aca4ac09d98667c5f8aca8c8548 \ - --hash=sha256:1101a5ebb083aecb625ebb6209d4105b58f647b093cb2dc8122d7b33f743cfe1 \ - --hash=sha256:114c95ef29302423b87d159075805f4ab973254a2638a5d7d046c94887cc87d7 \ - --hash=sha256:1238cb94638e610e972c60dac68e813f868dc7d6e982535270558443058d9d59 \ - --hash=sha256:12c42ec1e14f553c4f817e989365982e646e27211f10a0f717855b94a79c8906 \ - --hash=sha256:145986fe66647eb489f18d9a997567a3fd358584c4b5a808769113abc07466af \ - --hash=sha256:17a5a241e5997621a956a7f402a7433ef4221e5152809b785bec79e2323799f1 \ - --hash=sha256:1896f5e19ff3f0431c7ce2172adc54890fd97f86b59ced8ca1649145d9ffe35d \ - --hash=sha256:196a13319ad88d6d8ef5ab489ec4f44ddde2143c0c7d5b27786f6c3ffd56a7e1 \ - --hash=sha256:221c70f316241a78e77e607c227cefc8808d4e08f28d99c04f35694690e940be \ - --hash=sha256:2222be86d0b54f5dd5a38f45f17f315f737245e857bf0bdedc70734f84a13c02 \ - --hash=sha256:2224f89ffd0c5605ccce1ed7a584da162bc7c55f601ab1c946bc9de31a486b42 \ - --hash=sha256:23bf7fa51ac02e07fc7c96849b82946da47ae862dc8f86d183b2a4864fc38129 \ - --hash=sha256:2d69af5dea2de76fc485a83032a630523f985198b7e25be901ec60181587b01e \ - --hash=sha256:30c08f7d90415aa98b3c990385dea2939b0da55f38515e5b369b83655f8523be \ - --hash=sha256:357d4e32935c36588aaba057d734fa32428c360c9fc2e4442afbf1b646beee6e \ - --hash=sha256:35ab22d91de736e8966b980dc355cbcdd2c6dbbcfe275f9a2991bc8a91b3df65 \ - --hash=sha256:370c5afae3fa0658e11694a32b24c2778f6bc2d17718121f94ee185e69f26b54 \ - --hash=sha256:3758dd0a7f1fa57365ef2e781df0f0731d38b6e3772259d13dae4bd8a958d4b1 \ - --hash=sha256:39b21e212c55af06fa375e3dbf90a8a8e38792f3a910c580066d23563830ddd5 \ - --hash=sha256:3a56abc20a472baf0304c455721bc601477440d28ecfde8a03dde79ede07e0df \ - --hash=sha256:3c18ebc343e15be53049b3a2dce38fe82d58f37e20ab9094b3a39c0aa4f6bb47 \ - --hash=sha256:3d452fd08b5c72c5167c93e6867b5c08500bd40f2a21e1e854a500550b6cc36f \ - --hash=sha256:3e3680291c4a1d0dadfa84a2c459576a4af5133abb617905714339a0c73138cf \ - --hash=sha256:442cc9c952b2df400cda54bb04ab87330cf2cd08a8692cbbea36773531eb6f37 \ - --hash=sha256:46f714d2fb8ae2f4f29f23ada7f1e79b759fff5a70f94a1dac23af204c3ec9e4 \ - --hash=sha256:478b5bcd63c2e1357c5c7e16c070690df7b07f676b1c114d7b93e533c664309f \ - --hash=sha256:48b283b1dd6372e8de2a7a9a4c4d5dc06f4d4fd209b876f3c88a7a205a0c8f84 \ - --hash=sha256:4a28fd227808366b196a75476dced2eb35b351d6766ba9c858dc93319e87f4f1 \ - --hash=sha256:4ea1c034f95c9b056e856b794630b17f9fa3d57e4800ff1e503d3be0f9c9078c \ - --hash=sha256:51bd64741cc6fa065abd300ede1afe5a5291ece9c31da8b24884deda48bcc3f8 \ - --hash=sha256:54acdb6674a4661768d7bf7db32dfb9f46ab1d764f8aba6df75ce1a6a088724e \ - --hash=sha256:59baf88468dbc8d63b1887afd92bda52e40bb1561696e5819670601403810cec \ - --hash=sha256:5a1c5215be81035e629d5bc756650634d0bf31991038db7a0eccb90f025ce16d \ - --hash=sha256:5b0c99ba93a07d56f6df340bb79be53202a082b2fdb81bfe6190b741a3470d54 \ - --hash=sha256:5ea0c297e27133853b4d8a3eb799bff5a2dbd9f2f41537a240d337ac9b4df890 \ - --hash=sha256:5f0cfc27c539f07cf5c0a4cfe211d0b6cae039f8f40526dbaa71944e64b50a7b \ - --hash=sha256:6223a72fd0e4c7156353ec0f08a5f93623e1d3034d0e2683b9bb8ea674131b1d \ - --hash=sha256:62a9f70b52e0b5a95cfef4a5c5641b06983cadc5e538a3feeb5c00211f523ac2 \ - --hash=sha256:62fd185ef9df3c33d1c8178c5af105f762afbad96038de9a4ae100aa6297ca33 \ - --hash=sha256:6a3cb83d1552c0cd1b4906655b6a33fd4a8473229633a901c6b73bf86914dee9 \ - --hash=sha256:6adc5a36984624a70bf11d7184e20fa0a49aa7c47ffab43804106a1a695ea22e \ - --hash=sha256:6b6b0853b895fe0e98cbfc580d1ec3393d9302b4b1e96a77b3f5c91fdab899e6 \ - --hash=sha256:6ff665fb023a77386fe11685190cee1f60a7d635994a30d9b0a061533d470fce \ - --hash=sha256:7279d2110a28cebc738b6459ecda2771735a4c18465fbbd36b3288fe5ed92247 \ - --hash=sha256:76a085d7005236a767e3426148b2c407e53ad61695c562f8a81da2d373324901 \ - --hash=sha256:7771b601718fdde84832c3a434ca9bbf4ae9adbc49d84198b4110700c3c77c36 \ - --hash=sha256:79058c47dae6788504b5effb319961bcd72d7240551464b91d474bc0ed186d69 \ - --hash=sha256:7af486dabe8954d03b087f0021540897afe084f04e16ff5579e08cc46f871416 \ - --hash=sha256:7f02d09f70776579b926d889a4c9c235070a1f47c40458aeaca563fae5acfdb5 \ - --hash=sha256:8011224a62280e50dab346960c03cf47aca1a1e09e608c0fb33fd6e0cc8e9500 \ - --hash=sha256:8270544c361ed405a27a060dbc9ed2c124b084d96dfdc2d9a2510482aef981ad \ - --hash=sha256:84ac9499e48700399a5dd0ea7085b5091961fec52c68d66b4ec0d3cf7f4441b1 \ - --hash=sha256:84b535f00655ecafe1d929d1fb00ed5d6fa3051ea643ab2c161a3887b86f294b \ - --hash=sha256:851b9e1e4e8a4608e77c79714b2e77c0970d2ed7202a05e92ae407817481887b \ - --hash=sha256:85e85586565842f6932abebd4c18bcb1074223dc0b3576e7d173ca710622813a \ - --hash=sha256:87ebdf787d4888e3f3f2d523eadc6e18c6d18c6d0eb173801a189641627fb37e \ - --hash=sha256:8a3ce026d73290f42f08dafecbd82c193a74df280461fbf97300fec51fd133ee \ - --hash=sha256:9132cd363a68a4c3daa7c8704a654b1e39d3360f6f5b8ddd470608a945236c07 \ - --hash=sha256:99cd41ff91afd94896fea3bc002706b6ae4ce95727d06e4a0f39c0a8d8bd8b1a \ - --hash=sha256:9eeb3fcbc13ba40dfbdb22d01d196a28e9cef9ed4c29b60061a1e0e823a9929d \ - --hash=sha256:a06c76364a9360e33d6d23769aefdf7f66f38e2ffb60ceb1baaa4989d83b695c \ - --hash=sha256:a07891c3f4805442b31b71e84ba3cf29ed1aa9a428284e06deeb4b23e5b46343 \ - --hash=sha256:a24a81f9715ee42ef59a316cc11611c98fe23920f7c81861315c9f3ff4a230f4 \ - --hash=sha256:a252f21c27e38347e60111a3266b03827422a7d5525951aceee313aa68bab1d2 \ - --hash=sha256:a311d8e1da24be5c1ccf85cbfb06315dbaa1703d5a1eab3f6432c72b837917c8 \ - --hash=sha256:a5274669f37f2343635a347b91a60777621341ab3378e9c6ac9335eee704bddf \ - --hash=sha256:aa5e304a873fabddc11e484e9b6b738bd38bd7bed17b09aa84eecf5332e8b8bb \ - --hash=sha256:ab4af6352741a604c431c6072fce5bee33bf0f20dc7a56618d6bf6bb89e9810c \ - --hash=sha256:b553d04b5e778a8e56d57eb134aff42a92718ecba45e79c4764ecfa40efd92ff \ - --hash=sha256:b84800013769a78ccb9ef4659402e26d06867e337b61ec365f77ad008adea80e \ - --hash=sha256:b84ffdf877644e7096aa936991efeed873f7f3df57b9cd001312b7668ab08550 \ - --hash=sha256:bcaa50684dcaadfa599ac48f81103c756d791cfd85c97203d2217c593d48b860 \ - --hash=sha256:be9f2c802dcfce3f71298303aa5dad0dce440a76c52f2f60dacd8656dab78793 \ - --hash=sha256:c643734307300234fafa36bf2a040a7235f8f177ea1fd6ec1423aea6fb7b929f \ - --hash=sha256:c79cead5b5bc584d9c71451cb984d0e3a84e0c0937379c8efcbf27c8d661b851 \ - --hash=sha256:c7e057326434e441306226fbeb5d1aaf14a2637efe97ba668306635835f32ad7 \ - --hash=sha256:c912c259304cfb5ee584481cfb7ce1ff932b4d61e6c9140b8f19cb7b5ed82332 \ - --hash=sha256:ce66d8e46da2bb5ee313a745cbd2e391d319176c1f7a9451bfcd3a2fb920859b \ - --hash=sha256:ced2f09ef276fd58611a1ef502164ad266d2b75174e5a40cabbdb4033f9f6cf2 \ - --hash=sha256:cfe5a5fec635799ef33428f1e5e61bafa45a92a96190ba731561ba558ccc214d \ - --hash=sha256:d13e6725992e2d2fd7d81d4f5241952d13740121dfd501da09201be39b2c003a \ - --hash=sha256:d34d75f892b3ab73ba11cab5442cce7b3e168fd64162b16f0e1e0d09c508edef \ - --hash=sha256:d5b89cdfb2ee051b71e8c3c70bd81a9eff81100f736a269136fe1a68efe00474 \ - --hash=sha256:d5ed429d0b8edaac649e889b4ffcedb6c80b06629a3f93050e3dddfb99235bee \ - --hash=sha256:da028256b04ec30e5e0114b6f76172938c313991f0a2d3d894271315cf5d5e43 \ - --hash=sha256:dcbf65f1f66a26cdd88c35cf68fb4729c5d1cd2e88added72420541dfb212034 \ - --hash=sha256:dd34767fa19848d35659ffc0a75314f58c7af3f1cd87ec521e8292a1238398a3 \ - --hash=sha256:ddf799247318f34dbcd2efa8c95a8d0642674e926bb1774cf9b63dfd2a389d1c \ - --hash=sha256:de286598cc65d2b489411174b1faec2f5a7775fb3201fd925db2a76b4030f37d \ - --hash=sha256:e471bc5769ff073b058cfadb0d736b56ce067c8560eabeb0da88462df98c23e7 \ - --hash=sha256:e854312c4103f2ad4c0dc023b69b77ebfd2c89db5f86c4c94dc2353f9a92167e \ - --hash=sha256:ea8cd6ca0ee9f616aaef3afc6882e32c2cbf18b00d96313ffd76af650574034d \ - --hash=sha256:f2302660e32562a532b442480121aef8aa61a5bdb20b30bf0adab29f10a5a4b4 \ - --hash=sha256:f497a1ea81d4cd7c10ddcaa685135b9aabd291af3d55775a9ddf3cb7a364cdd9 \ - --hash=sha256:f4ddbe407477f04c45115d1a4e5bc480f753553b534d338d4c3358b1cdd0ea52 \ - --hash=sha256:f747dc8edcfe740130f28f32f3995e955494285717e86ee25af51db2219df08a \ - --hash=sha256:fad54e871165f6ec2f536063ac74c3104508a12963e64072ba44bd822de52b0c \ - --hash=sha256:fc459e5d73be2d6332fcfe8dbf3d8994671fe33c700f4565988ecfa511547253 \ - --hash=sha256:fd86572566fb40189a8260446158235159bc7a82dfbc87a3b39cf4fb57fcec1c +coverage[toml]==7.14.3 \ + --hash=sha256:0096fd7559178f0cc9cf088f2dbd2a02ef85bacaa69732c633517286b4494610 \ + --hash=sha256:02c41de2a88011b893050fc9830267d927a50a215f7ad5ec17349db7090ccf26 \ + --hash=sha256:0423d64c013057a06e70f070f073cec4b0cbc7d2b27f3c7007292f2ff1d52965 \ + --hash=sha256:0ee68f5c34812780f3a7063382c0a9fcbb99985b7ddcdcaa626e4f3fb2e0783a \ + --hash=sha256:11a7ec9f97ab950f4c5af62229befc7faf208fdbc0116d3902d7e306cf2c5abd \ + --hash=sha256:1551b4caac3e3ec9f2bfcec6bf3776e01c0edbdd2e240431a50ca1a1aac72c27 \ + --hash=sha256:16b206e521feb8b7133a45754643dead0538489cf8b783b90cf5f4e3299625fd \ + --hash=sha256:1a7563a443f3d53fdeb040ec8c9f7466aed7ca3dc5891aa09d3ca3625fa4387f \ + --hash=sha256:1bb93c2aa61d2a5b38f1526546d95cf4132cb681e541a337bf8dfd092be816e5 \ + --hash=sha256:1e3b91f9c4740aeb571ecf82e5e8d8e4ab62d34fcb5a5d4e5baa38c6f7d2857c \ + --hash=sha256:2415902f385a23dcc4ccd26e0ba803249a169af6a930c003a4c715eeb9a5444e \ + --hash=sha256:27d07a46500ba23515b838dbcf52512026af04090755cf6cc64166d88c9b9a1a \ + --hash=sha256:2bfc4dd0a912329eccc7484a7d0b2a38032b38c40663b1e1ac595f10c457954b \ + --hash=sha256:2e41fd3aab806770008279a93879b0924b16247e09ab537c043d08bbca53b4ab \ + --hash=sha256:338b19131ab1a6b767b462bfcbaa692e7ae22f24463e39d49b02a83410ff6b37 \ + --hash=sha256:360bec1f58e7243e3405d3bdf7a1a8115aa9b448d54dc7cd6f7b7e0e9406b62e \ + --hash=sha256:39e1dbbb6ff2c338e0196a482558a792a1de3aa64261196f5cdb3da016ad9cda \ + --hash=sha256:3c68df8e61f1e09633fefc7538297145623957a048534368c9d212782aa5e845 \ + --hash=sha256:3d74ff26299c4879ce3a4d826f9d3d4d556fd285fde7bbce3c0ef5a8ab1cec24 \ + --hash=sha256:3e5b550a128419373c2f6cec28a244207013ef15f5cbcff6a5ca09d1dfaaf027 \ + --hash=sha256:41de778bd41780586e2b04912079c73089ab5d839624e28db3bdb26de638da92 \ + --hash=sha256:47968988b367990ae4ab17523790c38cd125e02c6bfd379b6022be2d40bdc38c \ + --hash=sha256:4b60ca6d8af70473491a15a343cbabab2e8f9ea66a4376e81c7aa24876a6f977 \ + --hash=sha256:4d310baf69a4fbe8a098ce727e4808a34866ac718a6f759ae659cbd3221358bc \ + --hash=sha256:526ce9721116af23b1065089f0b75046fe521e7772ab94b641cd66b7a0421889 \ + --hash=sha256:583d50d59142f8549470bd6390471d0fe8b8c8d69d6a0f28ac71e05380cef640 \ + --hash=sha256:5952f8c1bda2a5347154450379316e6dfa4d934d62ca35f6784451e6f55074fb \ + --hash=sha256:5d788e5fd55347eef06ca0732c77d04a264de67e8ff24631270cdff3767a60cf \ + --hash=sha256:605ab2b566a22bd94834529d66d295c364aba84afd3e5498285c7a524017b1fc \ + --hash=sha256:611e62cb9386096d81b63e0a05330750268617231e7bd598e1fe77482a2c58a5 \ + --hash=sha256:6197e5a00183c11a8ce7c6abd18be1a9189fd8399084ffc95196f4f0db4f2137 \ + --hash=sha256:621e13c6108234d7960aaf5762ab5c3c00f33c30c15af06dcbff0c73bf112727 \ + --hash=sha256:62c7f79db2851c95ef020e5d28b97afde3daf9f7febcd35b53e05638f729063f \ + --hash=sha256:64b2055bb6e0dc945af35cdeceb3633e6ed9273475ef3af85592410fd6803803 \ + --hash=sha256:68520c90babfa2d560eca6d497921ed3a4f469623bd709733124491b2aa8ef3f \ + --hash=sha256:69918344541ed9c8368566c2adc03c0e33d4550d7faa87d1b35e49b6a3286ea9 \ + --hash=sha256:6a3693b4153394d265f44fb855fdc80e72403024d4d6f91c4871b334d028e4e0 \ + --hash=sha256:74fdd718d88fe144f4579b8747873a07ec3f04cb837d5faec5a25d9e22fa31a8 \ + --hash=sha256:7b27c822a8161afbe48e99f1adfb098d270ae7e0f7d7b0555ce110529bdb69cc \ + --hash=sha256:7dfe427045520d6abca33687dfef767b4f635015893a1816c5decb12eb72ce18 \ + --hash=sha256:7ea52fc08f007bcc494d4bb3df3851e95843d881860ba38fe2c64dc100db5e7d \ + --hash=sha256:830c1fca669c572dec37ce9c838224ee45aac5be0f6961edf871e82e49d6537c \ + --hash=sha256:8427f370ca67db4c975d2a26acfc0e5783ca0b52444dbc50278ace0f35445949 \ + --hash=sha256:878832eaac515b62decfa76965aed558775f86bf1fc8cca76993c0c84ae31aed \ + --hash=sha256:8ac012839ff7e396030f1e94e10553a431d14e4de2ab65cb3acb72bbd5628ca2 \ + --hash=sha256:8cec0ad652ec57790970d817490105bd917d783c2f7b38d6b58a0ca312e1a336 \ + --hash=sha256:8cf0f2509acb4619e2471a1951089054dd58ebea7a912066d2ea56dd4c24ca4a \ + --hash=sha256:90f7608aeb5d9b60b523b9fb2a4ee1973867cc4865a3f26fe6c7577073b70205 \ + --hash=sha256:92c22e19ce64ca3f2ad751f16f14df1468b4c231bd6af97185063a9c292a0cb3 \ + --hash=sha256:96150a9cf3468ea20f0bc5d0e21b3df8972c31480ef90fa7614b773cc6429665 \ + --hash=sha256:98a0859b0e98e43e1178a9402e19c8127766b14f7109a374d976e5a62c0e5c73 \ + --hash=sha256:9973ef2463f8e6cfb61a6324126bb3e17d67a85f22f58d856e583ea2e3ca6501 \ + --hash=sha256:9a3f142070eb7b82fc4085a55d887396f9c4e21250bccebe2ba22502c45b9647 \ + --hash=sha256:9be4e7d4c5ca0427889f8f9d614bd630c2be741b1de7699bca3b2b6c0e41003e \ + --hash=sha256:a090cbf9521e78ffdb2fcf448b72902afe9f5923ff6a12d5c0d0120200348af9 \ + --hash=sha256:a2335ea5fed26af2e831094964fa3f8fae60b45f7e37fcc2d3b615b2add3ad87 \ + --hash=sha256:a3c2134809e80fac091bfed18a6991b5a5eb5df5ae32b17ac4f4f99864b73dd7 \ + --hash=sha256:a571bd889cd36c5922ce8e42e059f9d37d02301531d11374afa4c87a578625d5 \ + --hash=sha256:a574912f3bde4b0619f6e97d01aa590b70998859244793769eb3a6df78ee56d3 \ + --hash=sha256:a64caee2193563601dbaaa55fe2dcf597debef04a2f8f1fa8a07aa4bb7ac7a1e \ + --hash=sha256:ac082660de8f429ba0ea363595abb838998570b9a7546777c60f413ab902bbde \ + --hash=sha256:b3d77f7f196abdef7e01415de1bce09f216189e83e58159cfeef2b92d0464994 \ + --hash=sha256:b3ff255799f5a1676c71c1c32ec01fd043aa09d57b3d95764b24992757184784 \ + --hash=sha256:b488bd4b23397db62e7a9459129d01ff06a846582a732efd24834b24a6ada498 \ + --hash=sha256:b75ee850fc2d7c831e883220c445b035f2224de2ba6103f1e56dbd237ab913f7 \ + --hash=sha256:b7f300ac92cd4b570724c8ffbbd0c130fee298d2447f41d5a3abf58976fae1de \ + --hash=sha256:beaab199b9e5ceaf5a225e16a9d4df136f2a1eae0a5c20de1e277c8a5225f388 \ + --hash=sha256:c02efd507227bde9969cab0db8f48890eb3b5dcad6afac57a4792df4133543ce \ + --hash=sha256:c66f9f9d4f1e9712eb9b1de5310f881d4e2188cfcba5065e1a8490f38687f2c4 \ + --hash=sha256:c90a7cdd5e380e1ce02f19792e2ac2fbfbf177e35a27e69fd3e873b30d895c0c \ + --hash=sha256:c946099774a7699de03cbd0ff0a64e21aed4525eed9d959adde4afe6d15758ef \ + --hash=sha256:cc96aa922e21d4bc5d5ed3c915cef27dfcbc13686f47d5e378d647fbfba655a2 \ + --hash=sha256:d20a15c622194234161535459affa8f7905830391c9ccfa060d495dbfe3a1c7f \ + --hash=sha256:d48400185564042287dc487c1f016a3397f18ab4f4c5d5ec36edc218f7ffa35b \ + --hash=sha256:d8e88f335544a47e22ae2e45b344772925ec65166555c958720d5ed971880891 \ + --hash=sha256:dc9b4e35e7c3920e925ba7f14886fd5fbe481232754624e832ddba66c7535635 \ + --hash=sha256:de76caefc8deabb0dd1678b6a980be97d14c8d87e213ac194dbf8b09e96d63fb \ + --hash=sha256:e0bb8a6bc7015efdf8a928753b25da1b9ca2d6f24ef04d2ee0688e486f32aae7 \ + --hash=sha256:e343fb086c9cd780b38622fea7c369acd64c1a0724312149b5d769c387a2b1f5 \ + --hash=sha256:e4ed44705ca4bead6fc977a8b741f2145608289b33c8a9b42a95d0f15aedbf4d \ + --hash=sha256:e574801e1d643561594aa021206c46d80b257e9853087090ba97bed8b0a509d3 \ + --hash=sha256:e6230e688c7c3e65cedd41a774eb4ec221adc6bfee13768231015b702d5e4150 \ + --hash=sha256:ea3169c7116eb6cdf7608c6c7da9ecfcb3da40688e3a510fac2d1d2bafd6dc35 \ + --hash=sha256:eadea7aba74e40adee867a8c0eec17b820b061d308a4b014f7a0e118c2b0aa61 \ + --hash=sha256:ed68faa5e85de2f3e400bc3f122e5c82735a58c8bb24b9f63a2215954ba17b2d \ + --hash=sha256:f0a47095963cfe054e0df178daca95aec21e680d6076da807c3add28dfe920f7 \ + --hash=sha256:f502e948e03e866538048bba081c075caaa62e5bda6ea5b7432e45f587eb462a \ + --hash=sha256:f82b6bb7d75a2613e85d07cefa3a8c973d0544a8993337f6e2728e4a1e94c305 \ + --hash=sha256:fa9e5c6857a7e80fa22ace5cf3550ae392bbfc322f1d8dd2d2d5a8be38cec027 \ + --hash=sha256:fb7e18afb6e903c1a92401a2f0501ac277dca527bb9ca6fe1f691a8a0026a0e8 \ + --hash=sha256:fbb8c3a98e779013786ae01d229662aeacbc77100efbd3f2f245219ace5af700 # via # -c src/backend/requirements-dev.txt # -r src/backend/requirements-dev.in @@ -446,15 +431,15 @@ django-slowtests==1.1.1 \ # via # -c src/backend/requirements-dev.txt # -r src/backend/requirements-dev.in -django-stubs==6.0.5 \ - --hash=sha256:7742b8e60afc68a8545158e2bdb103376d5a092f7902c17f370920a9c08eb957 \ - --hash=sha256:9fb9eede9b2fc47b36c3dc4a93652eb959dff45466ec4a580e4a22782192d746 +django-stubs==6.0.6 \ + --hash=sha256:c488fea05a9eac40ddbdc69887f63a5c0922cb13df285291ee99c9bbc89bc4f1 \ + --hash=sha256:dfc01e052e33c7f8f0c30c3ff8eda0903ee29ac710d1e46d9effd773744a69b0 # via # -c src/backend/requirements-dev.txt # -r src/backend/requirements-dev.in -django-stubs-ext==6.0.5 \ - --hash=sha256:1cc325e991303849bce70e19748981b225ef08b37256f263e113caf97cd3bcc0 \ - --hash=sha256:a9932c8233d6dd4e34ae0b192026379c1a9be8f0b7c27aa1fa09ae215169773e +django-stubs-ext==6.0.6 \ + --hash=sha256:5470c970f61a3ccf5aae7633feef1a097f944f417b955da200c9ac26ecd9134b \ + --hash=sha256:e6f09884e48d7c5b250a373dfa22aa3e83bb91b8babbd8d05187f6b92247f232 # via # -c src/backend/requirements-dev.txt # django-stubs diff --git a/src/backend/requirements-dev.txt b/src/backend/requirements-dev.txt index 1cbfd6f7ca..3b24ac287b 100644 --- a/src/backend/requirements-dev.txt +++ b/src/backend/requirements-dev.txt @@ -238,117 +238,102 @@ charset-normalizer==3.4.7 \ # -c src/backend/requirements.txt # pdfminer-six # requests -click==8.4.1 \ - --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \ - --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96 +click==8.4.2 \ + --hash=sha256:9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6 \ + --hash=sha256:e6f9f66136c816745b9d65817da91d61d957fb16e02e4dcd0552553c5a197b76 # via pip-tools -coverage[toml]==7.14.1 \ - --hash=sha256:0177614a0370f227888b4e436a7c55686d6a9f90eb1ade2b624ba685a1686e86 \ - --hash=sha256:01b7733daad0237daa01ef80fe2dfceffc911e6a17fa7b55d14aa8214eaaaecd \ - --hash=sha256:03a6f93c1ec3b7f2e77b5dbcc5573a2c21f12529a5c6bbe0f16f72303cc2fa4d \ - --hash=sha256:042c46ded7c288aeb07cf14a28b6c1e10b78fcba40171c3fa1e939377eeef0b5 \ - --hash=sha256:06144cd511cf2624873a035c5069cf297144f6e77a73ee3d7a55b605ec5efb42 \ - --hash=sha256:07c6290b1697b862c0478eab545eec949a0d0e4d6d03497f446d706da3b4f2de \ - --hash=sha256:10274a1fbeb8ec5d72966e17bb198a3104257aca4ac09d98667c5f8aca8c8548 \ - --hash=sha256:1101a5ebb083aecb625ebb6209d4105b58f647b093cb2dc8122d7b33f743cfe1 \ - --hash=sha256:114c95ef29302423b87d159075805f4ab973254a2638a5d7d046c94887cc87d7 \ - --hash=sha256:1238cb94638e610e972c60dac68e813f868dc7d6e982535270558443058d9d59 \ - --hash=sha256:12c42ec1e14f553c4f817e989365982e646e27211f10a0f717855b94a79c8906 \ - --hash=sha256:145986fe66647eb489f18d9a997567a3fd358584c4b5a808769113abc07466af \ - --hash=sha256:17a5a241e5997621a956a7f402a7433ef4221e5152809b785bec79e2323799f1 \ - --hash=sha256:1896f5e19ff3f0431c7ce2172adc54890fd97f86b59ced8ca1649145d9ffe35d \ - --hash=sha256:196a13319ad88d6d8ef5ab489ec4f44ddde2143c0c7d5b27786f6c3ffd56a7e1 \ - --hash=sha256:221c70f316241a78e77e607c227cefc8808d4e08f28d99c04f35694690e940be \ - --hash=sha256:2222be86d0b54f5dd5a38f45f17f315f737245e857bf0bdedc70734f84a13c02 \ - --hash=sha256:2224f89ffd0c5605ccce1ed7a584da162bc7c55f601ab1c946bc9de31a486b42 \ - --hash=sha256:23bf7fa51ac02e07fc7c96849b82946da47ae862dc8f86d183b2a4864fc38129 \ - --hash=sha256:2d69af5dea2de76fc485a83032a630523f985198b7e25be901ec60181587b01e \ - --hash=sha256:30c08f7d90415aa98b3c990385dea2939b0da55f38515e5b369b83655f8523be \ - --hash=sha256:357d4e32935c36588aaba057d734fa32428c360c9fc2e4442afbf1b646beee6e \ - --hash=sha256:35ab22d91de736e8966b980dc355cbcdd2c6dbbcfe275f9a2991bc8a91b3df65 \ - --hash=sha256:370c5afae3fa0658e11694a32b24c2778f6bc2d17718121f94ee185e69f26b54 \ - --hash=sha256:3758dd0a7f1fa57365ef2e781df0f0731d38b6e3772259d13dae4bd8a958d4b1 \ - --hash=sha256:39b21e212c55af06fa375e3dbf90a8a8e38792f3a910c580066d23563830ddd5 \ - --hash=sha256:3a56abc20a472baf0304c455721bc601477440d28ecfde8a03dde79ede07e0df \ - --hash=sha256:3c18ebc343e15be53049b3a2dce38fe82d58f37e20ab9094b3a39c0aa4f6bb47 \ - --hash=sha256:3d452fd08b5c72c5167c93e6867b5c08500bd40f2a21e1e854a500550b6cc36f \ - --hash=sha256:3e3680291c4a1d0dadfa84a2c459576a4af5133abb617905714339a0c73138cf \ - --hash=sha256:442cc9c952b2df400cda54bb04ab87330cf2cd08a8692cbbea36773531eb6f37 \ - --hash=sha256:46f714d2fb8ae2f4f29f23ada7f1e79b759fff5a70f94a1dac23af204c3ec9e4 \ - --hash=sha256:478b5bcd63c2e1357c5c7e16c070690df7b07f676b1c114d7b93e533c664309f \ - --hash=sha256:48b283b1dd6372e8de2a7a9a4c4d5dc06f4d4fd209b876f3c88a7a205a0c8f84 \ - --hash=sha256:4a28fd227808366b196a75476dced2eb35b351d6766ba9c858dc93319e87f4f1 \ - --hash=sha256:4ea1c034f95c9b056e856b794630b17f9fa3d57e4800ff1e503d3be0f9c9078c \ - --hash=sha256:51bd64741cc6fa065abd300ede1afe5a5291ece9c31da8b24884deda48bcc3f8 \ - --hash=sha256:54acdb6674a4661768d7bf7db32dfb9f46ab1d764f8aba6df75ce1a6a088724e \ - --hash=sha256:59baf88468dbc8d63b1887afd92bda52e40bb1561696e5819670601403810cec \ - --hash=sha256:5a1c5215be81035e629d5bc756650634d0bf31991038db7a0eccb90f025ce16d \ - --hash=sha256:5b0c99ba93a07d56f6df340bb79be53202a082b2fdb81bfe6190b741a3470d54 \ - --hash=sha256:5ea0c297e27133853b4d8a3eb799bff5a2dbd9f2f41537a240d337ac9b4df890 \ - --hash=sha256:5f0cfc27c539f07cf5c0a4cfe211d0b6cae039f8f40526dbaa71944e64b50a7b \ - --hash=sha256:6223a72fd0e4c7156353ec0f08a5f93623e1d3034d0e2683b9bb8ea674131b1d \ - --hash=sha256:62a9f70b52e0b5a95cfef4a5c5641b06983cadc5e538a3feeb5c00211f523ac2 \ - --hash=sha256:62fd185ef9df3c33d1c8178c5af105f762afbad96038de9a4ae100aa6297ca33 \ - --hash=sha256:6a3cb83d1552c0cd1b4906655b6a33fd4a8473229633a901c6b73bf86914dee9 \ - --hash=sha256:6adc5a36984624a70bf11d7184e20fa0a49aa7c47ffab43804106a1a695ea22e \ - --hash=sha256:6b6b0853b895fe0e98cbfc580d1ec3393d9302b4b1e96a77b3f5c91fdab899e6 \ - --hash=sha256:6ff665fb023a77386fe11685190cee1f60a7d635994a30d9b0a061533d470fce \ - --hash=sha256:7279d2110a28cebc738b6459ecda2771735a4c18465fbbd36b3288fe5ed92247 \ - --hash=sha256:76a085d7005236a767e3426148b2c407e53ad61695c562f8a81da2d373324901 \ - --hash=sha256:7771b601718fdde84832c3a434ca9bbf4ae9adbc49d84198b4110700c3c77c36 \ - --hash=sha256:79058c47dae6788504b5effb319961bcd72d7240551464b91d474bc0ed186d69 \ - --hash=sha256:7af486dabe8954d03b087f0021540897afe084f04e16ff5579e08cc46f871416 \ - --hash=sha256:7f02d09f70776579b926d889a4c9c235070a1f47c40458aeaca563fae5acfdb5 \ - --hash=sha256:8011224a62280e50dab346960c03cf47aca1a1e09e608c0fb33fd6e0cc8e9500 \ - --hash=sha256:8270544c361ed405a27a060dbc9ed2c124b084d96dfdc2d9a2510482aef981ad \ - --hash=sha256:84ac9499e48700399a5dd0ea7085b5091961fec52c68d66b4ec0d3cf7f4441b1 \ - --hash=sha256:84b535f00655ecafe1d929d1fb00ed5d6fa3051ea643ab2c161a3887b86f294b \ - --hash=sha256:851b9e1e4e8a4608e77c79714b2e77c0970d2ed7202a05e92ae407817481887b \ - --hash=sha256:85e85586565842f6932abebd4c18bcb1074223dc0b3576e7d173ca710622813a \ - --hash=sha256:87ebdf787d4888e3f3f2d523eadc6e18c6d18c6d0eb173801a189641627fb37e \ - --hash=sha256:8a3ce026d73290f42f08dafecbd82c193a74df280461fbf97300fec51fd133ee \ - --hash=sha256:9132cd363a68a4c3daa7c8704a654b1e39d3360f6f5b8ddd470608a945236c07 \ - --hash=sha256:99cd41ff91afd94896fea3bc002706b6ae4ce95727d06e4a0f39c0a8d8bd8b1a \ - --hash=sha256:9eeb3fcbc13ba40dfbdb22d01d196a28e9cef9ed4c29b60061a1e0e823a9929d \ - --hash=sha256:a06c76364a9360e33d6d23769aefdf7f66f38e2ffb60ceb1baaa4989d83b695c \ - --hash=sha256:a07891c3f4805442b31b71e84ba3cf29ed1aa9a428284e06deeb4b23e5b46343 \ - --hash=sha256:a24a81f9715ee42ef59a316cc11611c98fe23920f7c81861315c9f3ff4a230f4 \ - --hash=sha256:a252f21c27e38347e60111a3266b03827422a7d5525951aceee313aa68bab1d2 \ - --hash=sha256:a311d8e1da24be5c1ccf85cbfb06315dbaa1703d5a1eab3f6432c72b837917c8 \ - --hash=sha256:a5274669f37f2343635a347b91a60777621341ab3378e9c6ac9335eee704bddf \ - --hash=sha256:aa5e304a873fabddc11e484e9b6b738bd38bd7bed17b09aa84eecf5332e8b8bb \ - --hash=sha256:ab4af6352741a604c431c6072fce5bee33bf0f20dc7a56618d6bf6bb89e9810c \ - --hash=sha256:b553d04b5e778a8e56d57eb134aff42a92718ecba45e79c4764ecfa40efd92ff \ - --hash=sha256:b84800013769a78ccb9ef4659402e26d06867e337b61ec365f77ad008adea80e \ - --hash=sha256:b84ffdf877644e7096aa936991efeed873f7f3df57b9cd001312b7668ab08550 \ - --hash=sha256:bcaa50684dcaadfa599ac48f81103c756d791cfd85c97203d2217c593d48b860 \ - --hash=sha256:be9f2c802dcfce3f71298303aa5dad0dce440a76c52f2f60dacd8656dab78793 \ - --hash=sha256:c643734307300234fafa36bf2a040a7235f8f177ea1fd6ec1423aea6fb7b929f \ - --hash=sha256:c79cead5b5bc584d9c71451cb984d0e3a84e0c0937379c8efcbf27c8d661b851 \ - --hash=sha256:c7e057326434e441306226fbeb5d1aaf14a2637efe97ba668306635835f32ad7 \ - --hash=sha256:c912c259304cfb5ee584481cfb7ce1ff932b4d61e6c9140b8f19cb7b5ed82332 \ - --hash=sha256:ce66d8e46da2bb5ee313a745cbd2e391d319176c1f7a9451bfcd3a2fb920859b \ - --hash=sha256:ced2f09ef276fd58611a1ef502164ad266d2b75174e5a40cabbdb4033f9f6cf2 \ - --hash=sha256:cfe5a5fec635799ef33428f1e5e61bafa45a92a96190ba731561ba558ccc214d \ - --hash=sha256:d13e6725992e2d2fd7d81d4f5241952d13740121dfd501da09201be39b2c003a \ - --hash=sha256:d34d75f892b3ab73ba11cab5442cce7b3e168fd64162b16f0e1e0d09c508edef \ - --hash=sha256:d5b89cdfb2ee051b71e8c3c70bd81a9eff81100f736a269136fe1a68efe00474 \ - --hash=sha256:d5ed429d0b8edaac649e889b4ffcedb6c80b06629a3f93050e3dddfb99235bee \ - --hash=sha256:da028256b04ec30e5e0114b6f76172938c313991f0a2d3d894271315cf5d5e43 \ - --hash=sha256:dcbf65f1f66a26cdd88c35cf68fb4729c5d1cd2e88added72420541dfb212034 \ - --hash=sha256:dd34767fa19848d35659ffc0a75314f58c7af3f1cd87ec521e8292a1238398a3 \ - --hash=sha256:ddf799247318f34dbcd2efa8c95a8d0642674e926bb1774cf9b63dfd2a389d1c \ - --hash=sha256:de286598cc65d2b489411174b1faec2f5a7775fb3201fd925db2a76b4030f37d \ - --hash=sha256:e471bc5769ff073b058cfadb0d736b56ce067c8560eabeb0da88462df98c23e7 \ - --hash=sha256:e854312c4103f2ad4c0dc023b69b77ebfd2c89db5f86c4c94dc2353f9a92167e \ - --hash=sha256:ea8cd6ca0ee9f616aaef3afc6882e32c2cbf18b00d96313ffd76af650574034d \ - --hash=sha256:f2302660e32562a532b442480121aef8aa61a5bdb20b30bf0adab29f10a5a4b4 \ - --hash=sha256:f497a1ea81d4cd7c10ddcaa685135b9aabd291af3d55775a9ddf3cb7a364cdd9 \ - --hash=sha256:f4ddbe407477f04c45115d1a4e5bc480f753553b534d338d4c3358b1cdd0ea52 \ - --hash=sha256:f747dc8edcfe740130f28f32f3995e955494285717e86ee25af51db2219df08a \ - --hash=sha256:fad54e871165f6ec2f536063ac74c3104508a12963e64072ba44bd822de52b0c \ - --hash=sha256:fc459e5d73be2d6332fcfe8dbf3d8994671fe33c700f4565988ecfa511547253 \ - --hash=sha256:fd86572566fb40189a8260446158235159bc7a82dfbc87a3b39cf4fb57fcec1c +coverage[toml]==7.14.3 \ + --hash=sha256:0096fd7559178f0cc9cf088f2dbd2a02ef85bacaa69732c633517286b4494610 \ + --hash=sha256:02c41de2a88011b893050fc9830267d927a50a215f7ad5ec17349db7090ccf26 \ + --hash=sha256:0423d64c013057a06e70f070f073cec4b0cbc7d2b27f3c7007292f2ff1d52965 \ + --hash=sha256:0ee68f5c34812780f3a7063382c0a9fcbb99985b7ddcdcaa626e4f3fb2e0783a \ + --hash=sha256:11a7ec9f97ab950f4c5af62229befc7faf208fdbc0116d3902d7e306cf2c5abd \ + --hash=sha256:1551b4caac3e3ec9f2bfcec6bf3776e01c0edbdd2e240431a50ca1a1aac72c27 \ + --hash=sha256:16b206e521feb8b7133a45754643dead0538489cf8b783b90cf5f4e3299625fd \ + --hash=sha256:1a7563a443f3d53fdeb040ec8c9f7466aed7ca3dc5891aa09d3ca3625fa4387f \ + --hash=sha256:1bb93c2aa61d2a5b38f1526546d95cf4132cb681e541a337bf8dfd092be816e5 \ + --hash=sha256:1e3b91f9c4740aeb571ecf82e5e8d8e4ab62d34fcb5a5d4e5baa38c6f7d2857c \ + --hash=sha256:2415902f385a23dcc4ccd26e0ba803249a169af6a930c003a4c715eeb9a5444e \ + --hash=sha256:27d07a46500ba23515b838dbcf52512026af04090755cf6cc64166d88c9b9a1a \ + --hash=sha256:2bfc4dd0a912329eccc7484a7d0b2a38032b38c40663b1e1ac595f10c457954b \ + --hash=sha256:2e41fd3aab806770008279a93879b0924b16247e09ab537c043d08bbca53b4ab \ + --hash=sha256:338b19131ab1a6b767b462bfcbaa692e7ae22f24463e39d49b02a83410ff6b37 \ + --hash=sha256:360bec1f58e7243e3405d3bdf7a1a8115aa9b448d54dc7cd6f7b7e0e9406b62e \ + --hash=sha256:39e1dbbb6ff2c338e0196a482558a792a1de3aa64261196f5cdb3da016ad9cda \ + --hash=sha256:3c68df8e61f1e09633fefc7538297145623957a048534368c9d212782aa5e845 \ + --hash=sha256:3d74ff26299c4879ce3a4d826f9d3d4d556fd285fde7bbce3c0ef5a8ab1cec24 \ + --hash=sha256:3e5b550a128419373c2f6cec28a244207013ef15f5cbcff6a5ca09d1dfaaf027 \ + --hash=sha256:41de778bd41780586e2b04912079c73089ab5d839624e28db3bdb26de638da92 \ + --hash=sha256:47968988b367990ae4ab17523790c38cd125e02c6bfd379b6022be2d40bdc38c \ + --hash=sha256:4b60ca6d8af70473491a15a343cbabab2e8f9ea66a4376e81c7aa24876a6f977 \ + --hash=sha256:4d310baf69a4fbe8a098ce727e4808a34866ac718a6f759ae659cbd3221358bc \ + --hash=sha256:526ce9721116af23b1065089f0b75046fe521e7772ab94b641cd66b7a0421889 \ + --hash=sha256:583d50d59142f8549470bd6390471d0fe8b8c8d69d6a0f28ac71e05380cef640 \ + --hash=sha256:5952f8c1bda2a5347154450379316e6dfa4d934d62ca35f6784451e6f55074fb \ + --hash=sha256:5d788e5fd55347eef06ca0732c77d04a264de67e8ff24631270cdff3767a60cf \ + --hash=sha256:605ab2b566a22bd94834529d66d295c364aba84afd3e5498285c7a524017b1fc \ + --hash=sha256:611e62cb9386096d81b63e0a05330750268617231e7bd598e1fe77482a2c58a5 \ + --hash=sha256:6197e5a00183c11a8ce7c6abd18be1a9189fd8399084ffc95196f4f0db4f2137 \ + --hash=sha256:621e13c6108234d7960aaf5762ab5c3c00f33c30c15af06dcbff0c73bf112727 \ + --hash=sha256:62c7f79db2851c95ef020e5d28b97afde3daf9f7febcd35b53e05638f729063f \ + --hash=sha256:64b2055bb6e0dc945af35cdeceb3633e6ed9273475ef3af85592410fd6803803 \ + --hash=sha256:68520c90babfa2d560eca6d497921ed3a4f469623bd709733124491b2aa8ef3f \ + --hash=sha256:69918344541ed9c8368566c2adc03c0e33d4550d7faa87d1b35e49b6a3286ea9 \ + --hash=sha256:6a3693b4153394d265f44fb855fdc80e72403024d4d6f91c4871b334d028e4e0 \ + --hash=sha256:74fdd718d88fe144f4579b8747873a07ec3f04cb837d5faec5a25d9e22fa31a8 \ + --hash=sha256:7b27c822a8161afbe48e99f1adfb098d270ae7e0f7d7b0555ce110529bdb69cc \ + --hash=sha256:7dfe427045520d6abca33687dfef767b4f635015893a1816c5decb12eb72ce18 \ + --hash=sha256:7ea52fc08f007bcc494d4bb3df3851e95843d881860ba38fe2c64dc100db5e7d \ + --hash=sha256:830c1fca669c572dec37ce9c838224ee45aac5be0f6961edf871e82e49d6537c \ + --hash=sha256:8427f370ca67db4c975d2a26acfc0e5783ca0b52444dbc50278ace0f35445949 \ + --hash=sha256:878832eaac515b62decfa76965aed558775f86bf1fc8cca76993c0c84ae31aed \ + --hash=sha256:8ac012839ff7e396030f1e94e10553a431d14e4de2ab65cb3acb72bbd5628ca2 \ + --hash=sha256:8cec0ad652ec57790970d817490105bd917d783c2f7b38d6b58a0ca312e1a336 \ + --hash=sha256:8cf0f2509acb4619e2471a1951089054dd58ebea7a912066d2ea56dd4c24ca4a \ + --hash=sha256:90f7608aeb5d9b60b523b9fb2a4ee1973867cc4865a3f26fe6c7577073b70205 \ + --hash=sha256:92c22e19ce64ca3f2ad751f16f14df1468b4c231bd6af97185063a9c292a0cb3 \ + --hash=sha256:96150a9cf3468ea20f0bc5d0e21b3df8972c31480ef90fa7614b773cc6429665 \ + --hash=sha256:98a0859b0e98e43e1178a9402e19c8127766b14f7109a374d976e5a62c0e5c73 \ + --hash=sha256:9973ef2463f8e6cfb61a6324126bb3e17d67a85f22f58d856e583ea2e3ca6501 \ + --hash=sha256:9a3f142070eb7b82fc4085a55d887396f9c4e21250bccebe2ba22502c45b9647 \ + --hash=sha256:9be4e7d4c5ca0427889f8f9d614bd630c2be741b1de7699bca3b2b6c0e41003e \ + --hash=sha256:a090cbf9521e78ffdb2fcf448b72902afe9f5923ff6a12d5c0d0120200348af9 \ + --hash=sha256:a2335ea5fed26af2e831094964fa3f8fae60b45f7e37fcc2d3b615b2add3ad87 \ + --hash=sha256:a3c2134809e80fac091bfed18a6991b5a5eb5df5ae32b17ac4f4f99864b73dd7 \ + --hash=sha256:a571bd889cd36c5922ce8e42e059f9d37d02301531d11374afa4c87a578625d5 \ + --hash=sha256:a574912f3bde4b0619f6e97d01aa590b70998859244793769eb3a6df78ee56d3 \ + --hash=sha256:a64caee2193563601dbaaa55fe2dcf597debef04a2f8f1fa8a07aa4bb7ac7a1e \ + --hash=sha256:ac082660de8f429ba0ea363595abb838998570b9a7546777c60f413ab902bbde \ + --hash=sha256:b3d77f7f196abdef7e01415de1bce09f216189e83e58159cfeef2b92d0464994 \ + --hash=sha256:b3ff255799f5a1676c71c1c32ec01fd043aa09d57b3d95764b24992757184784 \ + --hash=sha256:b488bd4b23397db62e7a9459129d01ff06a846582a732efd24834b24a6ada498 \ + --hash=sha256:b75ee850fc2d7c831e883220c445b035f2224de2ba6103f1e56dbd237ab913f7 \ + --hash=sha256:b7f300ac92cd4b570724c8ffbbd0c130fee298d2447f41d5a3abf58976fae1de \ + --hash=sha256:beaab199b9e5ceaf5a225e16a9d4df136f2a1eae0a5c20de1e277c8a5225f388 \ + --hash=sha256:c02efd507227bde9969cab0db8f48890eb3b5dcad6afac57a4792df4133543ce \ + --hash=sha256:c66f9f9d4f1e9712eb9b1de5310f881d4e2188cfcba5065e1a8490f38687f2c4 \ + --hash=sha256:c90a7cdd5e380e1ce02f19792e2ac2fbfbf177e35a27e69fd3e873b30d895c0c \ + --hash=sha256:c946099774a7699de03cbd0ff0a64e21aed4525eed9d959adde4afe6d15758ef \ + --hash=sha256:cc96aa922e21d4bc5d5ed3c915cef27dfcbc13686f47d5e378d647fbfba655a2 \ + --hash=sha256:d20a15c622194234161535459affa8f7905830391c9ccfa060d495dbfe3a1c7f \ + --hash=sha256:d48400185564042287dc487c1f016a3397f18ab4f4c5d5ec36edc218f7ffa35b \ + --hash=sha256:d8e88f335544a47e22ae2e45b344772925ec65166555c958720d5ed971880891 \ + --hash=sha256:dc9b4e35e7c3920e925ba7f14886fd5fbe481232754624e832ddba66c7535635 \ + --hash=sha256:de76caefc8deabb0dd1678b6a980be97d14c8d87e213ac194dbf8b09e96d63fb \ + --hash=sha256:e0bb8a6bc7015efdf8a928753b25da1b9ca2d6f24ef04d2ee0688e486f32aae7 \ + --hash=sha256:e343fb086c9cd780b38622fea7c369acd64c1a0724312149b5d769c387a2b1f5 \ + --hash=sha256:e4ed44705ca4bead6fc977a8b741f2145608289b33c8a9b42a95d0f15aedbf4d \ + --hash=sha256:e574801e1d643561594aa021206c46d80b257e9853087090ba97bed8b0a509d3 \ + --hash=sha256:e6230e688c7c3e65cedd41a774eb4ec221adc6bfee13768231015b702d5e4150 \ + --hash=sha256:ea3169c7116eb6cdf7608c6c7da9ecfcb3da40688e3a510fac2d1d2bafd6dc35 \ + --hash=sha256:eadea7aba74e40adee867a8c0eec17b820b061d308a4b014f7a0e118c2b0aa61 \ + --hash=sha256:ed68faa5e85de2f3e400bc3f122e5c82735a58c8bb24b9f63a2215954ba17b2d \ + --hash=sha256:f0a47095963cfe054e0df178daca95aec21e680d6076da807c3add28dfe920f7 \ + --hash=sha256:f502e948e03e866538048bba081c075caaa62e5bda6ea5b7432e45f587eb462a \ + --hash=sha256:f82b6bb7d75a2613e85d07cefa3a8c973d0544a8993337f6e2728e4a1e94c305 \ + --hash=sha256:fa9e5c6857a7e80fa22ace5cf3550ae392bbfc322f1d8dd2d2d5a8be38cec027 \ + --hash=sha256:fb7e18afb6e903c1a92401a2f0501ac277dca527bb9ca6fe1f691a8a0026a0e8 \ + --hash=sha256:fbb8c3a98e779013786ae01d229662aeacbc77100efbd3f2f245219ace5af700 # via -r src/backend/requirements-dev.in cryptography==48.0.1 \ --hash=sha256:08a597acce1ff37f347400087776599e2348a3a8bc53b44120e463cd274efe4a \ @@ -422,13 +407,13 @@ django-silk==5.5.0 \ django-slowtests==1.1.1 \ --hash=sha256:3c6936d420c9df444ac03625b41d97de043c662bbde61fbcd33e4cd407d0c247 # via -r src/backend/requirements-dev.in -django-stubs==6.0.5 \ - --hash=sha256:7742b8e60afc68a8545158e2bdb103376d5a092f7902c17f370920a9c08eb957 \ - --hash=sha256:9fb9eede9b2fc47b36c3dc4a93652eb959dff45466ec4a580e4a22782192d746 +django-stubs==6.0.6 \ + --hash=sha256:c488fea05a9eac40ddbdc69887f63a5c0922cb13df285291ee99c9bbc89bc4f1 \ + --hash=sha256:dfc01e052e33c7f8f0c30c3ff8eda0903ee29ac710d1e46d9effd773744a69b0 # via -r src/backend/requirements-dev.in -django-stubs-ext==6.0.5 \ - --hash=sha256:1cc325e991303849bce70e19748981b225ef08b37256f263e113caf97cd3bcc0 \ - --hash=sha256:a9932c8233d6dd4e34ae0b192026379c1a9be8f0b7c27aa1fa09ae215169773e +django-stubs-ext==6.0.6 \ + --hash=sha256:5470c970f61a3ccf5aae7633feef1a097f944f417b955da200c9ac26ecd9134b \ + --hash=sha256:e6f09884e48d7c5b250a373dfa22aa3e83bb91b8babbd8d05187f6b92247f232 # via django-stubs django-test-migrations==1.5.0 \ --hash=sha256:1cbff04b1e82c5564a6f635284907b381cc11a2ff883adff46776d9126824f07 \ diff --git a/src/backend/requirements.in b/src/backend/requirements.in index 2c279968f9..50588bce64 100644 --- a/src/backend/requirements.in +++ b/src/backend/requirements.in @@ -1,12 +1,12 @@ # Please keep this list sorted - if you pin a version provide a reason django<6.0 # Django package blessed # CLI for Q Monitor -cryptography>=48.0.1 # Core cryptographic functionality +cryptography # Core cryptographic functionality django-anymail[amazon_ses,postal] # Email backend for various providers django-allauth[mfa,socialaccount,saml,openid,headless] # SSO for external providers via OpenID django-cleanup # Automated deletion of old / unused uploaded files django-cors-headers # CORS headers extension for DRF -django-dbbackup>=5.0.0 # Backup / restore of database and media files +django-dbbackup # Backup / restore of database and media files django-error-report-2 # Error report viewer for the admin interface django-filter # Extended filtering options django-flags # Feature flags @@ -16,7 +16,7 @@ django-mailbox # Email scraping django-markdownify # Markdown rendering django-money # Django app for currency management django-mptt # Modified Preorder Tree Traversal -django-redis>=7.0.0 # Redis integration +django-redis # Redis integration django-q2 # Background task scheduling django-q-sentry # sentry.io integration for django-q django-sesame # Magic link authentication @@ -46,7 +46,7 @@ ppf.datamatrix # Data Matrix barcode generator pypdf # PDF manipulation tools python-barcode[images] # Barcode generator python-dotenv # Environment variable management -pyyaml>=6.0.1 # YAML parsing +pyyaml # YAML parsing qrcode[pil] # QR code generator rapidfuzz # Fuzzy string matching sentry-sdk # Error reporting (optional) @@ -69,6 +69,3 @@ opentelemetry-instrumentation-system_metrics opentelemetry-instrumentation-wsgi opentelemetry-instrumentation-psycopg opentelemetry-instrumentation-pymysql - -# Pins -xmlsec==1.3.17 diff --git a/src/backend/requirements.txt b/src/backend/requirements.txt index 991ee30ec6..c9e27528a7 100644 --- a/src/backend/requirements.txt +++ b/src/backend/requirements.txt @@ -91,15 +91,15 @@ blessed==1.44.0 \ --hash=sha256:d3b5037f0143eb7c80b2000be5bcdf86161af68aed231b91deadbce4e7379785 \ --hash=sha256:e1d2ed93d3d90d0a1494a8b134d188c83fb89ae25590af638b921e8c1c8fa223 # via -r src/backend/requirements.in -boto3==1.43.34 \ - --hash=sha256:42595057324606928c6e2432b3093978e4d722e0d432bce942f2a385702c0a43 \ - --hash=sha256:444207c6c883d4df3ea3b2c36df43ad492b86e0b889eebd2fc1d5ea8db0a8a1a +boto3==1.43.36 \ + --hash=sha256:42942dde254673abcbc9e6e60017c88341a4f49d99d24e1f2e290fb38138c26f \ + --hash=sha256:587d7ee92a12e440ad12b0e7f11f3358f0c4d65b19f64726efc94aaf194aff28 # via # django-anymail # django-storages -botocore==1.43.34 \ - --hash=sha256:238a0269f33c5914b9343900b44767e783b3e8b6dcb6e065eac8b4495601c5df \ - --hash=sha256:ccc973cf30c6445b30afe5760f6dc949a80f1f862cb23d9c45747f2c814ece77 +botocore==1.43.36 \ + --hash=sha256:3c65fdc39ed01d8dfde1e961b34038aed03c459f8ddf80717a12ac006475e49d \ + --hash=sha256:4cae47d1b2d426316b85a0087d9e69e048f13bc003b5177d74639fe9dfd28205 # via # boto3 # s3transfer @@ -850,9 +850,9 @@ gunicorn==26.0.0 \ --hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \ --hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf # via -r src/backend/requirements.in -icalendar==7.1.3 \ - --hash=sha256:690f30aa50a76cbf854db5ad52654705db9c5cd0e1b152222f5d4b7854b60667 \ - --hash=sha256:eb03a0e215f30db689a72c49f18f998aabf17522eb0858a293c393510850727c +icalendar==7.2.0 \ + --hash=sha256:32dacc396101825b82f9f1bbdf691c02be613130d5ab7a457e553fcd20959fdd \ + --hash=sha256:77922b6be57dfcc2e94f93063d2fd7e948ada9b5bdf7b08bebbc684b1b66c7c4 # via django-ical idna==3.18 \ --hash=sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2 \ @@ -894,9 +894,9 @@ jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -jwcrypto==1.5.7 \ - --hash=sha256:70204d7cca406eda8c82352e3c41ba2d946610dafd19e54403f0a1f4f18633c6 \ - --hash=sha256:729463fefe28b6de5cf1ebfda3e94f1a1b41d2799148ef98a01cb9678ebe2bb0 +jwcrypto==1.5.8 \ + --hash=sha256:85aeb475f808d56bbc2f2ed1f6f73e6a317c4011a4321505f02f0aed695a3742 \ + --hash=sha256:c3d7114b6f6e65b52f6b7da817eb8cb8423e1da31e1ef13508447c81ecbdcc34 # via django-oauth-toolkit lxml==6.1.1 \ --hash=sha256:05a82eb6e1530a64f26225b55cbd178113bd0b5af1c2b625f25e5296742c26d2 \ @@ -1131,34 +1131,34 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -nh3==0.3.5 \ - --hash=sha256:0a09f51806fd51b4fedbf9ea2b61fef388f19aef0d62fe51199d41648be14588 \ - --hash=sha256:207c01801d3e9bb8ec08f08689346bdd30ce15b8bf60013a925d08b5388962a4 \ - --hash=sha256:23a312224875f72cd16bde417f49071451877e29ef646a60e50fcb69407cc18a \ - --hash=sha256:2c069570b06aa848457713ad7af4a9905691291548c4466a9ad78ee95808382b \ - --hash=sha256:38748140bf76383ab7ce2dce0ad4cb663855d8fbc9098f7f3483673d09616a17 \ - --hash=sha256:387abd011e81959d5a35151a11350a0795c6edeb53ebfa02d2e882dc01299263 \ - --hash=sha256:3bb854485c9b33e5bb143ff3e49e577073bc6bc320f0ff8fc316dd89c0d3c101 \ - --hash=sha256:45855e14ff056064fec77133bfcf7cd691838168e5e17bbef075394954dc9dc8 \ - --hash=sha256:45e6a65dc88a300a2e3502cb9c8e6d1d6b831d6fba7470643333609c6aab1f30 \ - --hash=sha256:488928988caad25ba14b1eb5bc74e25e21f3b5e40341d956f3ce4a8bc19460dc \ - --hash=sha256:48f45e3e914be93a596431aa143dedf1582557bf41a58153c296048d6e3798c9 \ - --hash=sha256:50d401ab2d8e86d59e2126e3ab2a2f45840c405842b626d9a51624b3a33b6878 \ - --hash=sha256:52d877980d7ca01dc3baf3936bf844828bc6f332962227a684ed79c18cce14c3 \ - --hash=sha256:559e4c73b689e9a7aa97ac9760b1bc488038d7c1a575aa4ab5a0e19ee9630c0f \ - --hash=sha256:6ea58cc44d274c643b83547ca9654a0b1a817609b160601356f76a2b744c49ad \ - --hash=sha256:72c5bdedec27fa33de6a5326346ea8aa3fe54f6ac294d54c4b204fb66a9f1e79 \ - --hash=sha256:84bdeb082544fbcb77a12c034dd77d7da0556fdc0727b787eb6214b958c15e29 \ - --hash=sha256:8f85285700a18e9f3fc5bff41fe573fa84f81542ef13b48a89f9fecca0474d3b \ - --hash=sha256:acfd354e61accbe4c74f8017c6e397a776916dfe47c48643cf7fd84ade826f93 \ - --hash=sha256:c357f1d042c67f135a5e6babb2b0e3b9d9224ff4a3543240f597767b01384ffd \ - --hash=sha256:c3aae321f67ae66cff2a627115f106a377d4475d10b0e13d97959a13486b9a88 \ - --hash=sha256:c88605d8d468f7fc1b31e06129bc91d6c96f6c621776c9b504a0da9beac9df5f \ - --hash=sha256:de8e8621853b6470fe928c684ee0d3f39ea8086cebafe4c416486488dea7b68d \ - --hash=sha256:e49c9b564e6bcb03ecd2f057213df9a0de15a95812ac9db9600b590db23d3ae9 \ - --hash=sha256:ea232933394d1d58bf7c4bb348dc4660eae6604e1ae81cd2ba6d9ed80d390f3b \ - --hash=sha256:eeedc90ed8c42c327e8e10e621ccfa314fc6cce35d5929f4297ff1cdb89667c4 \ - --hash=sha256:fe3a787dc76b50de6bee54ef242f26c41dfe47654428e3e94f0fae5bb6dd2cc1 +nh3==0.3.6 \ + --hash=sha256:082675ff87b9385ec430ffe6d5847ba7456cc39b73720cd4add472f9f4cffd56 \ + --hash=sha256:2411e8c3cee81a1ddd62c2a5d50585c28aa5566d373ad1db92536b95ddb24ef2 \ + --hash=sha256:25c733bee928530556b1db0ea46c52cf5aa686146e38e60a6fc7cb801ef91cec \ + --hash=sha256:2f90d9a0cfdbee218994fdaaeeb5a0fde62d08f35e4eef0378ec1e2200172fd0 \ + --hash=sha256:34d2b0d934156b87ee114f599a3ba9b8b9e17b5d79652ba3a13fa50903de965e \ + --hash=sha256:36d06341bd501240d320f5942481ed5e6846136b666e1ba4faf802b78ebc875f \ + --hash=sha256:43bc1ed3fa0716295fabee29ba42b2667e4a51d140b0a68e092170a765474fa6 \ + --hash=sha256:44673b27010051ab5a5e438a86ec31bbda61d4a77d7e900af6b7be3037c1abae \ + --hash=sha256:455469a29951edc92bc48b47ac2281c3f2609e6c4f6a047056449f8c2c23facf \ + --hash=sha256:4713502748f564fee0633b37b3403783ce0a3af3a3d148ad91025a5bdadb7bc6 \ + --hash=sha256:5276ef17bdba9ad8040575c74072008b13aae429436e9d0429e718bb5f90f4da \ + --hash=sha256:597a8e843bea00b2eb5520658dc24a9bb032e7fc9e7c2c0c4cd29420220c9796 \ + --hash=sha256:69bbb92865a693d909db3a700d3c01537533844d0948c1e9323561ce06ecda41 \ + --hash=sha256:69f365963f63a1e9bff53bdbb3c542c7c2efed3e163c9d5d83a772a2ac468c21 \ + --hash=sha256:82ca5bf427ad1b216b65ede1a2e2d87dc49bec417ceba0f297213107d3cd9d78 \ + --hash=sha256:889932a97fb4abb6f95fef1914c0d269ebfb60011e67121c1163059b9449dbb4 \ + --hash=sha256:905f877dc66dd7aea4a76e54bcb26acb5ff8216f720c0017ccf63e0e6035698e \ + --hash=sha256:a43ebd7543555c3ac1bc353023d0794e75cb76f6f18f19c32e95441496c0cc25 \ + --hash=sha256:d14bf7982e7a77c0c775634c29c07ce08b38a046df73e1c1f139b3e82f18a38e \ + --hash=sha256:e196fa70c2ff2eb4de7d3df3108f8f358c1d69dff20d45b11f20a5aa227ffb6d \ + --hash=sha256:e1b160831c9cdb06a6c79c2f9cdb11386602938f9af260d1c457a85add4f6f69 \ + --hash=sha256:e6b7beece07525dc6e6b0fc2f104442de2ba328360ad00e50cbe2e1fd620447d \ + --hash=sha256:edb2b4a1a27523e6cc7c417f8d21ce3d005243548b93e56b762b66b0c7f589f9 \ + --hash=sha256:f2f14b7ae1fca99c4a66c981aac3974e7fbc1ca30a12673d223ae1df76680917 \ + --hash=sha256:f338ac7d594c067679f1e99b4f5ec3906842979560f9d8f15d6bdfa39a353b10 \ + --hash=sha256:f3736c9dd3d1856f80cd031715b84ca75cda2bbb1ac802c3da26bfce590838d7 \ + --hash=sha256:f5ed5fe84aee7f39db95c214a7421bf0499fbf500fec6d86a4e29bfc37971438 # via -r src/backend/requirements.in oauthlib==3.3.1 \ --hash=sha256:0f0f8aa759826a193cf66c12ea1af1637f87b9b4622d46e866952bb022e538c9 \ @@ -1170,9 +1170,9 @@ openpyxl==3.1.5 \ --hash=sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2 \ --hash=sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050 # via tablib -opentelemetry-api==1.42.1 \ - --hash=sha256:51a69edacadbc03a8950ace1c4c21099cacc538820ac2c9e36277e78cebba714 \ - --hash=sha256:56c63bea9f77b62856be8c47600474acad853b2924b99b1687c4cb6297166716 +opentelemetry-api==1.43.0 \ + --hash=sha256:107d0d03857ea8fc7c5fcbbbd83f800c281f0d560553d61c1d675fccfd1761c1 \ + --hash=sha256:20acf45e9b21851926835292e4045d290acade1edd2ff3de86d2f069687ba1fd # via # -r src/backend/requirements.in # opentelemetry-exporter-otlp-proto-grpc @@ -1189,27 +1189,27 @@ opentelemetry-api==1.42.1 \ # opentelemetry-instrumentation-wsgi # opentelemetry-sdk # opentelemetry-semantic-conventions -opentelemetry-exporter-otlp==1.42.1 \ - --hash=sha256:2d9ebaed714377a67d224d46795ddcc11d2c877fa5de35fda70b6f3b010729a9 \ - --hash=sha256:aedd54545bb0587cd45210abdc8be545af9c01413f3307786e276df1e3c83bee +opentelemetry-exporter-otlp==1.43.0 \ + --hash=sha256:65aded6c50ee7dd2b9948c9d0e59ddb4ed4eea6e8532fba95cbe6a4a64a566ba \ + --hash=sha256:70f3fe740a64596d4157588a2ee7e4fd37d2acc0c0f522a2882b8c29316cd0f0 # via -r src/backend/requirements.in -opentelemetry-exporter-otlp-proto-common==1.42.1 \ - --hash=sha256:04f1f01fb597c4249dfcd7f8b861c902c2102369d376d9d346ff38de4469a2ee \ - --hash=sha256:f48d395ab815b444da118868977e9798ea354c25737d5cf39578ae894011c140 +opentelemetry-exporter-otlp-proto-common==1.43.0 \ + --hash=sha256:123c3f9cc87218562490c63b36f497bf3a722faf174a515d1443f31ababa6264 \ + --hash=sha256:c4e32ba6d6b13bdb2b8f6764c4fd28d00192826561aa04f6d14eedfce7ac076f # via # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-exporter-otlp-proto-grpc==1.42.1 \ - --hash=sha256:0ae1177e2038b18a929b3098215243631ef91136cba26b7e2b12790ceb7e87cc \ - --hash=sha256:975c4461f167dd8ed8857d68d3b6b25f3d272eab896f6a9470d0f5b90e2faf15 +opentelemetry-exporter-otlp-proto-grpc==1.43.0 \ + --hash=sha256:1b3e0627daa9bc21884d4a13946807c255eb558bfe5bdd543dffb6f4c9faee0d \ + --hash=sha256:6a10d1feacffffda19acacbf277b736094b1e2f4dbb98c90ccb2c6e1962e2ec6 # via opentelemetry-exporter-otlp -opentelemetry-exporter-otlp-proto-http==1.42.1 \ - --hash=sha256:00a16da1b312a1d6c7233d600d557c91df71125af73020f3b9a7765bd699d59d \ - --hash=sha256:bf142a21035d7571ac3a09cb2e5639f49886f243972883cfe777ed3bf02b734d +opentelemetry-exporter-otlp-proto-http==1.43.0 \ + --hash=sha256:647f603aa8efdbdb4dbff842e0729d0406a6fff26b295a72d3d60e7d963b2610 \ + --hash=sha256:fa8a42bb7d00ee5391f4c0b04d8e6a46c03caa437903296ab73a81dc11ba118f # via opentelemetry-exporter-otlp -opentelemetry-instrumentation==0.63b1 \ - --hash=sha256:32368d6ae52c8de20aa790a6ad86b10a76f09956092337ae37d675773990e541 \ - --hash=sha256:f1986716d52cc316ea5f60189098726a9071d8ecc0eee96c9ed110be08bade9c +opentelemetry-instrumentation==0.64b0 \ + --hash=sha256:133ab7ffca796557aec059bf6be3190a34b6dea987f25be3d9409e230cbdad8b \ + --hash=sha256:b47d528dead6271d7743114417eb67fc915bd9258111c48dbf9a4951d2efa88d # via # opentelemetry-instrumentation-dbapi # opentelemetry-instrumentation-django @@ -1220,64 +1220,64 @@ opentelemetry-instrumentation==0.63b1 \ # opentelemetry-instrumentation-sqlite3 # opentelemetry-instrumentation-system-metrics # opentelemetry-instrumentation-wsgi -opentelemetry-instrumentation-dbapi==0.63b1 \ - --hash=sha256:1bc842ddcacb7ec3622ef306ffdb3c584bf97df79d381e03604ea6eb23c63781 \ - --hash=sha256:406978ed56bcfc5fd246fd918e6b36d0f5de26fa396c78cf63326a7b530597c8 +opentelemetry-instrumentation-dbapi==0.64b0 \ + --hash=sha256:1caa96d438bf37f71dd778c9f1e03ba1f50b8ab54aeef68b2a630c93c05cddc6 \ + --hash=sha256:8e3a1528fc9753a04190a7e7bf0180c5abd059f3aa68ec3857edb363c9847c44 # via # opentelemetry-instrumentation-psycopg # opentelemetry-instrumentation-pymysql # opentelemetry-instrumentation-sqlite3 -opentelemetry-instrumentation-django==0.63b1 \ - --hash=sha256:909ea4afbb18f16eb811d7ac330ed0f6fda7765191d49bccb8cca38c4fbc005f \ - --hash=sha256:f2071d2f92e4779c5a14dd452b0dfe426343599e6efa9d888304fb639a9f3101 +opentelemetry-instrumentation-django==0.64b0 \ + --hash=sha256:3d2673b4f77156b15b1b119c8849b50e3644cfc325f7a24c03602596de2dbba4 \ + --hash=sha256:c1f628e53c22aa8f9cc9cbe6e61e781940da6eda5f910d26720ef8ac73e25afe # via -r src/backend/requirements.in -opentelemetry-instrumentation-psycopg==0.63b1 \ - --hash=sha256:4d74ec2dda8e54ead9bd71f134af984792f77e1d8809591ae53edadddd4c8fc0 \ - --hash=sha256:86819f4cccea21a47920807826495797b7261cc1893c8e855415e76fb7b8e2e8 +opentelemetry-instrumentation-psycopg==0.64b0 \ + --hash=sha256:a9835b8749db71a9c1e075ae81c084b1f370130341ceff6a231095f89f48a0c6 \ + --hash=sha256:e9f41fad425183392d97068dbe2ce6e938514520312cfd7bf409242bd800c013 # via -r src/backend/requirements.in -opentelemetry-instrumentation-pymysql==0.63b1 \ - --hash=sha256:2cf6a24e136b5b0c3f6e59675fc44b42ad2b97474b075a82859f9868a9252648 \ - --hash=sha256:6b54b83c86ac6c2e8dae642bbee4894e2283ceb5da23d571f1abb7060f7b62f4 +opentelemetry-instrumentation-pymysql==0.64b0 \ + --hash=sha256:f5ab8399f7d8952b1622f9938d56604b51f51e7882f5058d7fd4fa3509c458f4 \ + --hash=sha256:fc0da8eb158e0fb525f18e5be3bfa25dc0bc1d9e195c5fe31fbf919b55bd1a64 # via -r src/backend/requirements.in -opentelemetry-instrumentation-redis==0.63b1 \ - --hash=sha256:28d235159df43cc2bc8779af5c602afad1e08603fff75ac8ca34dd1bf30a9cb9 \ - --hash=sha256:f0e51c4006f68e340abbf28a7995feff004de78649697cbdf3bac0072cacd082 +opentelemetry-instrumentation-redis==0.64b0 \ + --hash=sha256:5458a541986f665b9d7e641421fa5d0c286f1813b452faab6f84503823719d52 \ + --hash=sha256:c37e194c1e8ff59944d5c2f18014ee18f244a103958b1f2482099525ae9099f9 # via -r src/backend/requirements.in -opentelemetry-instrumentation-requests==0.63b1 \ - --hash=sha256:513fcaa3d93debbdb359c00ce1a137a34a89ee908c51ac43beb7e8c18ac2b3cd \ - --hash=sha256:935c980a11e33bfd7ed969c741e4bd7c84077045651469f10e163534368d87f7 +opentelemetry-instrumentation-requests==0.64b0 \ + --hash=sha256:8213a20b6578c41aa05cc5b48419aea75e1584924a4904dfcf36524597e7cc96 \ + --hash=sha256:dcad4324ad97d785a5a3b9500acf3af3965b4c1d1b95776fa5e275b173d9541c # via -r src/backend/requirements.in -opentelemetry-instrumentation-sqlite3==0.63b1 \ - --hash=sha256:3d61afda8358dc32135fabd27e5934bd25ea0eed68d64c34508f24ba8d723efc \ - --hash=sha256:cc11c68cccde061dc8bcc5f80fe00bb0105a0fbb11b390859a23ca91ccd4e3b6 +opentelemetry-instrumentation-sqlite3==0.64b0 \ + --hash=sha256:2d46810db20543a209c6568c8d1220859563bc4135cd6d00461ef70e446a0297 \ + --hash=sha256:fc73cd28b7c77ddbec1d688113abe944805e9f085ff724729a8b7a4888efc3e7 # via -r src/backend/requirements.in -opentelemetry-instrumentation-system-metrics==0.63b1 \ - --hash=sha256:995051f47876d79461aed8b7aa205d4584d90794ef864342cc748929c389bb42 \ - --hash=sha256:d6d4d7a1a854be4165143cf6420ee5894188762eb367d7bf9da5be4a83a4b632 +opentelemetry-instrumentation-system-metrics==0.64b0 \ + --hash=sha256:38bc9c4ed4fccea2a68b1a43d57764649d1c3096927dc7244c5e7f173899044b \ + --hash=sha256:ec8280693cdf6ea9020384c3fe884eea64a43ae78f1e2f6edc20951c871aac7e # via -r src/backend/requirements.in -opentelemetry-instrumentation-wsgi==0.63b1 \ - --hash=sha256:03d61c4678ce82402e7f37b6a3dbd84cb97b85b3cb416a78c2e74c7c6d9451fa \ - --hash=sha256:86779715262227d3436bdfb16aabd1c524b0f236725a69e8754ceda76c6d79dc +opentelemetry-instrumentation-wsgi==0.64b0 \ + --hash=sha256:1cce6ea28d1800c154e6ccdf52f05bae2f05c5e28ee44f0dddb17ada26208986 \ + --hash=sha256:5a3b0174f39072c0abb749be4ae7e469c7585e87cdfaf63665657b1a7058c105 # via # -r src/backend/requirements.in # opentelemetry-instrumentation-django -opentelemetry-proto==1.42.1 \ - --hash=sha256:c6a51e6b4f05ae63565f3a113217f3d2bfaec68f78c02d7a6c85f9010d1cfca6 \ - --hash=sha256:dedb74cba2886c59c7789b227a7a670613025a07489040050aedff6e5c0fb43c +opentelemetry-proto==1.43.0 \ + --hash=sha256:224778df17e1f3fafeaaa21d874236ca5f6ffc2f86e0899298ec7351aac27924 \ + --hash=sha256:c58f1f7ef84bc7dc2834016c0c37fe0081dde7ca9f6339be1970fbf9cdaaa90d # via # opentelemetry-exporter-otlp-proto-common # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-sdk==1.42.1 \ - --hash=sha256:083cd4bbfaa5aa7b5a9e552430d9951219967cfb27aa61feb13a77aba1fc839d \ - --hash=sha256:8c834e8f8c9ba4171d4ec843d0cb8a67e4c7394d3f9e9297e582cbd9456ddbf7 +opentelemetry-sdk==1.43.0 \ + --hash=sha256:d1323a547c1ce69d6a069a17a44b7da82bb8b332051ecb074041f87642c86823 \ + --hash=sha256:d8187c81c162df9913e4003dd6485f7390d9a24fc17026ec7387b8b8218b08e9 # via # -r src/backend/requirements.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-semantic-conventions==0.63b1 \ - --hash=sha256:3daf963611334b365e98a57438183eb012d3bfb40b2d931a9af613476b8701a9 \ - --hash=sha256:dfe5ef4dee82586b746f522b818ceb298d00b3d59f660042bd79404bff8d0682 +opentelemetry-semantic-conventions==0.64b0 \ + --hash=sha256:72f76fb2d1582d9d033dd1fcd84532e961e6ff3d90d24ba6fabc72975a83864c \ + --hash=sha256:ea77e85e354b8f604ddbe5f3d9135216f982fa4d77e5859ac30f6d8a50505aa6 # via # opentelemetry-instrumentation # opentelemetry-instrumentation-dbapi @@ -1287,9 +1287,9 @@ opentelemetry-semantic-conventions==0.63b1 \ # opentelemetry-instrumentation-system-metrics # opentelemetry-instrumentation-wsgi # opentelemetry-sdk -opentelemetry-util-http==0.63b1 \ - --hash=sha256:6284194028c59cd439f8acfe388145069a6127f11dc077e1344a2094adacc3f8 \ - --hash=sha256:ba1268f00922ee522dba2ae38458060f99486e7385a8056985901ca9685adfff +opentelemetry-util-http==0.64b0 \ + --hash=sha256:8a86a220dbfc56d736f47f1e5c4e7932a21fcf69052312e1bcf166444dc79322 \ + --hash=sha256:c1e5350d25507c1afcd6076cf9ac062485a0a4f79cd9971366996fd3056bacdb # via # opentelemetry-instrumentation-django # opentelemetry-instrumentation-requests @@ -1423,21 +1423,19 @@ ppf-datamatrix==0.2 \ --hash=sha256:819be65eae444b760e178d5761853f78f8e5fca14fec2809b5e3369978fa9244 \ --hash=sha256:8f034d9c90e408f60f8b10a273baab81014c9a81c983dc1ebdc31d4ca5ac5582 # via -r src/backend/requirements.in -prettytable==3.17.0 \ - --hash=sha256:59f2590776527f3c9e8cf9fe7b66dd215837cca96a9c39567414cbc632e8ddb0 \ - --hash=sha256:aad69b294ddbe3e1f95ef8886a060ed1666a0b83018bbf56295f6f226c43d287 +prettytable==3.18.0 \ + --hash=sha256:439217116152244369caf3d9f1caf2f9fe29b03bd79e88d2928c8e718c95d680 \ + --hash=sha256:b3346e0e6f79180833aebaac088ae926340586cf6d7d991b9eb125b65f72313a # via pip-licenses -protobuf==6.33.6 \ - --hash=sha256:0cd27b587afca21b7cfa59a74dcbd48a50f0a6400cfb59391340ad729d91d326 \ - --hash=sha256:77179e006c476e69bf8e8ce866640091ec42e1beb80b213c3900006ecfba6901 \ - --hash=sha256:7d29d9b65f8afef196f8334e80d6bc1d5d4adedb449971fefd3723824e6e77d3 \ - --hash=sha256:9720e6961b251bde64edfdab7d500725a2af5280f3f4c87e57c0208376aa8c3a \ - --hash=sha256:a6768d25248312c297558af96a9f9c929e8c4cee0659cb07e780731095f38135 \ - --hash=sha256:bd56799fb262994b2c2faa1799693c95cc2e22c62f56fb43af311cae45d26f0e \ - --hash=sha256:c96c37eec15086b79762ed265d59ab204dabc53056e3443e702d2681f4b39ce3 \ - --hash=sha256:e2afbae9b8e1825e3529f88d514754e094278bb95eadc0e199751cdd9a2e82a2 \ - --hash=sha256:e9db7e292e0ab79dd108d7f1a94fe31601ce1ee3f7b79e0692043423020b0593 \ - --hash=sha256:f443a394af5ed23672bc6c486be138628fbe5c651ccbc536873d7da23d1868cf +protobuf==7.35.1 \ + --hash=sha256:11d6b0ec246892d85215b0a13ca6e0233cf5284b68f0ac02646427f4ff88a799 \ + --hash=sha256:230a75ddfc2de4806e56696ce9640c1cdfdb6543b7cfce98d42a4c0a0e7bdb87 \ + --hash=sha256:24f857477359a85c0c235261b8ba905fd51b2562f4a64ca1df5473f29850cbf6 \ + --hash=sha256:353652e4efd0bca5b5fc2656abf8307ef351f0cf938c9eba09f0e09c20a25c30 \ + --hash=sha256:4bc97768d8fe4ad6743c8a19403e314511ed9f6d13205b687e52421c023ac1b9 \ + --hash=sha256:74758715c53d7158fb76caf4f0cfdacc5329a4b1bb994f865d6cf302d413a1c4 \ + --hash=sha256:b73f9489a4b8b1c9cb1f8ed951c736392592edb24b9d6819f36d2e10b171d5b4 \ + --hash=sha256:ce115a26fe0c39a2c29973d914d327e516a6455464489fe3cd1e51a1b354f81a # via # googleapis-common-protos # opentelemetry-proto @@ -1509,9 +1507,9 @@ pynacl==1.6.2 \ --hash=sha256:d29bfe37e20e015a7d8b23cfc8bd6aa7909c92a1b8f41ee416bbb3e79ef182b2 \ --hash=sha256:fe9847ca47d287af41e82be1dd5e23023d3c31a951da134121ab02e42ac218c9 # via paramiko -pypdf==6.13.3 \ - --hash=sha256:c6e3f86afb625791510b02ad5480e94b63970bb957df75d44657c282ecc52224 \ - --hash=sha256:f3cb822769725f1bac658c406cfc9460399043f3750c2d3e4650e0a85eacabd7 +pypdf==6.14.2 \ + --hash=sha256:3f07891af76dc002657e04993ab9b4de81de29f9013b9761d0b7968bff12e946 \ + --hash=sha256:7873f502fe4385e79539b21d872392dc0c4e3714327c15881cbc7fbfd1f95b25 # via -r src/backend/requirements.in pyphen==0.17.2 \ --hash=sha256:3a07fb017cb2341e1d9ff31b8634efb1ae4dc4b130468c7c39dd3d32e7c3affd \ @@ -1718,9 +1716,9 @@ rapidfuzz==3.14.5 \ --hash=sha256:fbf1b8bb2695415b347f3727da1addca2acb82c9b97ac86bebf8b1bead1eb12d \ --hash=sha256:feedf219672eef83ea6be6f3bb093bba396a8560fc75be85ba225f082903df0a # via -r src/backend/requirements.in -redis==8.0.0 \ - --hash=sha256:a00c5355432051ac14e593b8b197fc76c887ee12d55a0984f69328a1115fdc49 \ - --hash=sha256:c938c18338585009f0bc310f4c7e4e4b4d37639356c4ac072cedf3af570c8dc7 +redis==8.0.1 \ + --hash=sha256:47daa35a058c23468d6437f17a8c76882cb316b838ef763036af99b96cedd743 \ + --hash=sha256:afc5a7a2f5a084f5b1880dec548dd45be17db7e43c82a30d84f952aefb05cfb0 # via django-redis referencing==0.37.0 \ --hash=sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231 \ @@ -1977,97 +1975,97 @@ whitenoise==6.12.0 \ --hash=sha256:f723ebb76a112e98816ff80fcea0a6c9b8ecde835f8ddda25df7a30a3c2db6ad \ --hash=sha256:fc5e8c572e33ebf24795b47b6a7da8da3c00cff2349f5b04c02f28d0cc5a3cc2 # via -r src/backend/requirements.in -wrapt==2.2.1 \ - --hash=sha256:036dfb40128819a751c6f451c6b9c10172c49e4c401aebcdb8ecf2aec1683598 \ - --hash=sha256:03df9ebed4c73ab93fa8c07e3d41d818dfca1852b15731a3de59457b27814624 \ - --hash=sha256:05d5cb74d1b232ec8cfa130a8f900708699ff2491d97b8f85a4cdc5996294b85 \ - --hash=sha256:07be671fa8875971222b0ba9059ed8b4dc738631122feba17c93aa36b4213e9a \ - --hash=sha256:09ac16c081bebfd15d8e4dfa5bdc805990bbd52249ecff22530da7a129d6120b \ - --hash=sha256:0d9ff006f420b2ec8296aa56ade43ea7da3e997e85769f0aafc5e0661aacb710 \ - --hash=sha256:0f68f478004475d97906686e702ddbddeaf717c0b68ad2794384308f2dc713ae \ - --hash=sha256:17de18fc12cea55b8a9587314cb830573e37fb33b247a7515696350863714188 \ - --hash=sha256:1ae574d65c9fa8e86f64f6a7c2668f9fcd507b183e0e577619f504b883cb0a6c \ - --hash=sha256:1c9934ea5d92957e3cd0adbc0845539dccfd62710ebe16195a8c66c53954db36 \ - --hash=sha256:1d676ee388bc42a04d56dd7deb5605244dac2e35cc2fadbb43c9fa25bbd93508 \ - --hash=sha256:1ffa9cfd4bdb581539951b14ae661ff20ed0c3599b3e911a131ee0ec5ac11337 \ - --hash=sha256:2076d2335085eb09b9547e7688656fa8f5cf0183eab589d33499cd353489d797 \ - --hash=sha256:211f595f8e7faae5c5930fcc64708f2ba36849e0ba0fd653a843de9fa8d7db77 \ - --hash=sha256:24c52546acf2ab82412f2ab6fc5948a7fe958d3b4f070202e8dcdd865489eaf9 \ - --hash=sha256:2d83966dc7f4f45e8b97b5933685ac2e6e67fc0e19246ea314bceb9a8970c956 \ - --hash=sha256:2de9e20769fe9c1f6dcdc893c6a89287c5ccf8537c90b5de78aed8017697aad5 \ - --hash=sha256:2e08688ab16525897da6589d56d0aebaf417bbe91c2d8e3b96203b1efa596e85 \ - --hash=sha256:2f8c90c8afde51969487be4e1343ae049b268854877d415c2510baf833775052 \ - --hash=sha256:368eac1e20fd0bb03dd3cc42bf9887154c3861b60989389ccb5fac032617d215 \ - --hash=sha256:3aafea2975caef8ca49400640dde02cc7426e798f24870ed01f490bc3cffd32f \ - --hash=sha256:3e2f02472a1cbbf3884b365714a810b5947134a95ad6952b554cb8cce9d492b0 \ - --hash=sha256:3ffad790d9d11d8ecf9f17c4bb671a5b4089e4d8b575c46c5129597f41f836b0 \ - --hash=sha256:401229e9d63ca09f9b8891ecf83798d26c11bbb445d11ed9f1836b6d4585b38a \ - --hash=sha256:436addbc4bb4fc0a88c702577f51195d7d73683a7f3e0e5b253d8404d7847243 \ - --hash=sha256:44255c84bc57554fed822e83e70036b51afa9edb56fc7ca56c54410ece7898c9 \ - --hash=sha256:50972a1d974ea07725a7f6b1cec5f8759008afd030a0024843ebe7d52de47f2b \ - --hash=sha256:5590d63f5243251641cf543009b4c9314a79d0598fdb8a8e4cfc918494536c53 \ - --hash=sha256:585916e210db57b23543342c2f298e42331b617fd0c934caf5c64df44de8640e \ - --hash=sha256:5f1845c2a8cc1180ccccfa45785dd06f562730d19ef75be180334254012b6283 \ - --hash=sha256:5fa9bf3b9e66336589d03f42abce2da1055ad5c69b0c2b764852a8471c9b9114 \ - --hash=sha256:61a0013344674d2b648bc6e6fe9828dd4fc1d3b4eb7523809792f8cb952e2f16 \ - --hash=sha256:61acce4257a9883669703c525447c5b4c392edf0f987ae77ec32668440158f0e \ - --hash=sha256:628f5220c7a904d5fc78f7075c8d7871433eb6d035c94728a22fdf85f193d2a8 \ - --hash=sha256:64b7deeda4b70408e382328d8bbe52a256fe9bc63ae3db86d804608367e5422c \ - --hash=sha256:6744f504375775d7609c82c8d3d94af1c9a6f05586984536905908ba905277b9 \ - --hash=sha256:67a97e5b6c457f0cd3cfc19ebb2d84463e60c3ece754cc831e4281a3ca29bb18 \ - --hash=sha256:69f2e9244542cb34dd59c7f073445b9e54ad9f3fce8d93606c368a1b499fc413 \ - --hash=sha256:6ce32763ac31ce94fe9aada947e479b1975012bff166da409b4b9e4e376cf7e5 \ - --hash=sha256:6f56a647e4eaf5f0ca40330fb070f566bdf9f7b0db89a1af20d71c28dcd7a0ab \ - --hash=sha256:727ab4244622cd6ad2390f322642090c877d2e83a608d2653a7643ae5368d926 \ - --hash=sha256:74d6a0c31472fe5d814917266b9f46495d7c61ed890af08b468acea92fb89a8d \ - --hash=sha256:78b0aa6bfb7be8deed0ab23e7aa028cc5210c29bc2d32a04d52b50e517a7307e \ - --hash=sha256:7975bc88ab4b0f72ef2a2d5ae9d77d87efb5ef95e8f8046242fa9afdaaf2030b \ - --hash=sha256:7a4fdb9326aab4a5a477a1640e5ad786a8495901009d7e7b038371edd23a9d2b \ - --hash=sha256:844c858fc3bb7eacc0ba8efa904935d16aac6a4470948ad1e7e55c9f5a2a665f \ - --hash=sha256:87bacdaf225117a342a20d9c03438d701c02112f6e3f351ce9b7f32354f14797 \ - --hash=sha256:8a983a603a18c8708f024f7f6991b2e66159219abbf894634c5056243c55f3cd \ - --hash=sha256:8d1b4d0e0c2119587a31f5c029abd547e0c81d93b89d394566fe1588659eb579 \ - --hash=sha256:9011395be8db1827d106c6449b4bb6dd17e331ff6ec521f227e4588f1c78e46f \ - --hash=sha256:93fc2bf40cd7f4a0256010dce073d44eeb4a351b9bca94d0477ce2b6e62532b3 \ - --hash=sha256:95821352042722cd9f1108874579a47989d0a7e12a37d87d2fc4af20fd99ab8a \ - --hash=sha256:9907a4402ab6db12b7077a0ea5d7a4d028ecb22c8eee2b53527080d347cd1562 \ - --hash=sha256:9a04c28c10ba7fd12842b109d2edb0678872a2fe65277ca4ff06a0d61edee245 \ - --hash=sha256:9a5934eaea872e17936b5f45501eba5ab0bce9a74122e172b663d7c28c459c4a \ - --hash=sha256:9b984d1eb252145d6302c1dbd5e87fc6d404d45531447c84eadec04bf1fcb027 \ - --hash=sha256:9c210a6994b21aa9b29e81c8d11560e8fdab54c117e9cff37870d0a27bde1343 \ - --hash=sha256:9d8f204c8e3a8bf9ece17e0a83d137fd807440977f8a5e762d59306795011440 \ - --hash=sha256:a8f7176b83664af44567e9cc06e0d3827823fcc1a5e52307ebb8ac3aa95860b9 \ - --hash=sha256:a9dec1aca52dddde7df94818310fa2fe79739c8f385b2014c4cb1035f5508199 \ - --hash=sha256:ab5be648d5a0b86b7438864f8df3c705a65cef35a2fd3e5561e3e203167e0f27 \ - --hash=sha256:abd621552ede77c4c69be7fac44ba911225b0c812b6ba604e5964cf98085b474 \ - --hash=sha256:ac2745950b2bff80219c15ebf2fa9d8427eba7e249739f97e55c9d169e47e9e1 \ - --hash=sha256:aed9658797d0b45d6c49adcfc6b41f66e6f2d0c6de3ec79e16cf4b1855df240f \ - --hash=sha256:b6c0febfe38f22df2eb565c0ce8a092bb80411e56861ca382c443da83105423f \ - --hash=sha256:b9cf53ba90717db2e292401de290776c498d4bbfb0d4a559ca2895db8b9dcb5c \ - --hash=sha256:ba519b2d765df9871a25879e6f7fa78948ea59a2a31f9c1a257e34b651994afc \ - --hash=sha256:c318a64b53d97b841d7b5e637517e50a27be64bc695128422953d4b21710954e \ - --hash=sha256:c3723ff8eb8721f4daac98bc0256f15158e05316d5e52648ce9cebee434fbdd5 \ - --hash=sha256:c754dafdf5aaf0b401b644a90a30046929a0dd1a536e0ff0ec959a59155d9c7f \ - --hash=sha256:c803a3d331796255af51ba2c79ed0ac8275865b516c09e61f248d1e7aff31ce9 \ - --hash=sha256:c8cc5094b08abeae52da9c73c8a32003623be691a5193df2f4e3eac3d557c394 \ - --hash=sha256:cf3638274ab9d9b724c9baa0b4c04e132cd6faefb78b4dd3dd1a02a4bdaad41e \ - --hash=sha256:d047f6498c973874ba08ac3f97c69a2c4b2211c8de6f4c205f75cb1c9522596e \ - --hash=sha256:d2beb1c7cab10603aecdc42f8edd6ff013f9a32e4543474e38e6b77ce9975aeb \ - --hash=sha256:d7f513d3185e6fec82d0c3518f2e6365d8b4e49f5f45f29640d5162d56a23b54 \ - --hash=sha256:dd57607acc85678925940bd5df0385ff8332083a32fa8d7a43f8767f4997263c \ - --hash=sha256:e0cb7e4dd71f4c32e5e84843cd3c4cd65dda034314004bbe1d7f99af2426ab80 \ - --hash=sha256:e3677c7146ce694874941ba82b57092cc4875445aadf29d72807351023105143 \ - --hash=sha256:e395f7bc31851ef9b612050368cb446e9bc14cd7454b025018980349caf25ae5 \ - --hash=sha256:e422b2d647a65d6b080cad5accd09055d3809bdff00c76fba8dca00ca935572a \ - --hash=sha256:ed55af48b3eb28f43228ca2306788892bcb629eb2b5c4876e2a3659872c2f17a \ - --hash=sha256:ed928d0fda15fc0adc8d13305c8b3c0f2fba5b0669950c9e6d019d9162a3b3e8 \ - --hash=sha256:f4e1a92032a39cd5e3c647ca57dbf33b6a1938fd975623175793f9dbb63236de \ - --hash=sha256:f53ac9f3ef573326d009ed809beff4efcac6451931c2b8132586da4b9e53ff31 \ - --hash=sha256:f5b9daf6b629fce418e0cc3dd0436eac045188fa35deadb7a7f3941d5b8203f9 \ - --hash=sha256:f6518b94edb9150452e9aba08027d4cc293433753ec1fbefb4629a21cbc74181 \ - --hash=sha256:f70db64e8266d7c45d3b735f2e08eeb434b5e03da9a479ae42b2e2e486a21a00 \ - --hash=sha256:fafb4e739e43544d12cb4abd1605fd4683b6ca6a9ad682b7fd8f4d21973eafa8 \ - --hash=sha256:fd0135d34387f5fd087d9be368ea77ea89cf2451dc1cd1c622d35021bcb3ab50 +wrapt==2.2.2 \ + --hash=sha256:0065a3b657cec06813b4241d2462ccec287f6863103d7445b725fb3a889736f9 \ + --hash=sha256:055e6fcfaa28e58c6a8c247d48b92be9d56f818b7068aa4f22b15b3343a09931 \ + --hash=sha256:0788e321027c999bf221b667bd4a54aaefd1a36283749a860ac3eb77daed0302 \ + --hash=sha256:07fdcb012821859168641acf68afad61ef9783cf37100af85f152550e9677194 \ + --hash=sha256:09f811d43f6f33ec7515f0be76b159569f4057ab54d3e079c3204dddb90afa2a \ + --hash=sha256:0abfd648dac9ac9c5b3aa9b523d27f1789046640b58dcd5652a720ddb325e1fc \ + --hash=sha256:0ad520e6daa9bbf136f14de735474dbec7dcc0891f718e1d274ce8dc92e645af \ + --hash=sha256:0e64826f920c42d9d9f87e8cc09ffae66c51ede12d59061a5a426deb9aa71745 \ + --hash=sha256:0e7070c7472582e31af3dfc2622b2381a0df7435110a9388ed8db5ffbce67efb \ + --hash=sha256:10adb01371408c6de504a6658b9886480f1a4919a83752748a387a504a21df79 \ + --hash=sha256:11d95fc2fbad3163596c39d440e6f21ca9fccece74b56e30a37ac2fca786a07c \ + --hash=sha256:173e5bb5ca350a6e0abab60b7ec7cdd7992a814cb14b4de670a28f067f105663 \ + --hash=sha256:1fc7691f070220215cccb2a20836b9adbaecb8ff22ad47abe63de5f110994fac \ + --hash=sha256:209112cafd963710a05d199aae431d79a28bc76eb8e6d1bbbb8ad24340722cae \ + --hash=sha256:2252f77663651b89255895f58cc6ac08fcb206d4371813e5af61bb62d4f7689c \ + --hash=sha256:25904acb9475f46c24fe0423dbc8fda8cc5fbc282ab3dc6e72e919748c53f4e9 \ + --hash=sha256:26fc73a1b15e0946d2942b9a4426d162b51676338327dc067ccd8d2d76385f94 \ + --hash=sha256:2cb07f414fab25dbe6b5c7398e1491423a5c81a6209533639969a6c928d474a4 \ + --hash=sha256:2cd7181ab1c31192ff5219269830744b5a62020b3a6d433588c4f1c95b8f8bff \ + --hash=sha256:2e096c9d39a59b35b63c9aacfbbbec2088ff51ff1fc31051acc60a07f42f273a \ + --hash=sha256:305d4c247d61c4115794a169141823c62f719525ddb90b23aa332741c77d2c28 \ + --hash=sha256:30f7424af5c5c345b7f26490e097f74a2ef45b3d08b664dc33571aee3bd3b56c \ + --hash=sha256:3179a4db066b53d40562e368b12895440c8f0953b6543b89d6acc41c0273996e \ + --hash=sha256:3442eee2a5798f9b451f1b2cd7518ce8b7e28a2a364696c414460a0e295c012a \ + --hash=sha256:385cb1866f20479e83299af585375bfa0a4b0c6c9907a981483ea782ea8ae406 \ + --hash=sha256:3a4eb7964ff4643d333c84f880bcf554652b2a1050aebc54ae696327f61acfaf \ + --hash=sha256:3b686cfc008776a3952d6213cb296ed7f45d782a8453936406faa89eac0835ab \ + --hash=sha256:3c4095803491f6ef72128914c28ec05bbad9758433bb35f6715a3e9c8e46fb2d \ + --hash=sha256:3dc3dcfc2da95d501905f10dc11a0dc622e91d8cdd8bbfcb63ca54afd131e556 \ + --hash=sha256:4250b43d1a129d947e083c4dc6baf333c9bb34edd26f912d5b0457841fc858ab \ + --hash=sha256:4402f57c5f0d0579599858ffbdd9bf4e3f0972f51096f2bd6cc7dab6b76ee49e \ + --hash=sha256:45c2f2768e790c9f8db90f239ef23a2af8e7570f25a35619ef902df4a738447f \ + --hash=sha256:4b481fb0c40d9fd90a5809911208da700987d373a20a4709dc9e3944af7a6bec \ + --hash=sha256:4bccea5cdecffa9dd70e343741f0e41e0a16619313d04b72f78bb525162ebcd0 \ + --hash=sha256:518b0c5e323511ec56a38894802ddd5e1222626484e68efe63f201854ad788e5 \ + --hash=sha256:5499236ad1dc116012e2a5dd943f3f31af12fce452128e2bbcbd55a7d3d4d14c \ + --hash=sha256:55b9a899e6fff5444f229d30aa6e9ac92d2216d9d60f33c771b5d76a760d5f8e \ + --hash=sha256:58f9f8d637c9a6e245c6ef5b109b67ec187d2faed23d1405656b51d96e0a5b56 \ + --hash=sha256:5bad217350f19ce99ca5b5e71d406765ea86fe541628426772b657375ee1c048 \ + --hash=sha256:5d0a142f7af07caeb5e5da87493162a7b8efa19ba919e550a746f7446e13fb30 \ + --hash=sha256:62415fd095bc590b842b6d092f2b5d9ccbaeb7e0b28535c03dcea2718b48636b \ + --hash=sha256:656593bb3f5529f03d27af4136c4d7b11990e470bcbc6fefa5ef218695bece55 \ + --hash=sha256:6c99012a22f735a85eed7c4b86a3e99c30fdd57d9e115b2b45f796264b58d0bf \ + --hash=sha256:6d1a6050405bf334be33bf66296f113563622972a34900ae6fa60fd283a1a900 \ + --hash=sha256:6e7e45b43d3c774d244fe7264378f5a3f0f383bc55a54a9866434e524540110f \ + --hash=sha256:6fe35fd51b74867d8b80174c277bd6bbf6a73e443f908129dc531c4b688a20d5 \ + --hash=sha256:7d2f6573561fa05002e5ee71529f4ab0a7dffed3e45b51013fe6298fe2723c02 \ + --hash=sha256:814f1bf3e0a7035f67a1db0cdaf5e2bbcaa4d7092db96673cfa467adeaab8591 \ + --hash=sha256:8374eb6b1a58809211e84ff835a182bb17ab2807a5bfef23204c8cff38178a00 \ + --hash=sha256:8417fd3c674d3c8023d080292d29301531a12daf8bd938dd419710dd2f464f2b \ + --hash=sha256:8636809939152be6ae20a6cef0fed9fe60f411b47847d0426a826884b469e971 \ + --hash=sha256:8ffbeaea6771a6eba6e6eeb09767864995726bc8240bb54baf88a9bb1db34d5c \ + --hash=sha256:94b00b00f806eb3ef2abe9049ed45994a81ee9284884d96e6b8314927c6cea3d \ + --hash=sha256:955f1d6e72a352e478de8d8b503abe301c5e139a141b62eb0923bd694995025f \ + --hash=sha256:9e8b648270c613720a202d9a45ebabc33261b22c3a839b115ac5bce8c0bb0d69 \ + --hash=sha256:9ee098171b07edba66ab69a9bf0251d3cbef654107e800feb24c0c6f30592728 \ + --hash=sha256:a28287413351cb198b8c5ddd045c56fac1d195808642cd264d1ab50426146650 \ + --hash=sha256:a2d78c363f97d8bd718ee40432c66395685e9e98528ccaa423c3355d1715a26d \ + --hash=sha256:a41e758d80dc0ab8c210f641ac892009d356cf1f955d97db544c8dd317b4d14c \ + --hash=sha256:a795d3c06e5fbf9ea2f13196180b77aeab1b4685917256ee0d014cc163d90063 \ + --hash=sha256:aa14b01804bce36c6d63d7b6a4f55df390f29f8648cc13a1f40b166f4d54680d \ + --hash=sha256:abf033b7e4542357659cd83ed6cd5033c43aaa1887044045ceb571528837f72f \ + --hash=sha256:abf8c20a2d72ee69e16328b3c91342c446e723bfe48bfcc4dded3b9722ac027f \ + --hash=sha256:b84cd4058001c9727b0e9980b7a9e66325b5ca748b1b578e822cade1bc6b304f \ + --hash=sha256:b89d8d73c82db2bb7e6090b3afd7973f980d24e905cc34394eab60b884b3bf67 \ + --hash=sha256:bbf00ee0cb55ec24e2b0995a71942b85b21a066db8f3f46e1dbfdb9433ffba81 \ + --hash=sha256:c20279cd1a29800815d7b2d6338b60a6c6e78263f9d6e62e0eda251ba9cae2d0 \ + --hash=sha256:c38510a21d5b9cf3e84c460d909e9f2a098667439fd42841bb081cab45835d68 \ + --hash=sha256:c427c9d06d859848a69f0d928fe28b5c33a941b2265d10a0e1f15cd244f1ee33 \ + --hash=sha256:c5d7825491bfa2d08b97e9557768987952c7b9ae687d06c3320b40a37ccb7f20 \ + --hash=sha256:c6c64c5d02578bc4c4bca4f0aef1504de933c1d5b4ac2710b9131111459506c8 \ + --hash=sha256:cd385a48b055bdc3630ab30e0c7fd8514a36904ec23f9cee7a65d887334a3cea \ + --hash=sha256:d01d8e0afc55823245a3b97a79c7c77464e31ea7a7b629a4bf26f9441dc1f18e \ + --hash=sha256:d09db0f7e8357060d3c38fc22a018aba683a796bf184360fd1a58f6fc180dc77 \ + --hash=sha256:d619e1eed9bd4f6ed9f24cd61971aa086fa86505289628d464bcf8a2c2e3f328 \ + --hash=sha256:d8a15813215f33fa83667bfc978b300e35669ea8bb424e970a1426bcb7bc6cca \ + --hash=sha256:dcaa5e1451bd8751d7bd1568dfa3321c78092a52a7ecb5d1a0f18a5791e1fd00 \ + --hash=sha256:dfb00cb7bb22099e2f64b7340fb96113639aa7260c0972af3797ace2297b936c \ + --hash=sha256:e542b7c5af91e2123a8aabf19894319d5ec4268d2a9ffd2f239386133fc47746 \ + --hash=sha256:e5a5290e4bf2f332fc29ce72ffb9a2fff678aaac047e2e9f5f7165cd7792e099 \ + --hash=sha256:e6fb7e94e8fe3e4c3067bb1653a91cce7c5e83acc119fdd41501b1bf74654617 \ + --hash=sha256:e7f10ee0bd53673bfd52b67cbce83336fe6cad90d2377b03baf66491d2bbfb91 \ + --hash=sha256:ec8f83949028366531383603139403cac7a826e4011955813cdd640017845ce5 \ + --hash=sha256:ef2cce266b5b0b07e19fa82e59673b81142b7a3607c8ed1254113d048ed668da \ + --hash=sha256:f1a2ff355ece6a111ca7a20dc86df6659c9205d3fcee674ca34f2a2854fd4e73 \ + --hash=sha256:f32fe639c39561ccc187bcae17e9271be0eb45f1c2952510d2f29b33ab577347 \ + --hash=sha256:f4bfd8d1eb438153eff8b8cfe87f032ba65731e1ce06138b5090f745a33f6f95 \ + --hash=sha256:f90038ab58fafb584801ca62d72384d7d5225d93c76f7b773c22fae545bd8066 \ + --hash=sha256:fa81c5b5fe8cd6c41e3a798533b81288279e5fdbde2128f21071922764281c99 \ + --hash=sha256:fb18fc51e813df0d9c98049e3bf2298a5495a648602040e21fa3c7329371159e # via # opentelemetry-instrumentation # opentelemetry-instrumentation-dbapi @@ -2136,9 +2134,7 @@ xmlsec==1.3.17 \ --hash=sha256:ed63cbd87dd69ebcf3a9f82d87b67818c9a7d656325dd4fb34d6c4dfbaa84017 \ --hash=sha256:eee89c268a35f8a08a8e9abef6f466b97577e94f5cac8bf32c25e97cd5020097 \ --hash=sha256:f3fac9ae679f66585925cc00c5f6839ae36c1d03157619571dee18acc05b9c01 - # via - # -r src/backend/requirements.in - # python3-saml + # via python3-saml zopfli==0.4.3 \ --hash=sha256:0087c9a6f0c8a052be0f6d1a9bb71b6caffdd3e10201d6d6166e28d482cebe6d \ --hash=sha256:47604eee5c6704bdf0e94d8391fe3b74ddb2abd84128fbcfdc3ee0fc265feaef \ From 1da71ca3b90718d71e42ddd09c0a1ff7d71c4e3f Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 27 Jun 2026 11:29:40 +1000 Subject: [PATCH 38/40] [UI] Stock column fix (#12268) * [UI] Fix StockColumn component * stock table rendering tweaks --- src/frontend/src/tables/ColumnRenderers.tsx | 20 +++++++++---------- src/frontend/src/tables/TableHoverCard.tsx | 2 +- .../src/tables/stock/StockItemTable.tsx | 1 + 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/frontend/src/tables/ColumnRenderers.tsx b/src/frontend/src/tables/ColumnRenderers.tsx index b2d4eb4f81..8d947bbe32 100644 --- a/src/frontend/src/tables/ColumnRenderers.tsx +++ b/src/frontend/src/tables/ColumnRenderers.tsx @@ -156,7 +156,7 @@ export function StockColumn(props: StockColumnProps): TableColumn { text = `# ${stock_item.serial}`; } - if (record.is_building) { + if (stock_item.is_building) { color = 'blue'; extra.push( {t`This stock item is in production`} ); - } else if (record.sales_order) { + } else if (stock_item.sales_order) { extra.push( {t`This stock item has been assigned to a sales order`} ); - } else if (record.customer) { + } else if (stock_item.customer) { extra.push( {t`This stock item has been assigned to a customer`} ); - } else if (record.belongs_to) { + } else if (stock_item.belongs_to) { extra.push( {t`This stock item is installed in another stock item`} ); - } else if (record.consumed_by) { + } else if (stock_item.consumed_by) { extra.push( {t`This stock item has been consumed by a build order`} ); - } else if (!record.in_stock) { + } else if (!stock_item.in_stock) { extra.push( {t`This stock item has expired`} ); - } else if (record.stale) { + } else if (stock_item.stale) { extra.push( {t`This stock item is stale`} ); } - if (record.in_stock) { + if (stock_item.in_stock) { if (allocated > 0) { if (allocated > quantity) { color = 'red'; @@ -267,7 +267,7 @@ export function StockColumn(props: StockColumnProps): TableColumn { } } - if (!record.in_stock) { + if (!stock_item.in_stock) { color = 'red'; } diff --git a/src/frontend/src/tables/TableHoverCard.tsx b/src/frontend/src/tables/TableHoverCard.tsx index 363af61133..913c6ced9b 100644 --- a/src/frontend/src/tables/TableHoverCard.tsx +++ b/src/frontend/src/tables/TableHoverCard.tsx @@ -68,7 +68,7 @@ export function TableHoverCard({ zIndex={zIndex} > - + {value} Date: Sat, 27 Jun 2026 03:30:28 +0200 Subject: [PATCH 39/40] chore(backend): Remove devops (#12265) * update sponsored ressources * remove az devops --- .devops/test_stats.yml | 79 ------------------------ CONTRIBUTING.md | 1 - README.md | 2 +- docs/docs/project/sponsored_resources.md | 2 + docs/mlc_config.json | 3 - 5 files changed, 3 insertions(+), 84 deletions(-) delete mode 100644 .devops/test_stats.yml diff --git a/.devops/test_stats.yml b/.devops/test_stats.yml deleted file mode 100644 index 5cf457b2e3..0000000000 --- a/.devops/test_stats.yml +++ /dev/null @@ -1,79 +0,0 @@ -trigger: - batch: true - branches: - include: - - master - - stable - - refs/tags/* - paths: - include: - - src/backend - -pool: - vmImage: ubuntu-latest -strategy: - matrix: - Python39: - PYTHON_VERSION: 3.12 - maxParallel: 3 - -steps: -- task: UsePythonVersion@0 - inputs: - versionSpec: '$(PYTHON_VERSION)' - architecture: 'x64' - -- task: PythonScript@0 - displayName: 'Export project path' - inputs: - scriptSource: 'inline' - script: | - """Search all subdirectories for `manage.py`.""" - from glob import iglob - from os import path - # Python >= 3.5 - manage_py = next(iglob(path.join('**', 'manage.py'), recursive=True), None) - if not manage_py: - raise SystemExit('Could not find a Django project') - project_location = path.dirname(path.abspath(manage_py)) - print('Found Django project in', project_location) - print('##vso[task.setvariable variable=projectRoot]{}'.format(project_location)) - -- script: | - python -m pip install --upgrade pip setuptools wheel uv - uv pip install --require-hashes -r src/backend/requirements.txt - uv pip install --require-hashes -r src/backend/requirements-dev.txt - sudo apt-get install poppler-utils - sudo apt-get install libpoppler-dev - uv pip install unittest-xml-reporting coverage invoke - displayName: 'Install prerequisites' - env: - UV_SYSTEM_PYTHON: 1 - -- script: | - pushd '$(projectRoot)' - invoke update --uv - coverage run manage.py test --testrunner xmlrunner.extra.djangotestrunner.XMLTestRunner --no-input - coverage xml -i - displayName: 'Run tests' - env: - INVENTREE_DB_ENGINE: sqlite3 - INVENTREE_DB_NAME: inventree - INVENTREE_MEDIA_ROOT: ./media - INVENTREE_STATIC_ROOT: ./static - INVENTREE_BACKUP_DIR: ./backup - INVENTREE_SITE_URL: http://localhost:8000 - INVENTREE_PLUGINS_ENABLED: true - UV_SYSTEM_PYTHON: 1 - INVENTREE_DEBUG: true - INVENTREE_LOG_LEVEL: INFO - -- task: PublishTestResults@2 - inputs: - testResultsFiles: "**/TEST-*.xml" - testRunTitle: 'Python $(PYTHON_VERSION)' - condition: succeededOrFailed() - -- task: PublishCodeCoverageResults@2 - inputs: - summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml' diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5fdb18c218..7b48b0db69 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,7 +23,6 @@ The InvenTree project is split into two main components: frontend and backend. T ``` InvenTree/ -├─ .devops/ # Files for Azure DevOps ├─ .github/ # Files for GitHub │ ├─ actions/ # Reused actions │ ├─ ISSUE_TEMPLATE/ # Templates for issues and pull requests diff --git a/README.md b/README.md index 7803cf8ec5..26afd2f362 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,6 @@ [![Documentation Status](https://readthedocs.org/projects/inventree/badge/?version=latest)](https://inventree.readthedocs.io/en/latest/?badge=latest) ![Docker Build](https://github.com/inventree/inventree/actions/workflows/docker.yaml/badge.svg) [![Netlify Status](https://api.netlify.com/api/v1/badges/9bbb2101-0a4d-41e7-ad56-b63fb6053094/deploy-status)](https://app.netlify.com/sites/inventree/deploys) -[![Performance Testing](https://dev.azure.com/InvenTree/InvenTree%20test%20statistics/_apis/build/status%2Fmatmair.InvenTree?branchName=testing)](https://dev.azure.com/InvenTree/InvenTree%20test%20statistics/_build/latest?definitionId=3&branchName=testing) [![OpenSSF Best Practices](https://bestpractices.coreinfrastructure.org/projects/7179/badge)](https://bestpractices.coreinfrastructure.org/projects/7179) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/inventree/InvenTree/badge)](https://securityscorecards.dev/viewer/?uri=github.com/inventree/InvenTree) @@ -202,6 +201,7 @@ Find a full list of used third-party libraries in the license information dialog Deploys by Netlify Translation by Crowdin
CodSpeed Badge + Flakiness Badge

diff --git a/docs/docs/project/sponsored_resources.md b/docs/docs/project/sponsored_resources.md index 0a733b0686..4c206bcc06 100644 --- a/docs/docs/project/sponsored_resources.md +++ b/docs/docs/project/sponsored_resources.md @@ -14,6 +14,8 @@ Individuals and companies can also support via [GitHub sponsors](https://github. - [Codecov](https://codecov.io) - Code coverage as a service, used to track the code coverage of the various components - [Netlify](https://www.netlify.com/) - Static site hosting provider, used to test deploy the frontend and website - [Depot](https://depot.dev/?utm_source=inventree) - Docker build accelerator, used to build the multi-arch images for the InvenTree docker image + - [CodSpeed](https://codspeed.io/) - Performance testing platform, used to track the performance of a few performance benchmarks +- [Flakiness](https://flakiness.io/) - Frontend test flakiness detection, used to track the flakiness of the various test harnesses ## Past Supporters diff --git a/docs/mlc_config.json b/docs/mlc_config.json index a3e538ca10..91d6692af8 100644 --- a/docs/mlc_config.json +++ b/docs/mlc_config.json @@ -31,9 +31,6 @@ }, { "pattern": "https://opensource.org/license/MIT" - }, - { - "pattern": "^https://dev.azure.com" } ] }