Compare commits
1847 Commits
feature/主题
...
feature/修改
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0630285483 | ||
|
|
da48e0aea2 | ||
|
|
4e94b8b4c8 | ||
|
|
6af611b7c9 | ||
|
|
9a157125ba | ||
|
|
b526565ac4 | ||
|
|
690a66b6a1 | ||
|
|
c0db402f5e | ||
|
|
d634cf20ba | ||
|
|
220af93ed6 | ||
|
|
eb6607be00 | ||
|
|
4b2e58a66d | ||
|
|
9c5b3d7c4e | ||
|
|
9cb1b8c5aa | ||
|
|
e108e2d5d6 | ||
|
|
90c87f7ddb | ||
|
|
f0bfd18549 | ||
|
|
c86fd099eb | ||
|
|
5cb1e3c838 | ||
|
|
45b300f8a1 | ||
|
|
a30c620823 | ||
|
|
263b8ddec7 | ||
|
|
89eccb40ac | ||
|
|
761d0b0417 | ||
|
|
f22ee428b6 | ||
|
|
1a860a5eb9 | ||
|
|
96a4ee4e26 | ||
|
|
80f0284c3c | ||
|
|
bcba08042b | ||
|
|
25ee2136c3 | ||
|
|
50f5815070 | ||
|
|
b43c3496a1 | ||
|
|
f1972ca572 | ||
|
|
5f2600c96f | ||
|
|
040b3b16f0 | ||
|
|
67f3c312de | ||
|
|
f26b4510cf | ||
|
|
053fa3feb3 | ||
|
|
59670fb3d7 | ||
|
|
8dfef16b51 | ||
|
|
3d1dd533b5 | ||
|
|
83d1d397f5 | ||
|
|
0a9cfd916a | ||
|
|
2e5dd55a7b | ||
|
|
4fb57373d5 | ||
|
|
8a85581347 | ||
|
|
22c388f52c | ||
|
|
0103024f1c | ||
|
|
988241a1bd | ||
|
|
92af278451 | ||
|
|
19b062f5ac | ||
|
|
7897e6e55b | ||
|
|
259f12a11f | ||
|
|
c6b1c5e047 | ||
|
|
38c89a4167 | ||
|
|
59683790b7 | ||
|
|
ceae788ecc | ||
|
|
f04cbac8d9 | ||
|
|
36db60812e | ||
|
|
3c47553be6 | ||
|
|
c535808d5f | ||
|
|
d8a876796a | ||
|
|
d777970a9b | ||
|
|
d1e9254996 | ||
|
|
028eb18dd8 | ||
|
|
c4ddd067e7 | ||
|
|
48cba4274b | ||
|
|
9df62129b7 | ||
|
|
65330b083b | ||
|
|
543f1a8e9b | ||
|
|
19156f5944 | ||
|
|
9ac3ef7c93 | ||
|
|
3f9eb762f9 | ||
|
|
ef0e09ba4b | ||
|
|
eb2db1dfdd | ||
|
|
180db6b91e | ||
|
|
482dbb9baa | ||
|
|
4391a4e145 | ||
|
|
010fbb23b0 | ||
|
|
7f6444cc89 | ||
|
|
b5767970a4 | ||
|
|
422e4bda6c | ||
|
|
29790b7760 | ||
|
|
310a2de34f | ||
|
|
12a54d1f2a | ||
|
|
f19a1a282a | ||
|
|
cc7a72d6f4 | ||
|
|
1681e9e4da | ||
|
|
cf3514e407 | ||
|
|
abdb636176 | ||
|
|
85649daef6 | ||
|
|
8eee9d9173 | ||
|
|
c104ecf24b | ||
|
|
961b4f8e2d | ||
|
|
0a4c86f601 | ||
|
|
9e5843c4a8 | ||
|
|
e9bca64f20 | ||
|
|
34ea140941 | ||
|
|
0dc94fa69b | ||
|
|
4c9fbab471 | ||
|
|
51685ba68b | ||
|
|
04de8fe9de | ||
|
|
bb29db2ff5 | ||
|
|
3f86dd48ec | ||
|
|
00802f9fc0 | ||
|
|
07230703d8 | ||
|
|
4cd2cbe1a7 | ||
|
|
6bddc4c262 | ||
|
|
4faeda11b8 | ||
|
|
3a484682fa | ||
|
|
556c3cb4bb | ||
|
|
000280e53a | ||
|
|
4dd733c466 | ||
|
|
92e522905c | ||
|
|
2ef832c17e | ||
|
|
7fd92e44b3 | ||
|
|
392784041c | ||
|
|
02e5972272 | ||
|
|
eb3583222c | ||
|
|
aac5195b4d | ||
|
|
715119d250 | ||
|
|
9ed3930a1b | ||
|
|
2580e0c795 | ||
|
|
f4f1c9f839 | ||
|
|
827e056dc8 | ||
|
|
02e4987281 | ||
|
|
e89b8ac65c | ||
|
|
f0b972e705 | ||
|
|
5c220af28c | ||
|
|
82947a909e | ||
|
|
18dcb79116 | ||
|
|
8d1e4a89c2 | ||
|
|
48809cd654 | ||
|
|
35fd1e329d | ||
|
|
af289b7030 | ||
|
|
5b3ee99bf3 | ||
|
|
be975ea901 | ||
|
|
1451539bb4 | ||
|
|
154e7de8a4 | ||
|
|
d21b25467b | ||
|
|
71b7b07949 | ||
|
|
4115bbb05e | ||
|
|
c380d99a26 | ||
|
|
a0d50edc84 | ||
|
|
2aa29e5cbf | ||
|
|
32907109ef | ||
|
|
303fcfaabd | ||
|
|
f767433a96 | ||
|
|
3eae506e48 | ||
|
|
0ddefacda7 | ||
|
|
42a748e0f8 | ||
|
|
63263e3509 | ||
|
|
aaf782b4a1 | ||
|
|
ce069e8b50 | ||
|
|
609ea62d0d | ||
|
|
f7f9cf1e43 | ||
|
|
75eb359c5a | ||
|
|
7906ff2836 | ||
|
|
5e97747ec1 | ||
|
|
ead758d34c | ||
|
|
decb6c7792 | ||
|
|
b83e5575dc | ||
|
|
a003987111 | ||
|
|
db2052a019 | ||
|
|
ca06d11d79 | ||
|
|
e63eed3405 | ||
|
|
d05c0951eb | ||
|
|
0500a2dd02 | ||
|
|
37ea48dbee | ||
|
|
48cd8399f4 | ||
|
|
ee3c0d702d | ||
|
|
1212ea0930 | ||
|
|
ed8c39d005 | ||
|
|
fe4782eecf | ||
|
|
57bfec02eb | ||
|
|
84140f77a0 | ||
|
|
c91cb525b0 | ||
|
|
53c4b01a74 | ||
|
|
5b535fae18 | ||
|
|
ba79b358a9 | ||
|
|
c788392b36 | ||
|
|
d3819e818b | ||
|
|
0725b7a7ba | ||
|
|
a07563e166 | ||
|
|
2407d2cfc7 | ||
|
|
f38c062804 | ||
|
|
0363f8c8a3 | ||
|
|
2e83fc2e44 | ||
|
|
952e663b31 | ||
|
|
bb78404772 | ||
|
|
e5b6f2dcdc | ||
|
|
3458deef09 | ||
|
|
f8d1bff5d3 | ||
|
|
d3e050bd21 | ||
|
|
c470935cc5 | ||
|
|
b053edd655 | ||
|
|
0324acd4fd | ||
|
|
3eb274aa01 | ||
|
|
d4c786ff1e | ||
|
|
ab58f5b40c | ||
|
|
83327136eb | ||
|
|
cfd2910ead | ||
|
|
e444e27cad | ||
|
|
64050ac461 | ||
|
|
6062ebdf9c | ||
|
|
698ea31d31 | ||
|
|
d52c208ba9 | ||
|
|
38e3f5f31c | ||
|
|
4477b12f8d | ||
|
|
76ce105289 | ||
|
|
0b9f64fbfc | ||
|
|
7dac3ad21a | ||
|
|
aeca8ef2b2 | ||
|
|
3b7e120eb2 | ||
|
|
56dacd0815 | ||
|
|
415717ee10 | ||
|
|
716e04a0a8 | ||
|
|
8ebf71dc23 | ||
|
|
1a702512e5 | ||
|
|
d5a1a82c72 | ||
|
|
5e3aff31e0 | ||
|
|
d1eba51f61 | ||
|
|
df42932630 | ||
|
|
3c700e57d1 | ||
|
|
fa66b45373 | ||
|
|
0facdee321 | ||
|
|
4d45b81ebc | ||
|
|
4765e34c09 | ||
|
|
7717731a22 | ||
|
|
f639e59b91 | ||
|
|
2352f862ee | ||
|
|
c3bd0b1391 | ||
|
|
776877f7a4 | ||
|
|
cdf8e7227c | ||
|
|
827b8337bd | ||
|
|
603f9e3f34 | ||
|
|
f971216c03 | ||
|
|
cfc044b7bc | ||
|
|
9120ebe6f7 | ||
|
|
02f1805505 | ||
|
|
b937372f82 | ||
|
|
89f3f4b493 | ||
|
|
9a47a4c094 | ||
|
|
20436ff6ac | ||
|
|
70218f29ac | ||
|
|
59677c0304 | ||
|
|
35e2e4354a | ||
|
|
5743ba5fac | ||
|
|
86ec97bad1 | ||
|
|
5e0b4aa509 | ||
|
|
8117715a02 | ||
|
|
cf5fa70f28 | ||
|
|
1e81ef9174 | ||
|
|
d6c4eb7479 | ||
|
|
0957bded16 | ||
|
|
0c44bba5f2 | ||
|
|
26942afc27 | ||
|
|
fbce395321 | ||
|
|
0289e2f9ff | ||
|
|
b24355dd67 | ||
|
|
b315f4b3fe | ||
|
|
a705d805c9 | ||
|
|
e3b8b0a43d | ||
|
|
2044db4d3e | ||
|
|
8a800e909f | ||
|
|
0f2e6b165c | ||
|
|
b16d2c2864 | ||
|
|
61b0b57b87 | ||
|
|
cfdc7f93ed | ||
|
|
d9cbc52928 | ||
|
|
62e5105191 | ||
|
|
1b6e474b9e | ||
|
|
a7e43ad9af | ||
|
|
47692a9b43 | ||
|
|
21ebbc877a | ||
|
|
457035e464 | ||
|
|
71cb09c08b | ||
|
|
70d6fb5660 | ||
|
|
b4e0436b41 | ||
|
|
0262d709eb | ||
|
|
1a50a8220e | ||
|
|
f2213bd5f4 | ||
|
|
fcbe33714e | ||
|
|
184ca7940b | ||
|
|
dceaf7fe8d | ||
|
|
d85b05f999 | ||
|
|
9d2bad977c | ||
|
|
4c8ba67cad | ||
|
|
3ca5c02880 | ||
|
|
3c0649392e | ||
|
|
8a2d6df43b | ||
|
|
98103bac73 | ||
|
|
6cbc21cc4e | ||
|
|
7edeb59853 | ||
|
|
806f921ad2 | ||
|
|
ec54c8e014 | ||
|
|
b7be5251b8 | ||
|
|
33dc25f400 | ||
|
|
e761ff9140 | ||
|
|
2f26a42b68 | ||
|
|
2ed7aa60ff | ||
|
|
7e4a3251c8 | ||
|
|
b73e46dbc4 | ||
|
|
4185b79e0d | ||
|
|
3f037b2051 | ||
|
|
51c6b7ef9b | ||
|
|
ceffbd012e | ||
|
|
12c3869794 | ||
|
|
5a348ae685 | ||
|
|
c1da64fc36 | ||
|
|
c262110b9a | ||
|
|
dac0c4e767 | ||
|
|
25e65b39bc | ||
|
|
3c569fd485 | ||
|
|
7c3b6de41b | ||
|
|
abdc522f9f | ||
|
|
ec5297937d | ||
|
|
ff768a6e5d | ||
|
|
e0ffe68446 | ||
|
|
0bc055b1a7 | ||
|
|
6b8789a54b | ||
|
|
d270eaefd0 | ||
|
|
5dd89d3afc | ||
|
|
556e6ba261 | ||
|
|
75354c67db | ||
|
|
cf7da65ff9 | ||
|
|
17b167f1de | ||
|
|
6937d59b9f | ||
|
|
e2e8b0a287 | ||
|
|
c89f3623f6 | ||
|
|
a5122e2e18 | ||
|
|
7d96963b60 | ||
|
|
b6acb48dbf | ||
|
|
0538763059 | ||
|
|
6a07c09686 | ||
|
|
19be421875 | ||
|
|
1c6544ffbf | ||
|
|
58d2367f02 | ||
|
|
569e28b229 | ||
|
|
ab6a3f8b6b | ||
|
|
f2c8bd7333 | ||
|
|
9d2e8d020b | ||
|
|
586216fa01 | ||
|
|
70038e05c8 | ||
|
|
e301a4d211 | ||
|
|
659f869d63 | ||
|
|
0952bc9b70 | ||
|
|
0f8bee120b | ||
|
|
e4e03e1765 | ||
|
|
27c83f7d3c | ||
|
|
391dedc7b1 | ||
|
|
fdddf19d13 | ||
|
|
46f74405a1 | ||
|
|
de6db3c313 | ||
|
|
2ddff54311 | ||
|
|
a423d0c3bf | ||
|
|
d684dfe8d0 | ||
|
|
e22e4801c1 | ||
|
|
8b7de5ec25 | ||
|
|
a1afcc517a | ||
|
|
25eab5c203 | ||
|
|
545c1a0407 | ||
|
|
42acd22978 | ||
|
|
3ff8e6d0f8 | ||
|
|
424754db1a | ||
|
|
dfada55cf7 | ||
|
|
7f50a3f1d3 | ||
|
|
ed1a528fa7 | ||
|
|
c9825805db | ||
|
|
e70a91d1ec | ||
|
|
bf7926acf4 | ||
|
|
1fcc0d2ae3 | ||
|
|
74678a56f7 | ||
|
|
2a39320fc3 | ||
|
|
c528c62536 | ||
|
|
28a080d1cd | ||
|
|
267667b3f5 | ||
|
|
0b6f5db9ff | ||
|
|
a103f84635 | ||
|
|
da89b2f00d | ||
|
|
30e7c616a2 | ||
|
|
690c388143 | ||
|
|
dbdc2e1238 | ||
|
|
6c98ea7781 | ||
|
|
85f4d01cee | ||
|
|
33b456d991 | ||
|
|
8c8aa63b3a | ||
|
|
5e97f0ef2d | ||
|
|
a255155b4d | ||
|
|
97165a0a82 | ||
|
|
db48ef396e | ||
|
|
1cd05f53b1 | ||
|
|
e126b812b6 | ||
|
|
4fcbf57e97 | ||
|
|
6b2608e419 | ||
|
|
9c1365f45e | ||
|
|
acf99d3e05 | ||
|
|
73ee29246f | ||
|
|
73e4106dc9 | ||
|
|
96cdc2aba8 | ||
|
|
342ff9e025 | ||
|
|
c2ad923581 | ||
|
|
6a7cff656b | ||
|
|
7a00108852 | ||
|
|
e1d6726d8b | ||
|
|
dcd0f5f892 | ||
|
|
40fdc1f804 | ||
|
|
33e88eb9cc | ||
|
|
8b8c8ebd26 | ||
|
|
bfe7005962 | ||
|
|
45fa6931d7 | ||
|
|
6f82feddeb | ||
|
|
998900955d | ||
|
|
1c2b50a343 | ||
|
|
49d77c736e | ||
|
|
6711543567 | ||
|
|
397cae4f87 | ||
|
|
c726bb614c | ||
|
|
6fa8bfffe7 | ||
|
|
2e62915b41 | ||
|
|
a80f62c87f | ||
|
|
99ba2d0a4d | ||
|
|
b045854a63 | ||
|
|
f015cbb9fd | ||
|
|
2b9c088d1d | ||
|
|
9ecd95faa0 | ||
|
|
7062289c89 | ||
|
|
d2b80ea42c | ||
|
|
39381ac5b0 | ||
|
|
cc7b3ea25e | ||
|
|
85a4fa49a4 | ||
|
|
935b317fe6 | ||
|
|
ad0b9983bf | ||
|
|
648954faa3 | ||
|
|
e885d7b372 | ||
|
|
5fcff90c01 | ||
|
|
8c4c8b0323 | ||
|
|
f8101c2a16 | ||
|
|
b7c64d9eb4 | ||
|
|
e456b811f2 | ||
|
|
01c4e13198 | ||
|
|
7bf2316c09 | ||
|
|
e55f7c59e6 | ||
|
|
5916b4a740 | ||
|
|
a3f6946823 | ||
|
|
87cda7e641 | ||
|
|
247b82e816 | ||
|
|
4d745b48cf | ||
|
|
fc2588140b | ||
|
|
e619e6660e | ||
|
|
475b45b293 | ||
|
|
3c4a2b58b1 | ||
|
|
a8fb541568 | ||
|
|
90c499f9c7 | ||
|
|
e6bef9d1ab | ||
|
|
5d22318f7d | ||
|
|
da97fce6d5 | ||
|
|
b34611d1b3 | ||
|
|
75e2b2fabe | ||
|
|
df57b33e19 | ||
|
|
0ca4165219 | ||
|
|
9ce4cf779b | ||
|
|
4ccebfac29 | ||
|
|
1142400e9c | ||
|
|
abcada8466 | ||
|
|
a8bedd0425 | ||
|
|
fe89a971a6 | ||
|
|
6df562a8ab | ||
|
|
c086bd03f0 | ||
|
|
9e591c3813 | ||
|
|
0be75bc54f | ||
|
|
d94e4469f6 | ||
|
|
4b4fd649e6 | ||
|
|
fad44a5413 | ||
|
|
8910b3493e | ||
|
|
20fe65c73c | ||
|
|
3fe9c9e532 | ||
|
|
259d723ec9 | ||
|
|
0d755a50ae | ||
|
|
e27f2f72bf | ||
|
|
b6ea81d07f | ||
|
|
ed8cbb1f81 | ||
|
|
65b5f7f30a | ||
|
|
bc30c0558d | ||
|
|
8913d2f65f | ||
|
|
907f5db4e2 | ||
|
|
79c6459adf | ||
|
|
87e9ecb9e2 | ||
|
|
e5129fe55f | ||
|
|
5f760cf94b | ||
|
|
ce01127664 | ||
|
|
ef3219a098 | ||
|
|
473a8ea6fe | ||
|
|
8695a66e3d | ||
|
|
410b384fd6 | ||
|
|
bb321f90a5 | ||
|
|
51b7bcac8a | ||
|
|
36ce43cf8a | ||
|
|
b4538a3f9d | ||
|
|
af725fa363 | ||
|
|
7d3a320893 | ||
|
|
0354f6b136 | ||
|
|
1e006b0bd7 | ||
|
|
50b0204cc6 | ||
|
|
72df0aa640 | ||
|
|
02bf6a6764 | ||
|
|
64581abeb1 | ||
|
|
82f80f1d15 | ||
|
|
f324a9d471 | ||
|
|
6103bca698 | ||
|
|
9a4477de8b | ||
|
|
5646cc492e | ||
|
|
d5c748db78 | ||
|
|
9c08021773 | ||
|
|
cf3ec1b6ae | ||
|
|
df89f40a24 | ||
|
|
5c24cec4f6 | ||
|
|
4379854b89 | ||
|
|
3a076bbdd1 | ||
|
|
bb519b8ab8 | ||
|
|
de26109ccc | ||
|
|
53e5aa2017 | ||
|
|
0183a5ab2b | ||
|
|
54c5259ed9 | ||
|
|
efdde5aef0 | ||
|
|
584dd11c61 | ||
|
|
635583826f | ||
|
|
cbd7b561de | ||
|
|
9c080e0cb4 | ||
|
|
1c61a8ef1c | ||
|
|
07ed60e8a7 | ||
|
|
7207d7eb36 | ||
|
|
9ede024710 | ||
|
|
cb8285d0ca | ||
|
|
3e3f49f8aa | ||
|
|
35cc1ce6dc | ||
|
|
b4b70e3cf0 | ||
|
|
39a2b1035a | ||
|
|
b370e34dca | ||
|
|
a6b5a823b8 | ||
|
|
24bcec8646 | ||
|
|
5a74c346a7 | ||
|
|
1c64ee9b90 | ||
|
|
c867b3c7bc | ||
|
|
a4413af2f3 | ||
|
|
f726bbaef6 | ||
|
|
53ce27d623 | ||
|
|
b88e4af4e2 | ||
|
|
a12c81e60d | ||
|
|
13415dd771 | ||
|
|
7ea6a78fbd | ||
|
|
d5aaa70013 | ||
|
|
f05d0461c3 | ||
|
|
b525a45107 | ||
|
|
6ab0bf7b5d | ||
|
|
f1335e8252 | ||
|
|
f0c8a82b43 | ||
|
|
f435fe3577 | ||
|
|
9bae3a4e5f | ||
|
|
e7808216ca | ||
|
|
e48c5e39ac | ||
|
|
0d2e043449 | ||
|
|
f2a822aeda | ||
|
|
6cdc547da5 | ||
|
|
c11dc4f9c4 | ||
|
|
f6c121771f | ||
|
|
db77b0b3ac | ||
|
|
9565927ba6 | ||
|
|
18d8212c3f | ||
|
|
1ca5817379 | ||
|
|
0185a3bc2b | ||
|
|
0c4407ce8e | ||
|
|
f11c88cf1b | ||
|
|
7e025e7ca1 | ||
|
|
4da7114655 | ||
|
|
e3bac55346 | ||
|
|
8c52c42074 | ||
|
|
ab9fcf97e0 | ||
|
|
f270f683de | ||
|
|
8e806225d0 | ||
|
|
56847c7a22 | ||
|
|
9973370fd6 | ||
|
|
3cb71a8017 | ||
|
|
cc72ddfad7 | ||
|
|
527ab396ee | ||
|
|
1c90c97b92 | ||
|
|
d70d3a9254 | ||
|
|
2d4ae18e64 | ||
|
|
92850fe34f | ||
|
|
17bbe1414b | ||
|
|
7f56a75722 | ||
|
|
51a9b55782 | ||
|
|
addc68ed5a | ||
|
|
5e9d541239 | ||
|
|
642a93c449 | ||
|
|
ff7151399f | ||
|
|
a67f45f9d5 | ||
|
|
98ef86866a | ||
|
|
f2c70fa167 | ||
|
|
1c0187d55b | ||
|
|
04244dd17a | ||
|
|
da63b0b7ff | ||
|
|
a088ee9ed5 | ||
|
|
ee78dda3a9 | ||
|
|
e13bd0dc61 | ||
|
|
9f57ad6aaf | ||
|
|
8c4996b7c2 | ||
|
|
cf2aaa38fe | ||
|
|
ac900dd3f0 | ||
|
|
0e762f9cbc | ||
|
|
4ee4b28389 | ||
|
|
d36acedaa3 | ||
|
|
1311d5be1e | ||
|
|
207cd83d3c | ||
|
|
37161e2e20 | ||
|
|
6461e3a423 | ||
|
|
76393d438b | ||
|
|
50ced99785 | ||
|
|
8e3a316200 | ||
|
|
fc7c66c615 | ||
|
|
2daeb01c4d | ||
|
|
1818e97289 | ||
|
|
e661297b5d | ||
|
|
926caeca97 | ||
|
|
403ba64e50 | ||
|
|
cdc3c52784 | ||
|
|
7000b66683 | ||
|
|
82f54b5d83 | ||
|
|
1af08763ea | ||
|
|
8f379a2635 | ||
|
|
96b0773c00 | ||
|
|
79f8cd21a9 | ||
|
|
5c129331e0 | ||
|
|
cddb025e98 | ||
|
|
1e2272c13a | ||
|
|
d955832bd8 | ||
|
|
4a52327acd | ||
|
|
136d0f5156 | ||
|
|
0254387c03 | ||
|
|
90f8c4143e | ||
|
|
0ef13504e7 | ||
|
|
40bf41c93d | ||
|
|
3f8aded61c | ||
|
|
f5c555ec86 | ||
|
|
3e7f145255 | ||
|
|
2a5a9de3e3 | ||
|
|
d2bca2ff51 | ||
|
|
f9d6a13d33 | ||
|
|
adcd2c39fc | ||
|
|
b37d547359 | ||
|
|
72f5496905 | ||
|
|
daa7c467f9 | ||
|
|
12c6959ba4 | ||
|
|
81fe1cf486 | ||
|
|
b5a8379d52 | ||
|
|
92fc988951 | ||
|
|
d03813db40 | ||
|
|
1b3b80f735 | ||
|
|
4efb6dc6d0 | ||
|
|
f58420ac46 | ||
|
|
7b2b15d601 | ||
|
|
b9ba29d276 | ||
|
|
e0baa2574a | ||
|
|
fced85f530 | ||
|
|
e80056938f | ||
|
|
b5c7be8de0 | ||
|
|
b0104e7b93 | ||
|
|
bd9b52e6ce | ||
|
|
af348c4d8f | ||
|
|
9e65f947f9 | ||
|
|
3226942ed3 | ||
|
|
2dfd3c9128 | ||
|
|
eb117aef86 | ||
|
|
3575f0c5c9 | ||
|
|
aa810bbda2 | ||
|
|
2c12f5b9b6 | ||
|
|
72b89288f2 | ||
|
|
cffda26ed0 | ||
|
|
eefabbd5b3 | ||
|
|
6bb46186b1 | ||
|
|
4ab1409b13 | ||
|
|
bba2c1d839 | ||
|
|
d9115333bf | ||
|
|
2b7243f69c | ||
|
|
a3c8082906 | ||
|
|
9bab450af1 | ||
|
|
7520d71adb | ||
|
|
4f0c7ad274 | ||
|
|
d6e36eea99 | ||
|
|
0ea69f41e2 | ||
|
|
de142bd371 | ||
|
|
cb14bb4ea8 | ||
|
|
22176eda69 | ||
|
|
bb75b73247 | ||
|
|
1b490951b1 | ||
|
|
f19af2a33f | ||
|
|
d0e92a649a | ||
|
|
687af76372 | ||
|
|
3acb32a5c2 | ||
|
|
8d7dcda582 | ||
|
|
fc2c1e06d9 | ||
|
|
6c57df8270 | ||
|
|
d042de9e84 | ||
|
|
bc6303d1af | ||
|
|
077ce6d37f | ||
|
|
0cf3e6e7d6 | ||
|
|
027537080d | ||
|
|
95d29bb20d | ||
|
|
461bc1f86e | ||
|
|
1bc09a4424 | ||
|
|
e6866552bc | ||
|
|
fd7b0630fe | ||
|
|
6e6575eadb | ||
|
|
cc6ec38bfa | ||
|
|
8eefbeba54 | ||
|
|
94a24bb469 | ||
|
|
82c0269761 | ||
|
|
631f72bfe9 | ||
|
|
b5147678b1 | ||
|
|
9047e54afa | ||
|
|
8a15ce12d9 | ||
|
|
4c3e7e40cb | ||
|
|
128dd60a89 | ||
|
|
f82cb462cf | ||
|
|
7f6025afc0 | ||
|
|
9bbe3f28a5 | ||
|
|
3f2a13448d | ||
|
|
e11976bb61 | ||
|
|
00541c1c8f | ||
|
|
cac7815369 | ||
|
|
c336230287 | ||
|
|
1a896a730e | ||
|
|
eaad8337d4 | ||
|
|
b4ee93bc5a | ||
|
|
3919290985 | ||
|
|
ec3f00f4a3 | ||
|
|
f15ac2c7fd | ||
|
|
cc9e6fa3d1 | ||
|
|
3c3ffa1ebc | ||
|
|
776515a861 | ||
|
|
8332c5d141 | ||
|
|
e6c77e7b35 | ||
|
|
1fab9ad253 | ||
|
|
e4de4f2af0 | ||
|
|
afdfde245a | ||
|
|
86366cc6cb | ||
|
|
4e6a66c681 | ||
|
|
f5805ce6ae | ||
|
|
8239e53a76 | ||
|
|
bbaede2166 | ||
|
|
6e68611f6e | ||
|
|
31dd710f6a | ||
|
|
8b2b58dfa1 | ||
|
|
84f62ebe1c | ||
|
|
ce2f8714d0 | ||
|
|
931b78ee03 | ||
|
|
61554bf3e5 | ||
|
|
0b070de19c | ||
|
|
7077b8a297 | ||
|
|
e8995acc87 | ||
|
|
fbaa81fe7a | ||
|
|
3742a3b163 | ||
|
|
498e1c12af | ||
|
|
317b5d4ced | ||
|
|
3c65b3e3df | ||
|
|
4dde30f9f9 | ||
|
|
631d59f95e | ||
|
|
8928d497ff | ||
|
|
99b1d5f534 | ||
|
|
61d13b90dc | ||
|
|
31bb7f0c97 | ||
|
|
d980a036cd | ||
|
|
f8c6c766cb | ||
|
|
41fe63d948 | ||
|
|
ce53afe1b0 | ||
|
|
bc4a4df53e | ||
|
|
3f448bc6da | ||
|
|
d1c10f56d1 | ||
|
|
edf4699e9e | ||
|
|
ad025eb6da | ||
|
|
e5bf0d8205 | ||
|
|
831a91c925 | ||
|
|
bc3325bd3b | ||
|
|
e29883d0de | ||
|
|
5b9b700372 | ||
|
|
c81dc99aef | ||
|
|
c0a3a550d7 | ||
|
|
0c67b2b659 | ||
|
|
974b112b3a | ||
|
|
57f5d138e8 | ||
|
|
2b117e9192 | ||
|
|
688a39363b | ||
|
|
9443a07eb4 | ||
|
|
ce58e989dd | ||
|
|
b9bb528db0 | ||
|
|
da8cbe4cce | ||
|
|
ce69127250 | ||
|
|
583f6503ec | ||
|
|
7f050b62f9 | ||
|
|
5d09d1585b | ||
|
|
f373003d2c | ||
|
|
45e8e380db | ||
|
|
c2263c9318 | ||
|
|
f09a6cde3e | ||
|
|
ccdbfda019 | ||
|
|
ec9435bb82 | ||
|
|
77db3d57c9 | ||
|
|
73c3e06900 | ||
|
|
56d8190fc6 | ||
|
|
7fe7de46c6 | ||
|
|
2339f75517 | ||
|
|
8ec038847a | ||
|
|
e1118bd579 | ||
|
|
c9af7a8cc4 | ||
|
|
4ab7e4db0f | ||
|
|
939a255c2e | ||
|
|
1cf5cd41b4 | ||
|
|
860e16659c | ||
|
|
e9987fdcfa | ||
|
|
98847a2c42 | ||
|
|
f81bf760d4 | ||
|
|
b2bb2e33de | ||
|
|
8be6373b77 | ||
|
|
a9c2d1aa5c | ||
|
|
8e61d5f87c | ||
|
|
032b13b2ad | ||
|
|
e33ca7cd33 | ||
|
|
3a7a6e480a | ||
|
|
51b67c0dcd | ||
|
|
8124818bad | ||
|
|
3a62d4406f | ||
|
|
8b8b30602b | ||
|
|
7a5fcd79d8 | ||
|
|
93fe4d8c62 | ||
|
|
cdeec93e76 | ||
|
|
1a2d9592d1 | ||
|
|
71a64c36ca | ||
|
|
5f026e3b1e | ||
|
|
d50f8716b5 | ||
|
|
6cd2637983 | ||
|
|
ab91ce01d4 | ||
|
|
8f1897c4ff | ||
|
|
1e2c80c38f | ||
|
|
db8ad0f425 | ||
|
|
eedce8338b | ||
|
|
b132cb8713 | ||
|
|
66d6fe8f0a | ||
|
|
97e57f9b3c | ||
|
|
57cfa56081 | ||
|
|
1d464dd00e | ||
|
|
fdc38afcbd | ||
|
|
2e9dc3d006 | ||
|
|
c54a8308c6 | ||
|
|
1934708d78 | ||
|
|
e7bfff491b | ||
|
|
97e36c249b | ||
|
|
6d93d5ef87 | ||
|
|
e8a0b3da93 | ||
|
|
e9acd98ccc | ||
|
|
535d69f4d9 | ||
|
|
603a59b6d7 | ||
|
|
ca2f30fdbd | ||
|
|
4c92c08f84 | ||
|
|
2fd8483a52 | ||
|
|
71bdd6334f | ||
|
|
194f6f52dc | ||
|
|
93ce482d40 | ||
|
|
96c5c3dcf5 | ||
|
|
6bcf7ec53a | ||
|
|
a7d760bc5e | ||
|
|
e196b6b1e3 | ||
|
|
9cb9872a5e | ||
|
|
58d4b3813b | ||
|
|
34d0e989d6 | ||
|
|
c52af21477 | ||
|
|
149d6778f5 | ||
|
|
98c9f3098b | ||
|
|
ff904ad68c | ||
|
|
932f82ac6c | ||
|
|
bbb5ddb177 | ||
|
|
7cbbf58309 | ||
|
|
8edee62d3a | ||
|
|
ce67b7985b | ||
|
|
ef47597cf9 | ||
|
|
9e8d5aaf6a | ||
|
|
363463e31d | ||
|
|
8ff635e901 | ||
|
|
c65e13a83e | ||
|
|
8721bc2de1 | ||
|
|
ec344cc918 | ||
|
|
905df2b79e | ||
|
|
e73fb5791a | ||
|
|
6738a855bb | ||
|
|
3c82020e5e | ||
|
|
422074fcec | ||
|
|
897f5b76f0 | ||
|
|
ee565d3796 | ||
|
|
912b50246a | ||
|
|
df2ba048f4 | ||
|
|
ef2f7d3ecb | ||
|
|
2391c08485 | ||
|
|
85ac3d7a3e | ||
|
|
b96723d9a5 | ||
|
|
19b9db66d3 | ||
|
|
8371875d62 | ||
|
|
a3f6fdda2a | ||
|
|
4a10335379 | ||
|
|
1132acfa40 | ||
|
|
7138dab1b5 | ||
|
|
6bf3df0ef4 | ||
|
|
55594c119f | ||
|
|
0a3bd37224 | ||
|
|
60abdfb372 | ||
|
|
facdf5712a | ||
|
|
94df139110 | ||
|
|
e4f6bc4632 | ||
|
|
6f0dbe3625 | ||
|
|
c00cd5a00a | ||
|
|
b487b6fc40 | ||
|
|
8489a67e64 | ||
|
|
f8426ae4c3 | ||
|
|
c4021d02ce | ||
|
|
bd01ad7bbf | ||
|
|
9650f45ba2 | ||
|
|
cfed77d1a5 | ||
|
|
94c795a68f | ||
|
|
2fba2ad488 | ||
|
|
31260e8921 | ||
|
|
4d04b37582 | ||
|
|
eec27b26f7 | ||
|
|
e300ca1822 | ||
|
|
c8a3bee099 | ||
|
|
35c051e730 | ||
|
|
950ec3a1e1 | ||
|
|
1c1a038156 | ||
|
|
640bf79dc8 | ||
|
|
1ccc32cbcb | ||
|
|
f8d8d885bb | ||
|
|
7c8c869172 | ||
|
|
8d5a4ed4c8 | ||
|
|
981872b0b1 | ||
|
|
d8a74c17f0 | ||
|
|
fe6d207099 | ||
|
|
206043a1a0 | ||
|
|
6a2a465569 | ||
|
|
1767ada489 | ||
|
|
d7f85967c9 | ||
|
|
1a95f5e4ac | ||
|
|
abd7364658 | ||
|
|
26ec1c9f6e | ||
|
|
490aa3fe04 | ||
|
|
924a28e957 | ||
|
|
e58ceb3ac8 | ||
|
|
61c3b16a69 | ||
|
|
70109c0965 | ||
|
|
74b4fd1367 | ||
|
|
c206dc3097 | ||
|
|
4c1c8e7683 | ||
|
|
0d8d54c05b | ||
|
|
71147eb7f9 | ||
|
|
c753df768d | ||
|
|
45df8f5bc2 | ||
|
|
29a55f3ff8 | ||
|
|
94c0b00c2d | ||
|
|
32473d302f | ||
|
|
2cf4958f46 | ||
|
|
893aa2111c | ||
|
|
6cf26e8029 | ||
|
|
e796bbe990 | ||
|
|
c2d2d16948 | ||
|
|
c3ba11bed4 | ||
|
|
37815d603a | ||
|
|
ca0b59e95b | ||
|
|
7c478ec4fd | ||
|
|
5b1d347fd4 | ||
|
|
e738d40b75 | ||
|
|
685eced709 | ||
|
|
ffc40c70d2 | ||
|
|
cc3ee289d3 | ||
|
|
487b452519 | ||
|
|
4a62af7545 | ||
|
|
07be7c3074 | ||
|
|
ddad1e9114 | ||
|
|
2c1a101c24 | ||
|
|
ab1af72727 | ||
|
|
bc186a9723 | ||
|
|
de04d452b3 | ||
|
|
66b808dfc9 | ||
|
|
ad36b37f27 | ||
|
|
e403f2f8e6 | ||
|
|
24b850a508 | ||
|
|
4d8b463cb3 | ||
|
|
9fef877d12 | ||
|
|
c323d9995e | ||
|
|
4f83c5f29a | ||
|
|
ed5f47cc31 | ||
|
|
66bb55a823 | ||
|
|
5926d71d27 | ||
|
|
c78ea6fbe5 | ||
|
|
96df8f971c | ||
|
|
35511effae | ||
|
|
54912f15b9 | ||
|
|
e8a13f1721 | ||
|
|
1532293918 | ||
|
|
030ef14633 | ||
|
|
bf8b45609c | ||
|
|
964618d365 | ||
|
|
06eeb1ed1f | ||
|
|
deb732dc5e | ||
|
|
5737d7b0bc | ||
|
|
5fd0beab95 | ||
|
|
858c163cbe | ||
|
|
fee3572f38 | ||
|
|
f2862af565 | ||
|
|
c1c3639611 | ||
|
|
41017412cd | ||
|
|
e552502fd1 | ||
|
|
61da25a031 | ||
|
|
aafafd682d | ||
|
|
98ed831a85 | ||
|
|
e9be2e9c43 | ||
|
|
b73a449b01 | ||
|
|
45d04e1a05 | ||
|
|
fc17063507 | ||
|
|
b3fbbeb85c | ||
|
|
97d760cd56 | ||
|
|
9d911a5c2b | ||
|
|
9bb3b88fd6 | ||
|
|
baaeac10eb | ||
|
|
2510f5fbf3 | ||
|
|
f77691251e | ||
|
|
5292826c72 | ||
|
|
6fed64ba2a | ||
|
|
8e5f5cf0d1 | ||
|
|
b4b5207aea | ||
|
|
ca61537e21 | ||
|
|
83da8f58e2 | ||
|
|
a36c30b5c1 | ||
|
|
ae6ec7183e | ||
|
|
cc58425f50 | ||
|
|
dda3aad95d | ||
|
|
d6dcb6bf55 | ||
|
|
4b672f3c23 | ||
|
|
423d5cec8e | ||
|
|
e6bb5db0e1 | ||
|
|
f0e66c6d90 | ||
|
|
8a1dfe14e6 | ||
|
|
5113de7e97 | ||
|
|
e06002e05a | ||
|
|
8b7b52ee2c | ||
|
|
6738f38131 | ||
|
|
ab115ab71c | ||
|
|
6ec6094c5e | ||
|
|
321c40d31d | ||
|
|
890b73e108 | ||
|
|
247b3e4444 | ||
|
|
7391b1324d | ||
|
|
d53e664881 | ||
|
|
b49b5890a0 | ||
|
|
690543e2d4 | ||
|
|
f296e1ba1a | ||
|
|
31f07c5156 | ||
|
|
63d6ce6da8 | ||
|
|
580f95f338 | ||
|
|
326181fa81 | ||
|
|
6fc735063a | ||
|
|
499261f62e | ||
|
|
6912160232 | ||
|
|
04e63dcc59 | ||
|
|
7ceaadb9c4 | ||
|
|
fdf1b786fe | ||
|
|
1da7a0195d | ||
|
|
b093b11ec2 | ||
|
|
718b1f9edf | ||
|
|
5bdd3982ae | ||
|
|
a606cbfc6d | ||
|
|
1a5fcf09e1 | ||
|
|
d2899fe38e | ||
|
|
24e75f8895 | ||
|
|
5bc5766507 | ||
|
|
49f021ed7a | ||
|
|
94031e68ad | ||
|
|
182348f427 | ||
|
|
c885f3ce8c | ||
|
|
e5b0960e3a | ||
|
|
dd5d4e7748 | ||
|
|
369980d655 | ||
|
|
2096d05cdb | ||
|
|
fbab054324 | ||
|
|
e3ff9e9fde | ||
|
|
c3ee544ca6 | ||
|
|
08581c8bc4 | ||
|
|
49cbf2fde2 | ||
|
|
2f2522c99e | ||
|
|
fefa14a47b | ||
|
|
329d7b6464 | ||
|
|
f36c2ac096 | ||
|
|
9c6367c053 | ||
|
|
076866e9b7 | ||
|
|
3a64a2106a | ||
|
|
ead39c9649 | ||
|
|
25d1a99239 | ||
|
|
9a318d45f3 | ||
|
|
41a9aa86a7 | ||
|
|
2322758e50 | ||
|
|
d216478679 | ||
|
|
b487ee127a | ||
|
|
2a964bc30e | ||
|
|
d0132dbc3a | ||
|
|
acccb4b6f9 | ||
|
|
48f75ad600 | ||
|
|
daeae46820 | ||
|
|
77535fa70e | ||
|
|
913780bc2b | ||
|
|
f566fc1c08 | ||
|
|
a97ce9b0a7 | ||
|
|
d0e18fbd44 | ||
|
|
3845041f7f | ||
|
|
f313a171cb | ||
|
|
93731a4777 | ||
|
|
dba17d5c7a | ||
|
|
2a984ba2c0 | ||
|
|
dbfd75b139 | ||
|
|
db1dc18c28 | ||
|
|
523f7a0942 | ||
|
|
16b3df87c9 | ||
|
|
8d952aa046 | ||
|
|
e3e253fab8 | ||
|
|
fe96004111 | ||
|
|
8483be5d2d | ||
|
|
b6964e29bc | ||
|
|
56d1a98c53 | ||
|
|
01f0902937 | ||
|
|
6335c03cef | ||
|
|
4f898dd8ce | ||
|
|
d012066428 | ||
|
|
4c57bbe791 | ||
|
|
b8d590de6d | ||
|
|
82a31c6f31 | ||
|
|
30a7f762c2 | ||
|
|
3a1acb0f5a | ||
|
|
c0b759aa9d | ||
|
|
7f5ac4ef90 | ||
|
|
f1c835800e | ||
|
|
77852900a3 | ||
|
|
b2a9088354 | ||
|
|
3be0d1ffad | ||
|
|
686c049e52 | ||
|
|
780dbd5dda | ||
|
|
53ad002f3b | ||
|
|
36270477d5 | ||
|
|
a45ee59a76 | ||
|
|
d2782446b0 | ||
|
|
eb835ae5c8 | ||
|
|
401103f17b | ||
|
|
e592d49983 | ||
|
|
de0cb1ebbc | ||
|
|
8e91aec7f1 | ||
|
|
0b7dc6d09a | ||
|
|
108cb96ca5 | ||
|
|
03efa01a85 | ||
|
|
ba19175472 | ||
|
|
aa9464face | ||
|
|
0c788df2f2 | ||
|
|
cbc9264b2c | ||
|
|
82ce347ca4 | ||
|
|
d13071272a | ||
|
|
74523c710f | ||
|
|
fc35ef687b | ||
|
|
a71d960e2d | ||
|
|
0cbf01b9ec | ||
|
|
869b389420 | ||
|
|
d429a8b4b8 | ||
|
|
deccb6e3cd | ||
|
|
2a9c5276ab | ||
|
|
db0c83bd2b | ||
|
|
f81ee155e7 | ||
|
|
76368398ba | ||
|
|
8e5fc5eb61 | ||
|
|
a0804758f5 | ||
|
|
4634393f6c | ||
|
|
5ffe2ce0e2 | ||
|
|
911f464aca | ||
|
|
9f30a029c5 | ||
|
|
5b9fcb2e53 | ||
|
|
46807003e1 | ||
|
|
593944cac2 | ||
|
|
018b51e1e5 | ||
|
|
a29dbca0e4 | ||
|
|
47a408d034 | ||
|
|
d14120dfa2 | ||
|
|
b88c6a53ab | ||
|
|
e3d58c2a9e | ||
|
|
04261036a5 | ||
|
|
0eaed68b82 | ||
|
|
ccb53a61de | ||
|
|
4a01132b91 | ||
|
|
9fffcd4f04 | ||
|
|
ce86a66e92 | ||
|
|
65dd8372dd | ||
|
|
39f97131a2 | ||
|
|
7b471be4cf | ||
|
|
802bd4285c | ||
|
|
e7de773f28 | ||
|
|
4098dda5b8 | ||
|
|
2c67f7a286 | ||
|
|
a953ca189e | ||
|
|
0a09c54690 | ||
|
|
076c4a2bcb | ||
|
|
0e2cbf06ca | ||
|
|
575c856f27 | ||
|
|
103b00a635 | ||
|
|
38c77e7fbb | ||
|
|
272ab8daa0 | ||
|
|
acff814e9b | ||
|
|
1bc3f756fe | ||
|
|
99ea796f2e | ||
|
|
4ef82ee7cf | ||
|
|
4bed65d1df | ||
|
|
2b9e768793 | ||
|
|
f4a878ced9 | ||
|
|
093724a277 | ||
|
|
8346f40b79 | ||
|
|
a9ba65ec17 | ||
|
|
8f29696b64 | ||
|
|
2d32419a7d | ||
|
|
2c636c5e64 | ||
|
|
270338868b | ||
|
|
845d606b36 | ||
|
|
919a200750 | ||
|
|
ad11f2ea63 | ||
|
|
a414f7cd25 | ||
|
|
2a8558f5a2 | ||
|
|
13555d91e2 | ||
|
|
5ccc186bd1 | ||
|
|
27259fb8f7 | ||
|
|
b733c4168f | ||
|
|
1e243e4500 | ||
|
|
ef2e84e411 | ||
|
|
4f644b1e25 | ||
|
|
a5cb2dc93b | ||
|
|
749473f9dc | ||
|
|
dc8aecba93 | ||
|
|
587e2a4e3e | ||
|
|
d83255cc67 | ||
|
|
14edbd85f4 | ||
|
|
e7df6c14b1 | ||
|
|
e2c13a8194 | ||
|
|
9b5a0162ff | ||
|
|
a57cdbe2f3 | ||
|
|
d02e0cf455 | ||
|
|
e3bdf9409f | ||
|
|
93a6b4ccb4 | ||
|
|
d532ff8c05 | ||
|
|
0f15814916 | ||
|
|
f02d1a0ace | ||
|
|
cbc298f6ad | ||
|
|
e02ab7fd95 | ||
|
|
9acdcc0429 | ||
|
|
dbbddfadab | ||
|
|
1f090fdd20 | ||
|
|
0b72c59335 | ||
|
|
7c6dd76464 | ||
|
|
01ad3e7d8c | ||
|
|
53f7f75795 | ||
|
|
a80ab33c50 | ||
|
|
3bd5c7efb3 | ||
|
|
aa2e9e8c1f | ||
|
|
8db9ed68c1 | ||
|
|
53e307cd55 | ||
|
|
c04e138d6b | ||
|
|
296efcc395 | ||
|
|
e4fb6edb05 | ||
|
|
6724d0e0c1 | ||
|
|
e505285a91 | ||
|
|
2ecc130fd1 | ||
|
|
ecb1f4140e | ||
|
|
b1d2cd1ceb | ||
|
|
0752ba9d2d | ||
|
|
6b7b536236 | ||
|
|
b9d6e0ea35 | ||
|
|
8f4eff6d1c | ||
|
|
708889b1ed | ||
|
|
59514cc433 | ||
|
|
ea3dbb290f | ||
|
|
30cebea5a1 | ||
|
|
e586ed8e3b | ||
|
|
7551bf38ef | ||
|
|
34beb03a6a | ||
|
|
af05d3ec30 | ||
|
|
ac6315c76a | ||
|
|
960bea5bb0 | ||
|
|
69bae5b853 | ||
|
|
6b375ee64d | ||
|
|
84b211911f | ||
|
|
22a4ccad6b | ||
|
|
f6fd70bb51 | ||
|
|
9c5900e4fe | ||
|
|
51f4c1787f | ||
|
|
81cae99093 | ||
|
|
587daef6ee | ||
|
|
9217372097 | ||
|
|
256d86567e | ||
|
|
37541fdcd6 | ||
|
|
b574175a56 | ||
|
|
8e13d2011c | ||
|
|
aba664375f | ||
|
|
a50501e75e | ||
|
|
16534bb348 | ||
|
|
a538477272 | ||
|
|
9c2d4dbc24 | ||
|
|
1acfefa555 | ||
|
|
52a7e2d698 | ||
|
|
d8363f2637 | ||
|
|
f42383fd10 | ||
|
|
c919f0724a | ||
|
|
681b769356 | ||
|
|
cee39f3e1f | ||
|
|
9dc653694a | ||
|
|
a9f51df151 | ||
|
|
3aa34ee0cf | ||
|
|
cde801a837 | ||
|
|
e9e25c582e | ||
|
|
90fa7c159a | ||
|
|
d4180df7e9 | ||
|
|
ab42bde8f2 | ||
|
|
a96c7a34c1 | ||
|
|
0ac82acbad | ||
|
|
f03b77f9bb | ||
|
|
dc796abd4a | ||
|
|
cf7551011e | ||
|
|
586dc5dbe2 | ||
|
|
3dbc6f0d6a | ||
|
|
0ae5d724d6 | ||
|
|
2dcd9bef53 | ||
|
|
38331f1501 | ||
|
|
e35b4af123 | ||
|
|
618d4718c9 | ||
|
|
f36e9c3d99 | ||
|
|
0de26c4f2f | ||
|
|
d78fe872ae | ||
|
|
3c25b829e2 | ||
|
|
fd60505eec | ||
|
|
42cc64db74 | ||
|
|
496fb40807 | ||
|
|
e3e717ea60 | ||
|
|
1e29f7010a | ||
|
|
c514af2511 | ||
|
|
6d4221a565 | ||
|
|
5148ad3952 | ||
|
|
be3df9817c | ||
|
|
95e095c184 | ||
|
|
db5d9863b1 | ||
|
|
2cc03c21ed | ||
|
|
480d628125 | ||
|
|
9e212a2684 | ||
|
|
a7da1dbadd | ||
|
|
99f078fad9 | ||
|
|
0445c3bbc4 | ||
|
|
23214ae6e6 | ||
|
|
b966bdd8da | ||
|
|
5fa9d1e16e | ||
|
|
c45c45607f | ||
|
|
69506af2ab | ||
|
|
00cb9cb8db | ||
|
|
757a1ef102 | ||
|
|
5416ecb709 | ||
|
|
766771e435 | ||
|
|
eb0d83aa3a | ||
|
|
826119aea6 | ||
|
|
650bf2cf86 | ||
|
|
ad0603f921 | ||
|
|
4613dc791b | ||
|
|
6026244783 | ||
|
|
43d9c54626 | ||
|
|
400f4b6201 | ||
|
|
ce62f90ede | ||
|
|
778ce3e409 | ||
|
|
532e4a4c7a | ||
|
|
4d9c0474e6 | ||
|
|
c1739feabb | ||
|
|
6dbdcd2eb9 | ||
|
|
2e508c7a85 | ||
|
|
e3b7d5ad02 | ||
|
|
a65a3ecfbe | ||
|
|
1f0f7ae0c7 | ||
|
|
0ffe66b501 | ||
|
|
9e424600bc | ||
|
|
f9e41f262c | ||
|
|
7fcd079535 | ||
|
|
165f961fb4 | ||
|
|
2793bd2472 | ||
|
|
f554c2073f | ||
|
|
3a9f408be2 | ||
|
|
4bcb12d3f1 | ||
|
|
7cbaf7373a | ||
|
|
d6960c2717 | ||
|
|
cf7e6ea33d | ||
|
|
49d41539b0 | ||
|
|
0d40171f13 | ||
|
|
e919858e63 | ||
|
|
c1be9a90fe | ||
|
|
26db256336 | ||
|
|
aa17de3384 | ||
|
|
9cbc1428e9 | ||
|
|
857a26231d | ||
|
|
b76c192f33 | ||
|
|
e50f0c4465 | ||
|
|
41641f69fe | ||
|
|
5802c55ab3 | ||
|
|
b12880da50 | ||
|
|
a23fe9942d | ||
|
|
5e9b376721 | ||
|
|
35afdd3b2a | ||
|
|
00dd03bb2c | ||
|
|
121217d70f | ||
|
|
3225916629 | ||
|
|
75fabfb63d | ||
|
|
255786325b | ||
|
|
797a7207e9 | ||
|
|
f49f63a32a | ||
|
|
e0bfea40e1 | ||
|
|
78e3a0f24f | ||
|
|
408a5c72c8 | ||
|
|
ae3f7c9c0c | ||
|
|
093badd3a7 | ||
|
|
9331a22a10 | ||
|
|
5353630975 | ||
|
|
ecc9bd446f | ||
|
|
1983271a9b | ||
|
|
0b8042f07a | ||
|
|
1f5cabad1a | ||
|
|
48e30865af | ||
|
|
fe78d91fa9 | ||
|
|
4ac95c20ad | ||
|
|
4a712ff9f1 | ||
|
|
f8c5553837 | ||
|
|
7ea997219b | ||
|
|
a6ddfa22a1 | ||
|
|
b6a071d33a | ||
|
|
26f07a00c3 | ||
|
|
b47dbe29c0 | ||
|
|
dbeb975cf6 | ||
|
|
e5213d06ae | ||
|
|
a0affba407 | ||
|
|
940d2cead8 | ||
|
|
c8129478d5 | ||
|
|
4342a2a175 | ||
|
|
19f19d5fd0 | ||
|
|
18259c73a2 | ||
|
|
32b773c486 | ||
|
|
699728963c | ||
|
|
d66d320e7d | ||
|
|
c56be1641e | ||
|
|
7351ea675b | ||
|
|
e51fc8a68e | ||
|
|
4ec6e7c7a4 | ||
|
|
44872d4c9f | ||
|
|
8bf726382d | ||
|
|
d07098bae1 | ||
|
|
c575ea51cd | ||
|
|
2b22215853 | ||
|
|
b4eb57f3df | ||
|
|
41566a4d74 | ||
|
|
e64cf88809 | ||
|
|
2fdcd3a009 | ||
|
|
76af8c6f2d | ||
|
|
eae06ccdd7 | ||
|
|
d322754798 | ||
|
|
908e8b3ff2 | ||
|
|
e9afce298d | ||
|
|
f373c69430 | ||
|
|
8ece696775 | ||
|
|
5ea6158e8d | ||
|
|
a799793ca8 | ||
|
|
27571942c9 | ||
|
|
e6a68eb1eb | ||
|
|
b7f2c4a000 | ||
|
|
3e922df2f8 | ||
|
|
7713ade077 | ||
|
|
12ead3579e | ||
|
|
be0f62ffe0 | ||
|
|
5ccd754261 | ||
|
|
dea565f8c6 | ||
|
|
6e6b0b66d3 | ||
|
|
ed96f8dc0e | ||
|
|
8f6bfa2a9b | ||
|
|
d92dcbd4e6 | ||
|
|
c765682311 | ||
|
|
fb717c22ad | ||
|
|
39feda07e5 | ||
|
|
5d30dae189 | ||
|
|
19b4cfd078 | ||
|
|
1e1ed20231 | ||
|
|
df650edefd | ||
|
|
7cb94f79a0 | ||
|
|
cd3ad6f975 | ||
|
|
425b926948 | ||
|
|
71ca6d27ce | ||
|
|
7174de3de6 | ||
|
|
194faf5a55 | ||
|
|
caeff1e17a | ||
|
|
a9954c1231 | ||
|
|
e3f58ccee8 | ||
|
|
7e071151a8 | ||
|
|
e4af4ca0b6 | ||
|
|
3ef20d64ac | ||
|
|
c6a6eec5b7 | ||
|
|
5de04449e4 | ||
|
|
eda57036bd | ||
|
|
e33a25e47a | ||
|
|
e7d32e5041 | ||
|
|
55504c2725 | ||
|
|
9318be0f09 | ||
|
|
f31a6d0d43 | ||
|
|
3b3847990d | ||
|
|
c699cdff0a | ||
|
|
bbfb29f60b | ||
|
|
28a50a1d94 | ||
|
|
623d89bf31 | ||
|
|
7a4dd55fa4 | ||
|
|
bf7ef78b20 | ||
|
|
bcb05cb2e2 | ||
|
|
9c52e23e44 | ||
|
|
1c50e11a43 | ||
|
|
a2f5dbd70d | ||
|
|
0f283c1eda | ||
|
|
f67c8169bf | ||
|
|
f9e4b73fb0 | ||
|
|
e31858c9d7 | ||
|
|
4f70f7ef70 | ||
|
|
11a06df0a4 | ||
|
|
da8caf42f5 | ||
|
|
0b30408aae | ||
|
|
e2f5ce42e6 | ||
|
|
90868d4a09 | ||
|
|
b01a5a4216 | ||
|
|
c27bfb5990 | ||
|
|
589f99db1a | ||
|
|
7d0e35a9f4 | ||
|
|
a64d24d8ff | ||
|
|
2ae7b2c8ec | ||
|
|
cd33fb9fb9 | ||
|
|
1176aee38b | ||
|
|
e781bce27e | ||
|
|
10292df48d | ||
|
|
76293f5cca | ||
|
|
16de3e40df | ||
|
|
642007d29b | ||
|
|
3c281230cc | ||
|
|
a5a9ae150f | ||
|
|
c2e2de4ab5 | ||
|
|
e49e3b6981 | ||
|
|
1b3c929fa7 | ||
|
|
fb8ca5f145 | ||
|
|
dfc5c206fd | ||
|
|
3ab0fcb337 | ||
|
|
f6841e5e9f | ||
|
|
2cb84c5f55 | ||
|
|
ff60824291 | ||
|
|
82322b5024 | ||
|
|
bfa51d378c | ||
|
|
78ddf4e52f | ||
|
|
8a50a10b23 | ||
|
|
80f7da7979 | ||
|
|
eec6dce4fc | ||
|
|
cd671bdc88 | ||
|
|
0fa2656aad | ||
|
|
109da940ba | ||
|
|
64143798e0 | ||
|
|
d8489a5f07 | ||
|
|
8ae4d0dce8 | ||
|
|
f88dd790a0 | ||
|
|
baea2d2a3e | ||
|
|
43d6794151 | ||
|
|
c924426725 | ||
|
|
607eac90c6 | ||
|
|
06b1e30670 | ||
|
|
5644ee2670 | ||
|
|
6fccd63916 | ||
|
|
bed385d025 | ||
|
|
77b1ef2d91 | ||
|
|
3cef87ea46 | ||
|
|
97fcf6d91f | ||
|
|
ae07a515b7 | ||
|
|
422698ce34 | ||
|
|
08ac2978a1 | ||
|
|
92a9894757 | ||
|
|
093b0e63ce | ||
|
|
07564248d2 | ||
|
|
908d247f98 | ||
|
|
6193fa3c09 | ||
|
|
5c1ba207b6 | ||
|
|
21bfad2f95 | ||
|
|
8b88f31672 | ||
|
|
28fcf5c4fa | ||
|
|
f5653ce1dd | ||
|
|
23b11fce15 | ||
|
|
facd5d23d7 | ||
|
|
a8c817d704 | ||
|
|
cd0f455db3 | ||
|
|
fac3450257 | ||
|
|
fcf5963079 | ||
|
|
2f732e41ed | ||
|
|
1747f38bca | ||
|
|
d17cfc7793 | ||
|
|
ddce0ab436 | ||
|
|
9d025c10b4 | ||
|
|
928257f125 | ||
|
|
2169c10417 | ||
|
|
ab61902deb | ||
|
|
06ed10bd5e | ||
|
|
4e2bf6534a | ||
|
|
b780b50a42 | ||
|
|
f4428fde9f | ||
|
|
42066865be | ||
|
|
8a99bd8589 | ||
|
|
e0f43fa9fe | ||
|
|
0ecd4e4c3b | ||
|
|
a79a3ef64f | ||
|
|
5b64664bbb | ||
|
|
0f5e5d6ebe | ||
|
|
abddb82f94 | ||
|
|
9856bb65fb | ||
|
|
1533ef7be9 | ||
|
|
4a5fb0c6e4 | ||
|
|
ea958ed489 | ||
|
|
5556274d8b | ||
|
|
d3e6315269 | ||
|
|
9c7d27f860 | ||
|
|
9e90c98454 | ||
|
|
ce3ffb75ae | ||
|
|
b83a3cc185 | ||
|
|
d103a1cd29 | ||
|
|
150c40f9b1 | ||
|
|
4d650a9aca | ||
|
|
9b239dbcb2 | ||
|
|
68805fee4a | ||
|
|
fc490f1612 | ||
|
|
e6a496d062 | ||
|
|
fb2cc0e504 | ||
|
|
94efe4e7ca | ||
|
|
8a736775d8 | ||
|
|
4b34335963 | ||
|
|
6116434399 | ||
|
|
eccc4c3ade | ||
|
|
a764f42d23 | ||
|
|
650a29b74f | ||
|
|
1e1b0dd359 | ||
|
|
8d126a0024 | ||
|
|
06d73a815f | ||
|
|
386b5eb11c | ||
|
|
9fe58a1fba | ||
|
|
924b838a83 | ||
|
|
b2012c004a | ||
|
|
e638245b8a | ||
|
|
be53b012f1 | ||
|
|
35ef00a8cd | ||
|
|
0e292ea597 | ||
|
|
b3f2065edd | ||
|
|
7fb585dfdd | ||
|
|
194bb28085 | ||
|
|
46f40ec480 | ||
|
|
a99fe44408 | ||
|
|
432920b100 | ||
|
|
f0e1939b95 | ||
|
|
f85a0e4c85 | ||
|
|
578d9c46d9 | ||
|
|
5a28ec7579 | ||
|
|
d971cbd5f1 | ||
|
|
72a0be3a54 | ||
|
|
5f04cbb896 | ||
|
|
4f893929ca | ||
|
|
de32f5db78 | ||
|
|
aa7e39c28a | ||
|
|
0838ff417f | ||
|
|
2321304e2a | ||
|
|
1910b461f3 | ||
|
|
2a1b39b0fb | ||
|
|
cd042a8073 | ||
|
|
c75e1b3c19 | ||
|
|
7f6ea605d2 | ||
|
|
9203f13161 | ||
|
|
cb011a9bd7 | ||
|
|
da7184d841 | ||
|
|
921336ad13 | ||
|
|
17476fdcf4 | ||
|
|
fe310de31d | ||
|
|
d0fab40b03 | ||
|
|
810ef41c05 | ||
|
|
30ad60c2c1 | ||
|
|
5df00e14da | ||
|
|
1929fb1b57 | ||
|
|
06bb0f77c9 | ||
|
|
aed5ac4c3d | ||
|
|
03cc5b2281 | ||
|
|
8c963be133 | ||
|
|
1afd164712 | ||
|
|
0eedca58e9 | ||
|
|
95c57a3ffb | ||
|
|
48d673a48e | ||
|
|
3f3a72a905 | ||
|
|
3c934e3a4b | ||
|
|
24afa53028 | ||
|
|
5c2a9f62dc | ||
|
|
57de3f9456 | ||
|
|
6c001b6950 | ||
|
|
f940d1bf24 | ||
|
|
aaeab9a241 | ||
|
|
109674bdb5 | ||
|
|
49e0c64dfd | ||
|
|
f71c437b46 | ||
|
|
26a6d01654 | ||
|
|
1670b3fd78 | ||
|
|
d7729028cf | ||
|
|
858acf053e | ||
|
|
d574925122 | ||
|
|
5c2e7c80da | ||
|
|
6abafcaf68 | ||
|
|
f6e50161c6 | ||
|
|
7c8e470199 | ||
|
|
a4f511b47b | ||
|
|
84aeb0d8eb | ||
|
|
501756d4e7 | ||
|
|
06630fb85e | ||
|
|
10fde2b175 | ||
|
|
06de46c084 | ||
|
|
2b69524c57 | ||
|
|
7eca8110cf | ||
|
|
47b2e8c709 | ||
|
|
6380e1ad0a | ||
|
|
0e2973f01e | ||
|
|
d7a7256929 | ||
|
|
eebc4f7a63 | ||
|
|
0f3f27ff26 | ||
|
|
21a69a1048 | ||
|
|
7ee652d021 | ||
|
|
72b3e736c0 | ||
|
|
459a9c3fbb | ||
|
|
7671830648 | ||
|
|
b1ea52cbe3 | ||
|
|
503361a847 | ||
|
|
bace7aa175 | ||
|
|
fd7875b24e | ||
|
|
e5c5aa6cdd | ||
|
|
98f9269766 | ||
|
|
d3c7f8cd56 | ||
|
|
f246827d3d | ||
|
|
bcec481268 | ||
|
|
810ec1fd6c | ||
|
|
fc2d77a0dc | ||
|
|
65157e93a9 | ||
|
|
a43e423c06 | ||
|
|
abc7e1c8c6 | ||
|
|
3c89404543 | ||
|
|
ae2fdad4f1 | ||
|
|
8d024ad625 | ||
|
|
24e9cc0658 | ||
|
|
b15d574d8b | ||
|
|
507392b23e | ||
|
|
8765a00ead | ||
|
|
9334d5cdc8 | ||
|
|
a94bc7073d | ||
|
|
fe8402b856 | ||
|
|
b37656d4fe | ||
|
|
399aaa9e2d | ||
|
|
80616bf9bd | ||
|
|
3832b9216f | ||
|
|
9c556c5f40 | ||
|
|
532d5cbc6d | ||
|
|
292af4d1ef | ||
|
|
4b16fc2ec5 | ||
|
|
de0b37bf43 | ||
|
|
89eec3250a | ||
|
|
07a06ae598 | ||
|
|
3b09297600 | ||
|
|
1bae5ecb55 | ||
|
|
e44e44df41 | ||
|
|
e6ecc6068d | ||
|
|
a7028e00f9 | ||
|
|
66f0097b80 | ||
|
|
b5484ecda6 | ||
|
|
2462c3774d | ||
|
|
baf13117dc | ||
|
|
988f70bf69 | ||
|
|
4f60118f37 | ||
|
|
b7e1bff0f4 | ||
|
|
a0758b4b61 | ||
|
|
b614eed79d | ||
|
|
b22cc7f19f | ||
|
|
a11dcc16f0 | ||
|
|
8333a834fc | ||
|
|
fc93d5c646 | ||
|
|
92a04d5f2a | ||
|
|
ff0786def7 | ||
|
|
4907f06183 | ||
|
|
ad5a8c06a5 | ||
|
|
749765c85d | ||
|
|
aafa9317e0 | ||
|
|
628a74c3f7 | ||
|
|
9a392eebad | ||
|
|
f67850461f | ||
|
|
ad60e1a624 | ||
|
|
21a594a81e | ||
|
|
253736221e | ||
|
|
1252d11bba | ||
|
|
b1da9ff18b | ||
|
|
c6d6937f21 | ||
|
|
f40655b1af | ||
|
|
f68dce9ee2 | ||
|
|
ebda457684 | ||
|
|
d9a6d1a803 | ||
|
|
fc5a3dcab4 | ||
|
|
5b0df0befd | ||
|
|
0dd5e5086d | ||
|
|
bb464a2351 | ||
|
|
c03d683dcb | ||
|
|
344fe1b58b | ||
|
|
c0d14daf44 | ||
|
|
cf22c6f6fc | ||
|
|
f579875b35 | ||
|
|
b49677d5ba | ||
|
|
6389186851 | ||
|
|
d27fedcd0b | ||
|
|
c1350f04b7 | ||
|
|
b48c231dcc | ||
|
|
9752b2e49f | ||
|
|
00795ca3e9 | ||
|
|
a557a42cf5 | ||
|
|
1743801c78 | ||
|
|
ad84eedda3 | ||
|
|
6055921556 | ||
|
|
b74a029166 | ||
|
|
4bb3ab3e16 | ||
|
|
095b707f0c | ||
|
|
992435b1f8 | ||
|
|
a4339d1d67 | ||
|
|
9c4f51d5f6 | ||
|
|
90a71326a9 | ||
|
|
a8e30a5228 | ||
|
|
808f57adfb | ||
|
|
a71497d3a8 | ||
|
|
5b6a563a87 | ||
|
|
3de5a95a98 | ||
|
|
14283ab5e4 | ||
|
|
3b789d040a | ||
|
|
f0e7d41ad6 |
2
.gitignore
vendored
@@ -14,7 +14,7 @@ dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
#lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
|
||||
4
.idea/misc.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (venv)" project-jdk-type="Python SDK" />
|
||||
</project>
|
||||
0
jikimo_frontend/__init__.py
Normal file
50
jikimo_frontend/__manifest__.py
Normal file
@@ -0,0 +1,50 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
{
|
||||
'name': '机企猫智能工厂 样式调整',
|
||||
'version': '1.0',
|
||||
'summary': '机企猫智能工厂 样式调整',
|
||||
'sequence': 1,
|
||||
'description': """
|
||||
在本模块,定义了样式的修改
|
||||
""",
|
||||
'category': 'sf',
|
||||
'website': 'https://www.sf.jikimo.com',
|
||||
'depends': ['web', 'purchase', 'base_setup'],
|
||||
'data': [
|
||||
'views/bye_odoo.xml',
|
||||
],
|
||||
'demo': [
|
||||
],
|
||||
'assets': {
|
||||
|
||||
'web.assets_qweb': [
|
||||
],
|
||||
'web.assets_backend': [
|
||||
'jikimo_frontend/static/src/fields/custom_many2many_checkboxes/*',
|
||||
'jikimo_frontend/static/src/fields/Many2OneRadioField/*',
|
||||
# 移除odoo相关标识
|
||||
'jikimo_frontend/static/src/bye_odoo/*',
|
||||
'jikimo_frontend/static/src/scss/custom_style.scss',
|
||||
# 'jikimo_frontend/static/src/views/list_nums/list_nbCols.js',
|
||||
'jikimo_frontend/static/src/views/list_nums/list_nums.xml',
|
||||
'jikimo_frontend/static/src/views/list_nums/list_nums2.xml',
|
||||
'jikimo_frontend/static/src/views/list_nums/list_nums3.xml',
|
||||
'jikimo_frontend/static/src/js/custom_form_status_indicator.js',
|
||||
'jikimo_frontend/static/src/js/custom_image_temp.js',
|
||||
'jikimo_frontend/static/src/scss/rowno_in_tree.scss',
|
||||
# 'jikimo_frontend/static/src/views/list_nums/list_render.xml',
|
||||
# 'jikimo_frontend/static/src/list/list_up_down_button.xml',
|
||||
# 'jikimo_frontend/static/src/list/custom_import.js',
|
||||
# 'jikimo_frontend/static/src/list/custom_width.js',
|
||||
'jikimo_frontend/static/src/views/list_nums/extent_purchase.xml',
|
||||
'jikimo_frontend/static/src/css/list_border_styles.css',
|
||||
|
||||
],
|
||||
|
||||
},
|
||||
'license': 'LGPL-3',
|
||||
'installable': True,
|
||||
'application': False,
|
||||
'auto_install': False,
|
||||
}
|
||||
23
jikimo_frontend/data/demo_data.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="partner_demo_company" model="res.partner">
|
||||
<field name="name">JKM</field>
|
||||
<field name="street">B-25</field>
|
||||
<field name="city">USA</field>
|
||||
<!-- Use the correct reference or actual ID for the country -->
|
||||
<field name="country_id" ref="base.bd"/>
|
||||
<field name="zip">1229</field>
|
||||
<field name="phone">+8801-712901764</field>
|
||||
<field name="email">info@kolpolok.com</field>
|
||||
<field name="website">www.kolpoloktechnologies.com</field>
|
||||
</record>
|
||||
|
||||
<record id="demo_company" model="res.company">
|
||||
<field name="name">Custom</field>
|
||||
<field name="logo" type="base64" file="kolpolok_custom_title_and_favicon/static/src/img/favicon.ico"/>
|
||||
<field name="favicon" type="base64" file="kolpolok_custom_title_and_favicon/static/src/img/favicon.ico"/>
|
||||
<field name="partner_id" ref="partner_demo_company"/>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
16
jikimo_frontend/static/src/bye_odoo/extended_user_menu.js
Normal file
@@ -0,0 +1,16 @@
|
||||
/** @odoo-module **/
|
||||
import { UserMenu } from "@web/webclient/user_menu/user_menu";
|
||||
import { patch } from "@web/core/utils/patch";
|
||||
import { registry } from "@web/core/registry";
|
||||
const userMenuRegistry = registry.category("user_menuitems");
|
||||
|
||||
|
||||
patch(UserMenu.prototype, "legion_hide_odoo.UserMenu", {
|
||||
setup() {
|
||||
this._super.apply(this, arguments);
|
||||
userMenuRegistry.remove("documentation");
|
||||
userMenuRegistry.remove("support");
|
||||
userMenuRegistry.remove("odoo_account");
|
||||
},
|
||||
|
||||
});
|
||||
11
jikimo_frontend/static/src/bye_odoo/favicon.js
Normal file
@@ -0,0 +1,11 @@
|
||||
/** @odoo-module **/
|
||||
|
||||
import { WebClient } from "@web/webclient/webclient";
|
||||
import { patch } from "web.utils";
|
||||
|
||||
patch(WebClient.prototype, "kolpolok_custom_title_and_favicon.WebClient", {
|
||||
setup() {
|
||||
this._super();
|
||||
this.title.setParts({ zopenerp: "JIKIMO" });
|
||||
},
|
||||
});
|
||||
3
jikimo_frontend/static/src/css/list_border_styles.css
Normal file
@@ -0,0 +1,3 @@
|
||||
.o_list_renderer .o_list_table tbody > tr > td:not(.o_list_record_selector):not(.o_handle_cell):not(.o_list_button):not(.o_list_record_remove){
|
||||
border:1px solid #dee2e6 !important;
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
.many2one_radio_field {
|
||||
display: inline-block;
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
/** @odoo-module **/
|
||||
|
||||
import { RadioField } from "@web/views/fields/radio/radio_field"; // 导入单选按钮组件
|
||||
import { registry } from "@web/core/registry";
|
||||
|
||||
export class Many2OneRadioField extends RadioField {
|
||||
// 你可以重写或者添加一些方法和属性
|
||||
// 例如,你可以重写setup方法来添加一些事件监听器或者初始化一些变量
|
||||
setup() {
|
||||
super.setup(); // 调用父类的setup方法
|
||||
// 你自己的代码
|
||||
}
|
||||
|
||||
onImageClick(event) {
|
||||
// 放大图片逻辑
|
||||
// 获取图片元素
|
||||
const img = event.target;
|
||||
const close = img.nextSibling;
|
||||
// 实现放大图片逻辑
|
||||
// 比如使用 CSS 放大
|
||||
img.parentElement.classList.add('zoomed');
|
||||
close.classList.add('img_close');
|
||||
}
|
||||
|
||||
onCloseClick(event) {
|
||||
const close = event.target;
|
||||
const img = close.previousSibling;
|
||||
img.parentElement.classList.remove('zoomed');
|
||||
close.classList.remove('img_close');
|
||||
}
|
||||
|
||||
get items() {
|
||||
return Many2OneRadioField.getItems(this.props.name, this.props.record);
|
||||
}
|
||||
|
||||
static getItems(fieldName, record) {
|
||||
switch (record.fields[fieldName].type) {
|
||||
case "selection":
|
||||
return record.fields[fieldName].selection;
|
||||
case "many2one": {
|
||||
const value = record.preloadedData[fieldName] || [];
|
||||
return value.map((item) => [item.id, item.display_name, item.image]);
|
||||
}
|
||||
default:
|
||||
return [];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Many2OneRadioField.template = "jikimo_frontend.Many2OneRadioField";
|
||||
// MyCustomWidget.supportedTypes = ['many2many'];
|
||||
|
||||
registry.category("fields").add("many2one_radio", Many2OneRadioField);
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<templates xml:space="preserve">
|
||||
|
||||
<t t-name="jikimo_frontend.Many2OneRadioField" owl="1">
|
||||
<div
|
||||
role="radiogroup"
|
||||
t-attf-class="o_{{ props.orientation }}"
|
||||
t-att-aria-label="string"
|
||||
>
|
||||
<t t-foreach="items" t-as="item" t-key="item[0]">
|
||||
<div class="form-check o_radio_item many2one_radio_field" aria-atomic="true">
|
||||
<input
|
||||
type="radio"
|
||||
class="form-check-input o_radio_input"
|
||||
t-att-checked="item[0] === value"
|
||||
t-att-disabled="props.readonly"
|
||||
t-att-name="id"
|
||||
t-att-data-value="item[0]"
|
||||
t-att-data-index="item_index"
|
||||
t-att-id="`${id}_${item[0]}`"
|
||||
t-on-change="() => this.onChange(item)"
|
||||
/>
|
||||
<label class="form-check-label o_form_label" t-att-for="`${id}_${item[0]}`" t-esc="item[1]" />
|
||||
<div t-on-dblclick="onImageClick">
|
||||
<t>
|
||||
<img t-att-src="item[2]" width="50" height="50"/>
|
||||
<div class="close" t-on-click="onCloseClick">×</div>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
</templates>
|
||||
@@ -0,0 +1,41 @@
|
||||
.zoomed {
|
||||
position: fixed !important;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%) scale(10);
|
||||
}
|
||||
|
||||
.many2many_flex {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.many2many_flex>div {
|
||||
margin-right: 15px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.many2many_flex>div>:nth-child(2) {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.close {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
position: absolute;
|
||||
top: -8.8px;
|
||||
right: -8.8px;
|
||||
color: #fff;
|
||||
background-color: #000;
|
||||
opacity: 0;
|
||||
text-align: center;
|
||||
line-height: 20px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.img_close {
|
||||
opacity: 1;
|
||||
transform: scale(0.1);
|
||||
cursor: pointer;
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
/** @odoo-module **/
|
||||
|
||||
import {Many2ManyCheckboxesField} from "@web/views/fields/many2many_checkboxes/many2many_checkboxes_field";
|
||||
import {registry} from "@web/core/registry";
|
||||
|
||||
export class MyCustomWidget extends Many2ManyCheckboxesField {
|
||||
// 你可以重写或者添加一些方法和属性
|
||||
// 例如,你可以重写setup方法来添加一些事件监听器或者初始化一些变量
|
||||
setup() {
|
||||
super.setup(); // 调用父类的setup方法
|
||||
// 你自己的代码
|
||||
}
|
||||
|
||||
onImageClick(event) {
|
||||
// 放大图片逻辑
|
||||
// 获取图片元素
|
||||
const img = event.target;
|
||||
const close = img.nextSibling;
|
||||
|
||||
// 实现放大图片逻辑
|
||||
// 比如使用 CSS 放大
|
||||
img.parentElement.classList.add('zoomed');
|
||||
close.classList.add('img_close');
|
||||
}
|
||||
|
||||
onCloseClick(event) {
|
||||
const close = event.target;
|
||||
const img = close.previousSibling;
|
||||
img.parentElement.classList.remove('zoomed');
|
||||
close.classList.remove('img_close');
|
||||
}
|
||||
}
|
||||
|
||||
MyCustomWidget.template = "jikimo_frontend.MyCustomWidget";
|
||||
// MyCustomWidget.supportedTypes = ['many2many'];
|
||||
|
||||
registry.category("fields").add("custom_many2many_checkboxes", MyCustomWidget);
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<templates xml:space="preserve">
|
||||
|
||||
<t t-name="jikimo_frontend.MyCustomWidget" owl="1">
|
||||
<div aria-atomic="true" class="many2many_flex">
|
||||
<t t-foreach="items" t-as="item" t-key="item[0]">
|
||||
<div>
|
||||
<CheckBox
|
||||
value="isSelected(item)"
|
||||
disabled="props.readonly"
|
||||
onChange="(ev) => this.onChange(item[0], ev)"
|
||||
>
|
||||
<t t-esc="item[1]"/>
|
||||
|
||||
</CheckBox>
|
||||
<div t-on-dblclick="onImageClick">
|
||||
<t>
|
||||
<img t-att-src="item[2]" width="50" height="50"/>
|
||||
<div class="close" t-on-click="onCloseClick">×</div>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</t>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
</templates>
|
||||
BIN
jikimo_frontend/static/src/img/favicon.ico
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
jikimo_frontend/static/src/img/jikimo-logo.ico
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
jikimo_frontend/static/src/img/jikimo.ico
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
210
jikimo_frontend/static/src/js/custom_form_status_indicator.js
Normal file
@@ -0,0 +1,210 @@
|
||||
/** @odoo-module */
|
||||
|
||||
import {patch} from '@web/core/utils/patch';
|
||||
// import { Dialog } from "@web/core/dialog/dialog";
|
||||
import {_t} from "@web/core/l10n/translation";
|
||||
import {FormStatusIndicator} from "@web/views/form/form_status_indicator/form_status_indicator";
|
||||
import {ListRenderer} from "@web/views/list/list_renderer";
|
||||
|
||||
import {Field} from "@web/views/fields/field";
|
||||
|
||||
var Dialog = require('web.Dialog');
|
||||
// var {patch} = require("web.utils") 这句话也行
|
||||
const filedRequiredList = {
|
||||
// 设备大模块
|
||||
'control_system_id': { multiple: false, noLabel: false },
|
||||
'workbench_L': { multiple: true, noLabel: false },
|
||||
'number_of_axles': { multiple: true, noLabel: false },
|
||||
'x_axis': { multiple: true, noLabel: false },
|
||||
'number_of_knife_library': { multiple: false, noLabel: false },
|
||||
'brand_id': { multiple: false, noLabel: false },
|
||||
'type_id': { multiple: false, noLabel: false },
|
||||
'taper_type_id': { multiple: false, noLabel: false },
|
||||
'eq_maintenance_id': { multiple: false, noLabel: false },
|
||||
'overhaul_id': { multiple: false, noLabel: false },
|
||||
'overhaul_period': { multiple: false, noLabel: false },
|
||||
'maintenance_equipment_category_id': { multiple: false, noLabel: false },
|
||||
'maintenance_type': { multiple: false, noLabel: false },
|
||||
|
||||
// 销售大模块
|
||||
'partner_id': { multiple: false, noLabel: false },
|
||||
'validity_date': { multiple: false, noLabel: false },
|
||||
'vat': { multiple: false, noLabel: false },
|
||||
'phone': { multiple: false, noLabel: false },
|
||||
'mobile': { multiple: false, noLabel: false },
|
||||
'email': { multiple: false, noLabel: false },
|
||||
'category_id': { multiple: false, noLabel: false },
|
||||
'radio_field_1_person': { multiple: false, noLabel: true },
|
||||
|
||||
// 采购大模块
|
||||
'date_order': { multiple: false, noLabel: false },
|
||||
'picking_type_id': { multiple: false, noLabel: false },
|
||||
|
||||
// 制造大模块
|
||||
'production_line_id': { multiple: false, noLabel: false },
|
||||
'date_approve': { multiple: false, noLabel: false },
|
||||
'date_planned_start': { multiple: false, noLabel: false },
|
||||
'date_planned_finished': { multiple: false, noLabel: false },
|
||||
}
|
||||
const tableRequiredList = [
|
||||
'product_template_id', 'product_uom_qty', 'price_unit','product_id','product_qty',
|
||||
'name', 'fault_type', 'maintenance_standards', 'Period'
|
||||
]
|
||||
|
||||
patch(FormStatusIndicator.prototype, 'jikimo_frontend.FormStatusIndicator', {
|
||||
// 你可以重写或者添加一些方法和属性
|
||||
async _onDiscardChanges() {
|
||||
// var self = this;
|
||||
Dialog.confirm(this, _t("Are you sure you want to discard changes?"), {
|
||||
title: _t("Discard Changes"),
|
||||
|
||||
// confirm_callback: function () {
|
||||
// self.model.discardChanges(self.handle);
|
||||
// },
|
||||
});
|
||||
},
|
||||
|
||||
async discard() {
|
||||
// if (window.confirm("Are you sure you want to discard changes?")) {
|
||||
// await this.props.discard();
|
||||
// }
|
||||
// const result = await this._confirmDiscardChange();
|
||||
await this._confirmDiscardChange();
|
||||
await this.props.discard();
|
||||
},
|
||||
|
||||
_confirmDiscardChange() {
|
||||
var self = this;
|
||||
var def = new Promise(function (resolve, reject) {
|
||||
var message = _t("请确认是否要舍弃之前的更改?");
|
||||
var dialog = Dialog.confirm(self, message, {
|
||||
title: _t("Warning"),
|
||||
confirm_callback: resolve.bind(self, true),
|
||||
cancel_callback: reject,
|
||||
});
|
||||
dialog.on('closed', self, reject);
|
||||
});
|
||||
return def;
|
||||
},
|
||||
|
||||
}
|
||||
);
|
||||
patch(Field.prototype, 'jikimo_frontend.Field', {
|
||||
setup() {
|
||||
owl.onMounted(this.setRequired);
|
||||
return this._super(...arguments);
|
||||
},
|
||||
setRequired() {
|
||||
const id = this.props.id
|
||||
const isRequired = filedRequiredList[id]
|
||||
if(id == 'number_of_axles') {
|
||||
console.log(isRequired)
|
||||
}
|
||||
if(isRequired) {
|
||||
let dom;
|
||||
dom = $(`label[for=${id}]`)
|
||||
if(isRequired.multiple && dom.length > 1) {
|
||||
dom = dom.eq(-1)
|
||||
dom = dom.parent().parent().next().find('label')
|
||||
}
|
||||
if(isRequired.noLabel) {
|
||||
dom = dom.parent().parent()
|
||||
}
|
||||
let t = dom.html()
|
||||
t = '<i class="c* r" style="color: red;margin-left: -4px">*</i>' + t
|
||||
dom.html(t)
|
||||
}
|
||||
}
|
||||
})
|
||||
patch(ListRenderer.prototype, 'jikimo_frontend.ListRenderer', {
|
||||
setup(){
|
||||
owl.onMounted(() => {
|
||||
this.activeElement = this.uiService.activeElement;
|
||||
this.setRequired()
|
||||
})
|
||||
return this._super(...arguments);
|
||||
},
|
||||
setRequired() {
|
||||
this.allColumns.forEach(_ => {
|
||||
if( tableRequiredList.indexOf(_.name) >= 0 ) {
|
||||
const dom = $(`th[data-name=${_.name}]`)
|
||||
dom.addClass('addRequired')
|
||||
}
|
||||
})
|
||||
try {
|
||||
const dom = this.tableRef.el
|
||||
if(dom ) {
|
||||
const tfoot = $(dom).children('tfoot')
|
||||
const tbooy = $(dom).children('tbody')
|
||||
if(tfoot.length) {
|
||||
const tfoot_tr = tfoot.children().eq(0)
|
||||
const tbody_tr = tbooy.children().eq(0)
|
||||
if(tfoot_tr.children().length < tbody_tr.children().length) {
|
||||
tfoot_tr.prepend('<td class="prepend">')
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
$(function () {
|
||||
document.addEventListener('click', function () {
|
||||
const dom = $('.o_form_status_indicator_buttons ')
|
||||
if (dom) {
|
||||
const dom1 = dom.children().eq(0)
|
||||
const dom2 = dom.children().eq(1)
|
||||
if (!dom1.text()) {
|
||||
dom1.append('保存')
|
||||
dom2.append('取消')
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
function customRequired() {
|
||||
let timer = null
|
||||
let timer_count = 0
|
||||
clearInterval(timer)
|
||||
timer = setInterval(() => {
|
||||
timer_count++
|
||||
const dom = $('.custom_required')
|
||||
let tableDom = $('.table_custom_required')
|
||||
if (tableDom.length) {
|
||||
tableDom = tableDom.eq(0).parents('tr').children('.table_custom_required')
|
||||
tableDom.each(function () {
|
||||
const i = $(this).index()
|
||||
const requiredDom = $(this).parents('table').find('thead').find('th').eq(i).find('span').eq(0)
|
||||
const t = requiredDom.text().replace('*', '')
|
||||
requiredDom.html('<i style="color: red;margin-left: -4px">*</i>' + t)
|
||||
})
|
||||
clearInterval(timer)
|
||||
}
|
||||
if (dom.length) {
|
||||
dom.each(function () {
|
||||
const requiredDom = $(this).parent().prev().find('label')
|
||||
let t = requiredDom.html()
|
||||
if (t && t.indexOf('c*') < 0) {
|
||||
t = '<i class="c*" style="color: red;margin-left: -4px">*</i>' + t
|
||||
}
|
||||
requiredDom.html(t)
|
||||
})
|
||||
clearInterval(timer)
|
||||
}
|
||||
if (timer_count == 20) {
|
||||
clearInterval(timer)
|
||||
}
|
||||
}, 500)
|
||||
}
|
||||
|
||||
var currentUrl = location.href
|
||||
const listenerUrl = setInterval(() => {
|
||||
const isChange = currentUrl != location.href
|
||||
if (isChange) {
|
||||
currentUrl = location.href
|
||||
customRequired()
|
||||
}
|
||||
}, 500)
|
||||
customRequired()
|
||||
})
|
||||
32
jikimo_frontend/static/src/js/custom_image.js
Normal file
@@ -0,0 +1,32 @@
|
||||
/** @odoo-module **/
|
||||
|
||||
|
||||
import {patch} from '@web/core/utils/patch';
|
||||
import { url } from "@web/core/utils/urls";
|
||||
import { ImageField, imageCacheKey } from '@web/views/fields/image/image_field';
|
||||
|
||||
patch(ImageField.prototype, 'jikimo_frontend/static/src/js/custom_image.js', {
|
||||
// 你可以重写或者添加一些方法和属性
|
||||
getUrl(previewFieldName) {
|
||||
console.log('666666666666666666666666666666666')
|
||||
if (this.state.isValid && this.props.value) {
|
||||
if (1) {
|
||||
if (!this.rawCacheKey) {
|
||||
this.rawCacheKey = this.props.record.data.__last_update;
|
||||
}
|
||||
return url("/web/image", {
|
||||
model: this.props.record.resModel,
|
||||
id: this.props.record.resId,
|
||||
field: previewFieldName,
|
||||
unique: imageCacheKey(this.rawCacheKey),
|
||||
});
|
||||
} else {
|
||||
// Use magic-word technique for detecting image type
|
||||
const magic = fileTypeMagicWordMap[this.props.value[0]] || "png";
|
||||
return `data:image/${magic};base64,${this.props.value}`;
|
||||
}
|
||||
}
|
||||
return placeholder;
|
||||
}
|
||||
}
|
||||
);
|
||||
45
jikimo_frontend/static/src/js/custom_image_temp.js
Normal file
@@ -0,0 +1,45 @@
|
||||
/** @odoo-module **/
|
||||
|
||||
import { registry } from "@web/core/registry";
|
||||
import { url } from "@web/core/utils/urls";
|
||||
import { ImageField, imageCacheKey } from '@web/views/fields/image/image_field';
|
||||
import { isBinarySize } from "@web/core/utils/binary";
|
||||
export const fileTypeMagicWordMap = {
|
||||
"/": "jpg",
|
||||
R: "gif",
|
||||
i: "png",
|
||||
P: "svg+xml",
|
||||
};
|
||||
|
||||
const placeholder = "/web/static/img/placeholder.png";
|
||||
|
||||
export class CustomImageField extends ImageField {
|
||||
setup() {
|
||||
super.setup();
|
||||
// this.dialog = useService("dialog");
|
||||
}
|
||||
|
||||
getUrl(previewFieldName) {
|
||||
console.log('8888888888886666666666666666666')
|
||||
if (this.state.isValid && this.props.value) {
|
||||
if (isBinarySize(this.props.value) || this.props.value.length < 50) {
|
||||
if (!this.rawCacheKey) {
|
||||
this.rawCacheKey = this.props.record.data.__last_update;
|
||||
}
|
||||
return url("/web/image", {
|
||||
model: this.props.record.resModel,
|
||||
id: this.props.record.resId,
|
||||
field: previewFieldName,
|
||||
unique: imageCacheKey(this.rawCacheKey),
|
||||
});
|
||||
} else {
|
||||
// Use magic-word technique for detecting image type
|
||||
const magic = fileTypeMagicWordMap[this.props.value[0]] || "png";
|
||||
return `data:image/${magic};base64,${this.props.value}`;
|
||||
}
|
||||
}
|
||||
return placeholder;
|
||||
}
|
||||
}
|
||||
|
||||
registry.category("fields").add("custom_image", CustomImageField);
|
||||
95
jikimo_frontend/static/src/list/custom_width.js
Normal file
@@ -0,0 +1,95 @@
|
||||
/** @odoo-module */
|
||||
|
||||
import {patch} from '@web/core/utils/patch';
|
||||
import {ListRenderer} from "@web/views/list/list_renderer";
|
||||
|
||||
// var {patch} = require("web.utils") 这句话也行
|
||||
|
||||
patch(ListRenderer.prototype, 'jikimo_frontend.ListRenderer', {
|
||||
// 你可以重写或者添加一些方法和属性
|
||||
// The following code manipulates the DOM directly to avoid having to wait for a
|
||||
// render + patch which would occur on the next frame and cause flickering.
|
||||
freezeColumnWidths() {
|
||||
// console.log('ccccccccccccccccccccccccccc')
|
||||
if (!this.keepColumnWidths) {
|
||||
this.columnWidths = null;
|
||||
}
|
||||
|
||||
const table = this.tableRef.el;
|
||||
const headers = [...table.querySelectorAll("thead th:not(.o_list_actions_header)")];
|
||||
const column_num = headers.length;
|
||||
|
||||
if (!this.columnWidths || !this.columnWidths.length) {
|
||||
// no column widths to restore
|
||||
// Set table layout auto and remove inline style to make sure that css
|
||||
// rules apply (e.g. fixed width of record selector)
|
||||
table.style.tableLayout = "auto";
|
||||
headers.forEach((th) => {
|
||||
th.style.width = null;
|
||||
th.style.maxWidth = null;
|
||||
});
|
||||
|
||||
this.setDefaultColumnWidths(column_num);
|
||||
|
||||
// Squeeze the table by applying a max-width on largest columns to
|
||||
// ensure that it doesn't overflow
|
||||
this.columnWidths = this.computeColumnWidthsFromContent();
|
||||
table.style.tableLayout = "fixed";
|
||||
}
|
||||
headers.forEach((th, index) => {
|
||||
if (!th.style.width) {
|
||||
th.style.width = `${Math.floor(this.columnWidths[index])}px`;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
setDefaultColumnWidths(column_num) {
|
||||
// const bbb = this.state.columns[0].name
|
||||
const widths = this.state.columns.map((col) =>
|
||||
this.calculateColumnWidth(col));
|
||||
// const sumOfRelativeWidths = (widths
|
||||
// .filter(({ type }) => type === "relative")
|
||||
// .reduce((sum, { value }) => sum + value, 0));
|
||||
|
||||
// 获取数组的最后一项
|
||||
const lastItem = widths[widths.length - 1];
|
||||
|
||||
// 复制最后一项
|
||||
const newItem = { ...lastItem };
|
||||
|
||||
// 将新的对象添加到数组的末尾
|
||||
widths.push(newItem);
|
||||
|
||||
// 判断销售的sequence
|
||||
// if (this.state.columns[0].name === "sequence") {
|
||||
// widths[1] = { type: "relative", value: 0.1 };
|
||||
// }
|
||||
|
||||
// 判断 this.state.columns 是否存在且长度大于零
|
||||
if (this.state.columns && this.state.columns.length > 0
|
||||
&& this.state.columns[0].name === "sequence") {
|
||||
widths[1] = { type: "relative", value: 0.1 };
|
||||
}
|
||||
|
||||
|
||||
// 1 because nth-child selectors are 1-indexed,
|
||||
// 2 when the first column contains
|
||||
// the checkboxes to select records.
|
||||
const columnOffset = this.hasSelectors ? 2 : 1;
|
||||
widths.forEach(({ type, value }, width) => {
|
||||
const headerEl = this.tableRef.el.querySelector(
|
||||
`th:nth-child(${width + columnOffset})`);
|
||||
if (type === "absolute") {
|
||||
if (this.isEmpty) {
|
||||
headerEl.style.width = value;
|
||||
} else {
|
||||
headerEl.style.minWidth = value;
|
||||
}
|
||||
} else if (type === "relative" && this.isEmpty) {
|
||||
headerEl.style.width = `${((value / column_num) * 100
|
||||
).toFixed(2)}%`;
|
||||
}
|
||||
});
|
||||
},
|
||||
}
|
||||
);
|
||||
20
jikimo_frontend/static/src/list/list_up_down_button.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<templates>
|
||||
<t t-name="list_up_down_button" t-inherit="web.ListView.Buttons" t-inherit-mode="extension" owl="1">
|
||||
<xpath expr="//t[@t-if='nbTotal and !nbSelected and activeActions.exportXlsx and isExportEnable and !env.isSmall']" position="before">
|
||||
<!-- 新增的导入文件按钮 -->
|
||||
<!-- <button type="button" class="btn btn-secondary fa fa-upload o_list_import_file" data-tooltip="导入文件" aria-label="Import File" title="" t-on-click="onDirectImportData"/> -->
|
||||
<!-- <button type="button" class="btn btn-secondary fa fa-upload o_list_import_file" data-tooltip="导入文件" aria-label="Import File" title="" t-on-click="onDirectImportData"/> -->
|
||||
<!-- <button type="button" class="btn btn-secondary fa fa-download o_list_export_xlsx" data-tooltip="导出全部" aria-label="导出全部" t-on-click="onDirectExportData"/> -->
|
||||
<button type="button" class="btn btn-secondary o_list_export_xlsx" data-tooltip="导出全部" aria-label="导出全部" t-on-click="onDirectExportData">导出全部</button>
|
||||
<!-- <button type="button" t-component="base_import.ImportRecords" class="btn btn-secondary o_list_export_xlsx" data-tooltip="导入数据" aria-label="导入数据" t-on-click="importRecords">导入数据</button> -->
|
||||
<!-- <button type="button" class="btn btn-secondary o_list_export_xlsx" data-tooltip="导入数据" aria-label="导入数据" t-on-click="importRecords">导入数据</button> -->
|
||||
<!-- <t t-component="base_import.ImportRecords"> -->
|
||||
<!-- <button t-on-click="importRecords" type="button" class="btn btn-secondary o_list_export_xlsx" data-tooltip="导入数据" aria-label="导入数据">导入数据</button> -->
|
||||
<!-- </t> -->
|
||||
|
||||
</xpath>
|
||||
<xpath expr="//t[@t-if='nbTotal and !nbSelected and activeActions.exportXlsx and isExportEnable and !env.isSmall']" position="replace">
|
||||
</xpath>
|
||||
</t>
|
||||
</templates>
|
||||
494
jikimo_frontend/static/src/scss/custom_style.scss
Normal file
@@ -0,0 +1,494 @@
|
||||
.test_model {
|
||||
display: flex !important;
|
||||
}
|
||||
|
||||
.test_model > .o_form_label {
|
||||
margin-left: 0px !important;
|
||||
margin-right: 0px !important;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
div:has(.o_required_modifier) > label::before {
|
||||
content: '*' !important;
|
||||
color: red !important;
|
||||
padding: 0 4px !important;
|
||||
vertical-align: top !important;
|
||||
font-size: unset !important;
|
||||
}
|
||||
|
||||
.my-image div {
|
||||
|
||||
width: 110px !important;
|
||||
height: 110px !important;
|
||||
}
|
||||
|
||||
.add_flex {
|
||||
padding: 5px 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.maintenance_name {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.o_kanban_renderer .o_kanban_record .o_kanban_record_has_image_fill .o_kanban_image_fill_left {
|
||||
flex: unset !important;
|
||||
}
|
||||
|
||||
.o_kanban_renderer .o_kanban_record .o_kanban_record_bottom {
|
||||
margin-top: 5px;
|
||||
display: inline !important;
|
||||
}
|
||||
|
||||
td.o_required_modifier {
|
||||
display: table-cell !important;
|
||||
}
|
||||
|
||||
.show_state {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
position: absolute;
|
||||
top: 28px;
|
||||
bottom: 0;
|
||||
right: 18px;
|
||||
margin: auto;
|
||||
//height: 34px;
|
||||
height: unset !important;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.show_state > div {
|
||||
width: 20px;
|
||||
height: 12px;
|
||||
border: 1px solid #000
|
||||
}
|
||||
|
||||
.show_state > div:nth-child(1) {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.show_state > div:nth-child(2) {
|
||||
border-top: 1px solid black !important;
|
||||
}
|
||||
|
||||
.oe_kanban_card.kanban_color_2 {
|
||||
background-color: #FF4343 !important;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.oe_kanban_card.kanban_color_1 {
|
||||
background-color: #fff !important;
|
||||
opacity: 0.7;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.oe_kanban_card.kanban_color_3 {
|
||||
background-color: rgb(255, 150, 0) !important;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.my-image div {
|
||||
width: 122px !important;
|
||||
height: 122px !important;
|
||||
}
|
||||
|
||||
.my-image img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.color_1 {
|
||||
background-color: #27FEA9;
|
||||
}
|
||||
|
||||
.color_2 {
|
||||
background-color: #FF4343;
|
||||
}
|
||||
|
||||
.color_3 {
|
||||
background-color: rgb(255, 150, 0);
|
||||
}
|
||||
|
||||
.font_color_1 {
|
||||
color: rgb(0, 183, 0);
|
||||
}
|
||||
|
||||
.font_color_2 {
|
||||
color: #FF4343;
|
||||
}
|
||||
|
||||
.font_color_3 {
|
||||
color: rgb(255, 150, 0);
|
||||
}
|
||||
|
||||
.o_kanban_card_header_title {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.o_kanban_record_bottom {
|
||||
font-family: '华文中宋';
|
||||
//font-weight: bold;
|
||||
}
|
||||
|
||||
.text-truncate {
|
||||
overflow: unset !important;
|
||||
text-overflow: unset !important;
|
||||
//white-space: nowrap!important;
|
||||
}
|
||||
|
||||
.o_list_renderer .o_list_table tbody > tr > td:not(.o_list_record_selector):not(.o_handle_cell):not(.o_list_button):not(.o_list_record_remove) {
|
||||
white-space: nowrap !important;
|
||||
}
|
||||
|
||||
.o_status {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
.czyg {
|
||||
font-size: 12px;
|
||||
margin-right: 10px;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
.o_kanban_primary_left {
|
||||
display: flex;
|
||||
flex-direction: row-reverse;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.o_list_view .o_list_table thead {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
//z-index: 100000;
|
||||
}
|
||||
|
||||
//.o_list_view .o_list_table {
|
||||
// height: 1799px !important;
|
||||
//}
|
||||
.table-responsive {
|
||||
overflow: unset;
|
||||
}
|
||||
|
||||
.o_form_view.o_xxl_form_view .o_form_sheet_bg > .o_form_statusbar {
|
||||
position: sticky !important;
|
||||
top: 0;
|
||||
//z-index: 100000;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
|
||||
//图文展示换行及对齐
|
||||
.many2many_flex {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.many2many_flex > div {
|
||||
width: 110px;
|
||||
margin-right: 15px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
div[class="o_content o_component_with_search_panel"] .oe_kanban_color_0 {
|
||||
position: relative;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
div[class="o_content o_component_with_search_panel"] img[name="equipment_image"] {
|
||||
width: 150px !important;
|
||||
height: 150px !important;
|
||||
}
|
||||
|
||||
div[class="o_content o_component_with_search_panel"] .o_kanban_card_content button {
|
||||
position: absolute;
|
||||
//top: -52px;
|
||||
//left: -55px;
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
div[class="o_content o_component_with_search_panel"] .o_primary > span:nth-of-type(1) {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 168px;
|
||||
}
|
||||
|
||||
div[class="o_content o_component_with_search_panel"] .o_primary > span:nth-of-type(2) {
|
||||
margin-left: 18px;
|
||||
}
|
||||
|
||||
div[class="o_content o_component_with_search_panel"] .o_kanban_dashboard:not(.o_legacy_kanban_view) .o_kanban_record > div .o_kanban_manage_toggle_button {
|
||||
top: 10px !important;
|
||||
right: 17px !important;
|
||||
}
|
||||
|
||||
div[class="o_content o_component_with_search_panel"] .o_kanban_record_headings .ml8 {
|
||||
margin-left: 0px !important;
|
||||
}
|
||||
|
||||
div[class="o_content o_component_with_search_panel"] .o_kanban_dashboard:not(.o_legacy_kanban_view) .o_kanban_record > div .o_kanban_card_content {
|
||||
min-height: 0 !important;
|
||||
height: 0 !important;
|
||||
}
|
||||
|
||||
div[class="o_content o_component_with_search_panel"] .o_kanban_dashboard:not(.o_legacy_kanban_view) .o_kanban_record > div .o_kanban_card_header + .container.o_kanban_card_content {
|
||||
margin-top: -5px !important;
|
||||
}
|
||||
|
||||
div[class="o_content o_component_with_search_panel"] .o_kanban_primary_left {
|
||||
right: 10px;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
div[class="o_content o_component_with_search_panel"] .show_state {
|
||||
right: 10px !important;
|
||||
top: 45px !important;
|
||||
}
|
||||
|
||||
div[class="o_content o_component_with_search_panel"] .show_state span {
|
||||
margin-top: 10px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
//div[class="o_content o_component_with_search_panel"] .o_kanban_primary_right > .row {
|
||||
// position: absolute;
|
||||
// top: 55px;
|
||||
// right: 43.5%;
|
||||
//}
|
||||
//------------------------------------------
|
||||
|
||||
.test_model > .o_form_label {
|
||||
margin-left: 4px !important;
|
||||
//line-height: 0 !important;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1200px) {
|
||||
div[class="o_content o_component_with_search_panel"] .o_kanban_primary_right > .row {
|
||||
right: 52%;
|
||||
}
|
||||
|
||||
//div[class="o_content o_component_with_search_panel"] .o_kanban_card_content button {
|
||||
//
|
||||
// left: -95px;
|
||||
//}
|
||||
}
|
||||
|
||||
|
||||
//.o_kanban_renderer .o_kanban_record .o_kanban_record_bottom {
|
||||
// display: flex !important;
|
||||
// flex-direction: column;
|
||||
//}
|
||||
|
||||
.o_kanban_renderer .o_kanban_record .o_kanban_record_bottom > div:nth-child(1) > span:nth-child(1) {
|
||||
display: inline-block;
|
||||
margin-right: 10px;
|
||||
|
||||
}
|
||||
|
||||
.o_kanban_renderer .o_kanban_record .o_kanban_record_bottom > div:nth-child(1) {
|
||||
margin-top: -5px;
|
||||
margin-bottom: 5px;
|
||||
|
||||
}
|
||||
|
||||
.text-bg-warning {
|
||||
background-color: #FED300 !important;
|
||||
}
|
||||
|
||||
.test_model>div {
|
||||
display: flex;
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
.test_model>div .o_field_widget {
|
||||
width: 40% !important;
|
||||
}
|
||||
|
||||
.o_form_label {
|
||||
font-weight: 700 !important;
|
||||
}
|
||||
|
||||
.bigger .o_horizontal_separator {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.o_horizontal_separator {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
//
|
||||
//.o_field_widget input[class='o_input'] {
|
||||
//text-align: center
|
||||
//}
|
||||
|
||||
div:has(.o_required_modifier) > label::before {
|
||||
position: absolute;
|
||||
left: 24px;
|
||||
}
|
||||
|
||||
//.o_form_view .o_form_label {
|
||||
// position: relative;
|
||||
// width: 9rem;
|
||||
// overflow: hidden;
|
||||
// text-overflow: ellipsis;
|
||||
// white-space: nowrap;
|
||||
// padding-left: 1rem;
|
||||
//}
|
||||
//
|
||||
//.o_form_view .o_form_label:hover {
|
||||
// white-space: normal;
|
||||
// overflow: visible;
|
||||
//}
|
||||
|
||||
.o_form_view {
|
||||
.o_form_sheet_bg .o_form_sheet {
|
||||
//max-width: none !important;
|
||||
width: auto !important;
|
||||
max-width: 98% !important;
|
||||
}
|
||||
.o_FormRenderer_chatterContainer {
|
||||
max-width: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 2023-11-16 hy 新增
|
||||
.o_kanban_card_content .btn-group {
|
||||
position: unset;
|
||||
}
|
||||
|
||||
.o_kanban_card_content .btn-group button{
|
||||
top: 100px;
|
||||
left: 168px;
|
||||
}
|
||||
|
||||
|
||||
.o_kanban_primary_right {
|
||||
position: absolute;
|
||||
top: 40px;
|
||||
left: 168px;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
box-sizing: border-box;
|
||||
.row {
|
||||
width: 50%;
|
||||
margin: 0;
|
||||
>div {
|
||||
padding: 0;
|
||||
width: unset;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.oe_kanban_details li.o_text_overflow {
|
||||
display: block;
|
||||
}
|
||||
.o_stock_kanban .o_kanban_card_content {
|
||||
.row {
|
||||
align-items: center;
|
||||
|
||||
.o_kanban_primary_left, .o_kanban_primary_right {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.o_kanban_primary_right {
|
||||
position: unset;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 机床换刀申请表格宽度设置
|
||||
.o_list_table_ungrouped {
|
||||
min-width: 1089px;
|
||||
}
|
||||
// 加工能力\冷却方式 竖列展示改为横列展示
|
||||
.processingMethod {
|
||||
.o_cell.flex-grow-1.flex-sm-grow-0 {
|
||||
width: 100%!important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.o_inner_group.processingMethod {
|
||||
grid-template-columns: auto;
|
||||
}
|
||||
}
|
||||
|
||||
// 设置所有表格序号列padding为0
|
||||
.o_form_view .o_notebook > .tab-content > .tab-pane > :first-child:not(.o_group) .o_field_x2many.o_field_x2many_list tr > :first-child, .o_form_view .o_notebook > .tab-content > .tab-pane > :first-child.o_invisible_modifier + .o_field_widget .o_field_x2many.o_field_x2many_list tr > :first-child {
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
// 设置剩余number类型数据表格列 left
|
||||
.o_list_renderer .o_list_table thead .o_list_number_th {
|
||||
text-align:left;
|
||||
}
|
||||
.o_list_renderer .o_list_table tbody > tr > td:not(.o_list_record_selector).o_list_number {
|
||||
text-align: left;
|
||||
}
|
||||
.o_list_renderer .flex-row-reverse {
|
||||
flex-direction: unset!important;
|
||||
}
|
||||
|
||||
.o_list_renderer .flex-row-reverse > .text-end {
|
||||
text-align: left!important;
|
||||
}
|
||||
|
||||
// 设置modal弹窗样式
|
||||
.modal.o_technical_modal {
|
||||
.modal-lg {
|
||||
@media (min-width: 992px) {
|
||||
max-width: 1200px;
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.o_form_view .o_inner_group {
|
||||
grid-template-columns: auto;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// 更改表格底部按钮样式
|
||||
.o_list_renderer .o_field_x2many_list_row_add a,.treeHeaderBtn,.o_x2m_control_panel .o_cp_buttons .btn{
|
||||
display: inline-block;
|
||||
margin: 5px 0;
|
||||
font-size: 14px;
|
||||
color: #71639e;
|
||||
border: 1px solid #71639e;
|
||||
padding: 0.2rem 0.6rem;
|
||||
font-size: 1.08333333rem;
|
||||
border-radius: 0.25rem;
|
||||
transition: all .3s;
|
||||
}
|
||||
.o_list_renderer .o_field_x2many_list_row_add a:hover,.treeHeaderBtn:hover,.o_x2m_control_panel .o_cp_buttons .btn:hover{
|
||||
background: #71639e;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
// 修改时间输入框宽度
|
||||
.o_datepicker_input.o_input.datetimepicker-input {
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
|
||||
.o_form_view .o_form_editable .o_row > .o_field_widget, .o_form_view .o_form_editable .o_row > .o_field_widget.o_field_float_time {
|
||||
width: auto !important;
|
||||
flex: unset;
|
||||
}
|
||||
.addRequired {
|
||||
padding-left: calc(0.3rem + 2px)!important;
|
||||
}
|
||||
.addRequired:before {
|
||||
content: '*';
|
||||
color: red;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
.o_list_renderer .o_list_table tfoot .o_list_number {
|
||||
text-align: left;
|
||||
}
|
||||
4
jikimo_frontend/static/src/scss/rowno_in_tree.scss
Normal file
@@ -0,0 +1,4 @@
|
||||
.row_no {
|
||||
width: 35px !important;
|
||||
vertical-align: middle;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<templates>
|
||||
<t t-name="purchase.PurchaseListView" t-inherit="web.ListRenderer" t-inherit-mode="primary" owl="1">
|
||||
<xpath expr="//div[hasclass('o_list_renderer')]" position="before">
|
||||
<PurchaseDashBoard />
|
||||
</xpath>
|
||||
</t>
|
||||
</templates>
|
||||
11
jikimo_frontend/static/src/views/list_nums/list_nbCols.js
Normal file
@@ -0,0 +1,11 @@
|
||||
/** @odoo-module **/
|
||||
|
||||
import { patch } from "@web/core/utils/patch";
|
||||
import { ListRenderer } from "@web/views/list/list_renderer";
|
||||
|
||||
patch(ListRenderer.prototype, '/jikimo_frontend/static/src/views/list_nums/list_nbCols.js', {
|
||||
get nbCols() {
|
||||
const nbCols = this._super(...arguments);
|
||||
return nbCols + 1;
|
||||
}
|
||||
});
|
||||
74
jikimo_frontend/static/src/views/list_nums/list_nums.xml
Normal file
@@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- <odoo> -->
|
||||
<!-- <data> -->
|
||||
<!-- <templates xml:space="preserve"> -->
|
||||
|
||||
<t t-name="og.web.ListRenderer" t-inherit="web.ListRenderer" t-inherit-mode="extension">
|
||||
<xpath expr="//table/thead/tr/th[@t-if='hasSelectors']" position="before">
|
||||
<th class="row_no"><i class="fa fa-list-ol"/></th>
|
||||
</xpath>
|
||||
</t>
|
||||
|
||||
|
||||
|
||||
<!-- 暂存,同一份文件中有问题,拆分后正常工作 -->
|
||||
|
||||
<!-- <t t-name="og.web.ListRenderer.Rows" t-inherit="web.ListRenderer.Rows" t-inherit-mode="extension"> -->
|
||||
<!-- <xpath expr="//t[@t-key='record.id']/t[last()]" position="inside"> -->
|
||||
<!-- <t t-set="recordSeq" t-value="record_index + 1"/> -->
|
||||
<!-- <t t-set="recordOffset" t-value="list.offset"/> -->
|
||||
<!-- </xpath> -->
|
||||
<!-- </t> -->
|
||||
|
||||
|
||||
|
||||
<!-- <t t-name="og.web.ListRenderer.RecordRow" t-inherit="web.ListRenderer.RecordRow" t-inherit-mode="extension"> -->
|
||||
<!-- <xpath expr="//tr/td[1]" position="before"> -->
|
||||
<!-- <td> -->
|
||||
<!-- <t t-esc="222"/> -->
|
||||
<!-- </td> -->
|
||||
<!-- </xpath> -->
|
||||
<!-- </t> -->
|
||||
|
||||
<!-- <t t-set="recordlimit" t-value="list.limit"/> -->
|
||||
<!-- <t t-set="recordpage" t-value="list.page"/> -->
|
||||
<!-- <t t-set="recordpages" t-value="list.pages"/> -->
|
||||
<!-- <t t-set="recordcount" t-value="list.count"/> -->
|
||||
<!-- <t t-set="recordids" t-value="list.ids"/> -->
|
||||
<!-- <t t-set="recordid" t-value="record.id"/> -->
|
||||
<!-- <t t-set="recordindex" t-value="record.index"/> -->
|
||||
<!-- <t t-set="recorddata" t-value="record.data"/> -->
|
||||
<!-- <t t-set="recordstate" t-value="record.state"/> -->
|
||||
<!-- <t t-set="recordres_id" t-value="record.res_id"/> -->
|
||||
<!-- <t t-set="recordcontext" t-value="record.context"/> -->
|
||||
<!-- <t t-set="recordmodel" t-value="record.model"/> -->
|
||||
<!-- <t t-set="recordfields" t-value="record.fields"/> -->
|
||||
<!-- <t t-set="recordfields_view" t-value="record.fields_view"/> -->
|
||||
<!-- <t t-set="recordfields_keys" t-value="record.fields_keys"/> -->
|
||||
<!-- <t t-set="recordfields_get" t-value="record.fields_get"/> -->
|
||||
<!-- <t t-set="recordfields_raw" t-value="record.fields_raw"/> -->
|
||||
<!-- <t t-set="recordfields_view_get" t-value="record.fields_view_get"/> -->
|
||||
<!-- <t t-set="recordfields_view_raw" t-value="record.fields_view_raw"/> -->
|
||||
<!-- <t t-set="recordfields_view_fields" t-value="record.fields_view_fields"/> -->
|
||||
<!-- <t t-set="recordfields_view_arch" t-value="record.fields_view_arch"/> -->
|
||||
<!-- <t t-set="recordfields_view_type" t-value="record.fields_view_type"/> -->
|
||||
<!-- <t t-set="recordfields_view_inherit" t-value="record.fields_view_inherit"/> -->
|
||||
<!-- <t t-set="recordfields_view_parent" t-value="record.fields_view_parent"/> -->
|
||||
<!-- <t t-set="recordfields_view_id" t-value="record.fields_view_id"/> -->
|
||||
<!-- <t t-set="recordfields_view_name" t-value="record.fields_view_name"/> -->
|
||||
<!-- <t t-set="recordfields_view_mode" t-value="record.fields_view_mode"/> -->
|
||||
<!-- <t t-set="recordfields_view_type" t-value="record.fields_view_type"/> -->
|
||||
<!-- <t t-set="recordfields_view_arch" t-value="record.fields_view_arch"/> -->
|
||||
<!-- <t t-set="recordfields_view_inherit" t-value="record.fields_view_inherit"/> -->
|
||||
<!-- <t t-set="recordfields_view_parent" t-value="record.fields_view_parent"/> -->
|
||||
<!-- <t t-set="recordfields_view_id" t-value="record.fields_view_id"/> -->
|
||||
<!-- </templates> -->
|
||||
|
||||
<!-- <templates xml:space="preserve"> -->
|
||||
|
||||
<!-- </templates> -->
|
||||
<!-- </data> -->
|
||||
<!-- </odoo> -->
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<t t-name="og.web.ListRenderer.Rows" t-inherit="web.ListRenderer.Rows" t-inherit-mode="extension">
|
||||
<xpath expr="//t[@t-key='record.id']/t[last()]" position="inside">
|
||||
<t t-set="recordSeq" t-value="record_index + 1"/>
|
||||
<t t-set="recordOffset" t-value="list.offset"/>
|
||||
</xpath>
|
||||
</t>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<t t-name="og.web.ListRenderer.RecordRow" t-inherit="web.ListRenderer.RecordRow" t-inherit-mode="extension">
|
||||
<xpath expr="//tr/td[1]" position="before">
|
||||
<td>
|
||||
<t t-esc="recordOffset + recordSeq"/>
|
||||
</td>
|
||||
</xpath>
|
||||
</t>
|
||||
47
jikimo_frontend/static/src/views/list_nums/list_render.xml
Normal file
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<template>
|
||||
<t
|
||||
t-name="rowno_in_tree.ListRenderer"
|
||||
t-inherit="web.ListRenderer"
|
||||
t-inherit-mode="extension"
|
||||
owl="1"
|
||||
|
||||
>
|
||||
<xpath expr="//table/thead/tr/th[@t-if='hasSelectors']" position="before">
|
||||
<th class="row_no"><i class="fa fa-list-ol"/></th>
|
||||
</xpath>
|
||||
<xpath expr="//div/table/tfoot/tr/td" position="before">
|
||||
<td />
|
||||
</xpath>
|
||||
</t>
|
||||
|
||||
<t
|
||||
t-name="rowno_in_tree.add_number"
|
||||
t-inherit="web.ListRenderer.Rows"
|
||||
t-inherit-mode="extension"
|
||||
owl="1"
|
||||
>
|
||||
<xpath expr="//t[@t-foreach='list.records']" position="before">
|
||||
<t t-set="RowNumber" t-value="1" />
|
||||
</xpath>
|
||||
<xpath
|
||||
expr="//t[@t-call='{{ constructor.recordRowTemplate }}']"
|
||||
position="after"
|
||||
>
|
||||
<t t-set="RowNumber" t-value="RowNumber+1" />
|
||||
</xpath>
|
||||
</t>
|
||||
|
||||
<t
|
||||
t-name="rowno_in_tree.ListRenderer.RecordRowNumber"
|
||||
t-inherit="web.ListRenderer.RecordRow"
|
||||
t-inherit-mode="extension"
|
||||
owl="1"
|
||||
>
|
||||
<xpath expr="//td[@class='o_list_record_selector']" position="before">
|
||||
<td tabindex="-1">
|
||||
<span t-esc="RowNumber" />
|
||||
</td>
|
||||
</xpath>
|
||||
</t>
|
||||
</template>
|
||||
35
jikimo_frontend/views/bye_odoo.xml
Normal file
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- 修改页面头部图标及文字 -->
|
||||
<template id="favicon_icon" inherit_id="web.layout" name="Web layout">
|
||||
<!-- change the title with reliance partner -->
|
||||
<xpath expr="//head//title" position="before">
|
||||
<title t-esc="'JIKIMO'"/>
|
||||
</xpath>
|
||||
<!-- change the default favicon icon with -->
|
||||
<xpath expr="//head//link[@rel='shortcut icon']" position="replace">
|
||||
<link type="image/x-icon" rel="shortcut icon" href="/jikimo_frontend/static/src/img/jikimo-logo.ico"/>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<!-- hide 登录页面 powerd by odoo 及管理数据库 -->
|
||||
<template id="login_page_layout" inherit_id="web.login_layout" name="Login Page Layout">
|
||||
<xpath expr="//div[@class='card-body']//div[last()]" position="replace"></xpath>
|
||||
</template>
|
||||
|
||||
<!-- 隐藏odoo版本信息 -->
|
||||
<record id="jikimo_res_config_settings_view_form" model="ir.ui.view">
|
||||
<field name="name">jikimo.res.config.settings.view.form.inherit.base.setup</field>
|
||||
<field name="model">res.config.settings</field>
|
||||
<field name="inherit_id" ref="base_setup.res_config_settings_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[@id='about']" position="replace">
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
14
jikimo_hide_options/__init__.py
Normal file
@@ -0,0 +1,14 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from . import models
|
||||
from odoo import api, SUPERUSER_ID
|
||||
|
||||
|
||||
def uninstall_hook(cr, registry):
|
||||
# 使用cr来执行数据库操作
|
||||
with api.Environment.manage():
|
||||
env = api.Environment(cr, SUPERUSER_ID, {})
|
||||
# 执行数据清理操作
|
||||
access_rights = env['access.right'].search([])
|
||||
access_rights.unlink()
|
||||
followers = env['mail.followers'].search([('res_model', '=', 'access.right')])
|
||||
followers.unlink()
|
||||
32
jikimo_hide_options/__manifest__.py
Normal file
@@ -0,0 +1,32 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
{
|
||||
'name': '机企猫 隐藏项目',
|
||||
'version': '16.0.1.0.0',
|
||||
'category': 'Extra Tools, Productivity',
|
||||
'summary': """ Can hide options from user """,
|
||||
'description': """ By using this module we can hide the options like create,
|
||||
delete,export,and archive/un archive in the model which we want. Here we
|
||||
are also able to select the user groups except Administrator which we want
|
||||
to apply the above hiding functionality """,
|
||||
'author': '机企猫-MGW',
|
||||
'company': '机企猫',
|
||||
'depends': ['base_setup', 'mail'],
|
||||
'data': [
|
||||
'security/security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'views/model_access_rights_views.xml',
|
||||
],
|
||||
'assets': {
|
||||
'web.assets_backend': [
|
||||
'jikimo_hide_options/static/src/js/form_controller.js',
|
||||
'jikimo_hide_options/static/src/js/list_controller.js',
|
||||
'jikimo_hide_options/static/src/js/kanban_controller.js'
|
||||
]
|
||||
},
|
||||
'images': ['static/description/banner.jpg'],
|
||||
'license': 'LGPL-3',
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
'application': False,
|
||||
'uninstall_hook': 'uninstall_hook',
|
||||
}
|
||||
4
jikimo_hide_options/models/__init__.py
Normal file
@@ -0,0 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from . import model_access_rights
|
||||
from . import models
|
||||
|
||||
107
jikimo_hide_options/models/model_access_rights.py
Normal file
@@ -0,0 +1,107 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import api, fields, models, _
|
||||
|
||||
|
||||
class ModelAccessRights(models.Model):
|
||||
"""This class is used to detect, which all options want to hide from the
|
||||
specified group and model"""
|
||||
_name = 'access.right'
|
||||
_inherit = 'mail.thread'
|
||||
_description = 'Manage Modules Access Control'
|
||||
_rec_name = 'model_id'
|
||||
|
||||
model_id = fields.Many2one('ir.model', ondelete='cascade', required=True,
|
||||
help="select the model")
|
||||
groups_id = fields.Many2one('res.groups', required=True,
|
||||
help="select the group")
|
||||
is_delete = fields.Boolean(string="Delete", help="hide the delete option")
|
||||
is_export = fields.Boolean(string="Export",
|
||||
help="hide the 'Export All'"
|
||||
" option from list view")
|
||||
is_create_or_update = fields.Boolean(string="Create/Update",
|
||||
help="hide the create option from list"
|
||||
" as well as form view")
|
||||
is_archive = fields.Boolean(string="Archive/UnArchive",
|
||||
help="hide the archive option")
|
||||
|
||||
@api.model
|
||||
def hide_buttons(self):
|
||||
"""This function contains a query that detects which all options want
|
||||
to hide, in which model,and to which user groups"""
|
||||
access_right_rec = self.sudo().search_read([], ['model_id', 'is_delete',
|
||||
'is_export',
|
||||
'is_create_or_update',
|
||||
'is_archive',
|
||||
'groups_id'])
|
||||
for dic in access_right_rec:
|
||||
model = self.env['ir.model'].sudo().browse(dic['model_id'][0]).model
|
||||
group_name = self.env['ir.model.data'].sudo().search([
|
||||
('model', '=', 'res.groups'),
|
||||
('res_id', '=', dic['groups_id'][0])
|
||||
]).name
|
||||
|
||||
module_name = self.env['ir.model.data'].sudo().search([
|
||||
('model', '=', 'res.groups'),
|
||||
('res_id', '=', dic['groups_id'][0])
|
||||
]).module
|
||||
dic.update({
|
||||
'model': model,
|
||||
'group_name': group_name,
|
||||
'module': module_name
|
||||
})
|
||||
return access_right_rec
|
||||
# @api.model
|
||||
# def hide_buttons(self):
|
||||
# """This function contains a query that detects which all options want
|
||||
# to hide, in which model,and to which user groups"""
|
||||
# access_right_rec = self.sudo().search_read([], ['model_id', 'is_delete',
|
||||
# 'is_export',
|
||||
# 'is_create_or_update',
|
||||
# 'is_archive',
|
||||
# 'groups_id'])
|
||||
# for dic in access_right_rec:
|
||||
# model = self.env['ir.model'].sudo().browse(dic['model_id']).model
|
||||
# group_name = self.env['ir.model.data'].sudo().search([
|
||||
# ('model', '=', 'res.groups'),
|
||||
# ('res_id', '=', dic['groups_id'])
|
||||
# ]).name
|
||||
# module_name = self.env['ir.model.data'].sudo().search([
|
||||
# ('model', '=', 'res.groups'),
|
||||
# ('res_id', '=', dic['groups_id'])
|
||||
# ]).module
|
||||
# dic.update({
|
||||
# 'model': model,
|
||||
# 'group_name': group_name,
|
||||
# 'module': module_name
|
||||
# })
|
||||
# return access_right_rec
|
||||
|
||||
|
||||
# class AccessRightCleanup(models.Model):
|
||||
# _name = 'access.right.cleanup' # 定义一个新的模型名
|
||||
# _description = 'Access Right Cleanup'
|
||||
|
||||
|
||||
|
||||
# @api.model
|
||||
# def _module_uninstall(self):
|
||||
# """在模块卸载时执行清理操作"""
|
||||
# super(AccessRightCleanup, self)._module_uninstall()
|
||||
# # 这里执行你的清理逻辑
|
||||
#
|
||||
# # 获取access.right模型的所有记录
|
||||
# access_rights = self.env['access.right'].search([])
|
||||
# for access_right in access_rights:
|
||||
# # 删除access.right模型的所有记录
|
||||
# access_right.unlink()
|
||||
#
|
||||
# # 查找所有关联到access.right模型的关注者记录
|
||||
# followers = self.env['mail.followers'].search([('res_model', '=', 'access.right')])
|
||||
# for follower in followers:
|
||||
# # 删除关注者记录
|
||||
# follower.unlink()
|
||||
#
|
||||
# # # 示例:删除自定义数据表(确保先检查外键约束等)
|
||||
# # self.env.cr.execute('DROP TABLE IF EXISTS access_right CASCADE;')
|
||||
#
|
||||
# # 其他清理工作...
|
||||
353
jikimo_hide_options/models/models.py
Normal file
@@ -0,0 +1,353 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from collections import defaultdict
|
||||
from operator import attrgetter
|
||||
from odoo import api, _
|
||||
from odoo.exceptions import UserError
|
||||
from odoo.models import BaseModel, _unlink, LOG_ACCESS_COLUMNS, \
|
||||
INSERT_BATCH_SIZE, SQL_DEFAULT
|
||||
# from odoo.tools import OrderedSet, split_every, attrgetter, clean_context
|
||||
from odoo.tools import OrderedSet, split_every, clean_context
|
||||
|
||||
|
||||
@api.model
|
||||
def _create(self, data_list):
|
||||
""" Create records from the stored field values in ``data_list``. """
|
||||
assert data_list
|
||||
cr = self.env.cr
|
||||
|
||||
# insert rows in batches of maximum INSERT_BATCH_SIZE
|
||||
ids = [] # ids of created records
|
||||
other_fields = OrderedSet() # non-column fields
|
||||
|
||||
for data_sublist in split_every(INSERT_BATCH_SIZE, data_list):
|
||||
stored_list = [data['stored'] for data in data_sublist]
|
||||
fnames = sorted({name for stored in stored_list for name in stored})
|
||||
|
||||
columns = []
|
||||
rows = [[] for _ in stored_list]
|
||||
for fname in fnames:
|
||||
field = self._fields[fname]
|
||||
if field.column_type:
|
||||
columns.append(fname)
|
||||
for stored, row in zip(stored_list, rows):
|
||||
if fname in stored:
|
||||
colval = field.convert_to_column(stored[fname], self,
|
||||
stored)
|
||||
if field.translate is True and colval:
|
||||
if 'en_US' not in colval.adapted:
|
||||
colval.adapted['en_US'] = next(
|
||||
iter(colval.adapted.values()))
|
||||
row.append(colval)
|
||||
else:
|
||||
row.append(SQL_DEFAULT)
|
||||
else:
|
||||
other_fields.add(field)
|
||||
|
||||
if field.type == 'properties':
|
||||
# force calling fields.create for properties field because
|
||||
# we might want to update the parent definition
|
||||
other_fields.add(field)
|
||||
|
||||
if not columns:
|
||||
# manage the case where we create empty records
|
||||
columns = ['id']
|
||||
for row in rows:
|
||||
row.append(SQL_DEFAULT)
|
||||
|
||||
header = ", ".join(f'"{column}"' for column in columns)
|
||||
template = ", ".join("%s" for _ in rows)
|
||||
cr.execute(
|
||||
f'INSERT INTO "{self._table}" ({header}) VALUES {template} RETURNING "id"',
|
||||
[tuple(row) for row in rows],
|
||||
)
|
||||
ids.extend(id_ for id_, in cr.fetchall())
|
||||
|
||||
# put the new records in cache, and update inverse fields, for many2one
|
||||
#
|
||||
# cachetoclear is an optimization to avoid modified()'s cost until other_fields are processed
|
||||
cachetoclear = []
|
||||
records = self.browse(ids)
|
||||
inverses_update = defaultdict(list) # {(field, value): ids}
|
||||
common_set_vals = set(
|
||||
LOG_ACCESS_COLUMNS + [self.CONCURRENCY_CHECK_FIELD, 'id',
|
||||
'parent_path'])
|
||||
for data, record in zip(data_list, records):
|
||||
data['record'] = record
|
||||
# DLE P104: test_inherit.py, test_50_search_one2many
|
||||
vals = dict(
|
||||
{k: v for d in data['inherited'].values() for k, v in d.items()},
|
||||
**data['stored'])
|
||||
set_vals = common_set_vals.union(vals)
|
||||
for field in self._fields.values():
|
||||
if field.type in ('one2many', 'many2many'):
|
||||
self.env.cache.set(record, field, ())
|
||||
elif field.related and not field.column_type:
|
||||
self.env.cache.set(record, field,
|
||||
field.convert_to_cache(None, record))
|
||||
# DLE P123: `test_adv_activity`, `test_message_assignation_inbox`, `test_message_log`, `test_create_mail_simple`, ...
|
||||
# Set `mail.message.parent_id` to False in cache so it doesn't do the useless SELECT when computing the modified of `child_ids`
|
||||
# in other words, if `parent_id` is not set, no other message `child_ids` are impacted.
|
||||
# + avoid the fetch of fields which are False. e.g. if a boolean field is not passed in vals and as no default set in the field attributes,
|
||||
# then we know it can be set to False in the cache in the case of a create.
|
||||
elif field.name not in set_vals and not field.compute:
|
||||
self.env.cache.set(record, field,
|
||||
field.convert_to_cache(None, record))
|
||||
for fname, value in vals.items():
|
||||
field = self._fields[fname]
|
||||
if field.type in ('one2many', 'many2many'):
|
||||
cachetoclear.append((record, field))
|
||||
else:
|
||||
cache_value = field.convert_to_cache(value, record)
|
||||
self.env.cache.set(record, field, cache_value)
|
||||
if field.type in ('many2one', 'many2one_reference') and \
|
||||
self.pool.field_inverses[field]:
|
||||
inverses_update[(field, cache_value)].append(record.id)
|
||||
|
||||
for (field, value), record_ids in inverses_update.items():
|
||||
field._update_inverses(self.browse(record_ids), value)
|
||||
|
||||
# update parent_path
|
||||
records._parent_store_create()
|
||||
|
||||
# protect fields being written against recomputation
|
||||
protected = [(data['protected'], data['record']) for data in data_list]
|
||||
with self.env.protecting(protected):
|
||||
# mark computed fields as todo
|
||||
records.modified(self._fields, create=True)
|
||||
|
||||
if other_fields:
|
||||
# discard default values from context for other fields
|
||||
others = records.with_context(clean_context(self._context))
|
||||
for field in sorted(other_fields, key=attrgetter('_sequence')):
|
||||
field.create([
|
||||
(other, data['stored'][field.name])
|
||||
for other, data in zip(others, data_list)
|
||||
if field.name in data['stored']
|
||||
])
|
||||
|
||||
# mark fields to recompute
|
||||
records.modified([field.name for field in other_fields],
|
||||
create=True)
|
||||
|
||||
# if value in cache has not been updated by other_fields, remove it
|
||||
for record, field in cachetoclear:
|
||||
if self.env.cache.contains(record,
|
||||
field) and not self.env.cache.get(
|
||||
record, field):
|
||||
self.env.cache.remove(record, field)
|
||||
|
||||
# check Python constraints for stored fields
|
||||
records._validate_fields(
|
||||
name for data in data_list for name in data['stored'])
|
||||
records.check_access_rule('create')
|
||||
# This is used to restrict the access right to create a record
|
||||
current_model_id = self.env['ir.model'].sudo().search(
|
||||
[('model', '=', self._name)]).id
|
||||
# access_right_rec = self.env['access.right'].sudo().search_read(
|
||||
# [('model_id', '=', current_model_id)],
|
||||
# ['model_id', 'is_create_or_update',
|
||||
# 'groups_id'])
|
||||
# if access_right_rec and not self.env.is_admin():
|
||||
# for rec in access_right_rec:
|
||||
# group_name = self.env['ir.model.data'].sudo().search([
|
||||
# ('model', '=', 'res.groups'),
|
||||
# ('res_id', '=', rec['groups_id'][0])
|
||||
# ]).name
|
||||
# module_name = self.env['ir.model.data'].sudo().search([
|
||||
# ('model', '=', 'res.groups'),
|
||||
# ('res_id', '=', rec['groups_id'][0])
|
||||
# ]).module
|
||||
# group = module_name + "." + group_name
|
||||
# if self.env.user.has_group(group):
|
||||
# if rec['is_create_or_update']:
|
||||
# raise UserError('You are restricted from performing this'
|
||||
# ' operation. Please contact the'
|
||||
# ' administrator.')
|
||||
# 检查 'access.right' 模型是否存在于环境中
|
||||
if 'access.right' in self.env:
|
||||
access_right_rec = self.env['access.right'].sudo().search_read(
|
||||
[('model_id', '=', current_model_id)],
|
||||
['model_id', 'is_create_or_update', 'groups_id']
|
||||
)
|
||||
|
||||
# 如果找到相关记录,并且当前用户不是管理员
|
||||
if access_right_rec and not self.env.is_admin():
|
||||
for rec in access_right_rec:
|
||||
# 获取与权限相关的用户组信息
|
||||
group_data = self.env['ir.model.data'].sudo().search_read(
|
||||
[('model', '=', 'res.groups'), ('res_id', '=', rec['groups_id'][0])],
|
||||
['name', 'module']
|
||||
)
|
||||
|
||||
# 如果找到了用户组数据
|
||||
if group_data:
|
||||
group_name = group_data[0]['name']
|
||||
module_name = group_data[0]['module']
|
||||
group_xml_id = f"{module_name}.{group_name}"
|
||||
|
||||
# 检查当前用户是否属于该组
|
||||
if self.env.user.has_group(group_xml_id):
|
||||
# 如果该用户组被限制创建或更新操作
|
||||
if rec['is_create_or_update']:
|
||||
raise UserError(
|
||||
_("You are restricted from performing this operation. Please contact the administrator."))
|
||||
else:
|
||||
# 如果 'access.right' 模型不存在,可以在这里定义备选逻辑
|
||||
# 例如,记录日志、发送通知或者简单地跳过这部分逻辑
|
||||
pass
|
||||
|
||||
return records
|
||||
|
||||
|
||||
@api.model
|
||||
def unlink(self):
|
||||
""" unlink()
|
||||
|
||||
Deletes the records in ``self``.
|
||||
|
||||
:raise AccessError: if the user is not allowed to delete all the given records
|
||||
:raise UserError: if the record is default property for other records
|
||||
"""
|
||||
if not self:
|
||||
return True
|
||||
|
||||
self.check_access_rights('unlink')
|
||||
self.check_access_rule('unlink')
|
||||
|
||||
from odoo.addons.base.models.ir_model import MODULE_UNINSTALL_FLAG
|
||||
for func in self._ondelete_methods:
|
||||
# func._ondelete is True if it should be called during uninstallation
|
||||
if func._ondelete or not self._context.get(MODULE_UNINSTALL_FLAG):
|
||||
func(self)
|
||||
|
||||
# TOFIX: this avoids an infinite loop when trying to recompute a
|
||||
# field, which triggers the recomputation of another field using the
|
||||
# same compute function, which then triggers again the computation
|
||||
# of those two fields
|
||||
for field in self._fields.values():
|
||||
self.env.remove_to_compute(field, self)
|
||||
|
||||
self.env.flush_all()
|
||||
|
||||
cr = self._cr
|
||||
Data = self.env['ir.model.data'].sudo().with_context({})
|
||||
Defaults = self.env['ir.default'].sudo()
|
||||
Property = self.env['ir.property'].sudo()
|
||||
Attachment = self.env['ir.attachment'].sudo()
|
||||
ir_property_unlink = Property
|
||||
ir_model_data_unlink = Data
|
||||
ir_attachment_unlink = Attachment
|
||||
|
||||
# mark fields that depend on 'self' to recompute them after 'self' has
|
||||
# been deleted (like updating a sum of lines after deleting one line)
|
||||
with self.env.protecting(self._fields.values(), self):
|
||||
self.modified(self._fields, before=True)
|
||||
for sub_ids in cr.split_for_in_conditions(self.ids):
|
||||
records = self.browse(sub_ids)
|
||||
|
||||
# Check if the records are used as default properties.
|
||||
refs = [f'{self._name},{id_}' for id_ in sub_ids]
|
||||
if Property.search(
|
||||
[('res_id', '=', False), ('value_reference', 'in', refs)],
|
||||
limit=1):
|
||||
raise UserError(
|
||||
_('Unable to delete this document because it is used as a default property'))
|
||||
|
||||
# Delete the records' properties.
|
||||
ir_property_unlink |= Property.search([('res_id', 'in', refs)])
|
||||
|
||||
query = f'DELETE FROM "{self._table}" WHERE id IN %s'
|
||||
cr.execute(query, (sub_ids,))
|
||||
|
||||
# Removing the ir_model_data reference if the record being deleted
|
||||
# is a record created by xml/csv file, as these are not connected
|
||||
# with real database foreign keys, and would be dangling references.
|
||||
#
|
||||
# Note: the following steps are performed as superuser to avoid
|
||||
# access rights restrictions, and with no context to avoid possible
|
||||
# side-effects during admin calls.
|
||||
data = Data.search(
|
||||
[('model', '=', self._name), ('res_id', 'in', sub_ids)])
|
||||
ir_model_data_unlink |= data
|
||||
|
||||
# For the same reason, remove the defaults having some of the
|
||||
# records as value
|
||||
Defaults.discard_records(records)
|
||||
|
||||
# For the same reason, remove the relevant records in ir_attachment
|
||||
# (the search is performed with sql as the search method of
|
||||
# ir_attachment is overridden to hide attachments of deleted
|
||||
# records)
|
||||
query = 'SELECT id FROM ir_attachment WHERE res_model=%s AND res_id IN %s'
|
||||
cr.execute(query, (self._name, sub_ids))
|
||||
ir_attachment_unlink |= Attachment.browse(
|
||||
row[0] for row in cr.fetchall())
|
||||
|
||||
# invalidate the *whole* cache, since the orm does not handle all
|
||||
# changes made in the database, like cascading delete!
|
||||
self.env.invalidate_all(flush=False)
|
||||
if ir_property_unlink:
|
||||
ir_property_unlink.unlink()
|
||||
if ir_model_data_unlink:
|
||||
ir_model_data_unlink.unlink()
|
||||
if ir_attachment_unlink:
|
||||
ir_attachment_unlink.unlink()
|
||||
# DLE P93: flush after the unlink, for recompute fields depending on
|
||||
# the modified of the unlink
|
||||
self.env.flush_all()
|
||||
# auditing: deletions are infrequent and leave no trace in the database
|
||||
_unlink.info('User #%s deleted %s records with IDs: %r', self._uid,
|
||||
self._name, self.ids)
|
||||
# This is used to restrict the access right to unlink a record
|
||||
current_model_id = self.env['ir.model'].sudo().search(
|
||||
[('model', '=', self._name)]).id
|
||||
# access_right_rec = self.env['access.right'].sudo().search_read(
|
||||
# [('model_id', '=', current_model_id)], ['model_id', 'is_delete',
|
||||
# 'groups_id'])
|
||||
# if access_right_rec and not self.env.is_admin():
|
||||
# for rec in access_right_rec:
|
||||
# group_name = self.env['ir.model.data'].sudo().search([
|
||||
# ('model', '=', 'res.groups'),
|
||||
# ('res_id', '=', rec['groups_id'][0])
|
||||
# ]).name
|
||||
# module_name = self.env['ir.model.data'].sudo().search([
|
||||
# ('model', '=', 'res.groups'),
|
||||
# ('res_id', '=', rec['groups_id'][0])
|
||||
# ]).module
|
||||
# group = module_name + "." + group_name
|
||||
# if self.env.user.has_group(group):
|
||||
# if rec['is_delete']:
|
||||
# raise UserError(_('You are restricted from performing this'
|
||||
# ' operation. Please contact the'
|
||||
# ' administrator.'))
|
||||
# 检查 'access.right' 模型是否存在于环境中
|
||||
if 'access.right' in self.env:
|
||||
# current_model_id = self.env['ir.model'].sudo().search([('model', '=', self._name)]).id
|
||||
access_right_rec = self.env['access.right'].sudo().search_read(
|
||||
[('model_id', '=', current_model_id)], ['model_id', 'is_delete', 'groups_id']
|
||||
)
|
||||
|
||||
if access_right_rec and not self.env.is_admin():
|
||||
for rec in access_right_rec:
|
||||
group_data = self.env['ir.model.data'].sudo().search_read(
|
||||
[('model', '=', 'res.groups'), ('res_id', '=', rec['groups_id'][0])],
|
||||
['name', 'module']
|
||||
)
|
||||
|
||||
if group_data:
|
||||
group_name = group_data[0]['name']
|
||||
module_name = group_data[0]['module']
|
||||
group_xml_id = f"{module_name}.{group_name}"
|
||||
|
||||
if self.env.user.has_group(group_xml_id) and rec['is_delete']:
|
||||
raise UserError(
|
||||
_('You are restricted from performing this operation. Please contact the administrator.'))
|
||||
else:
|
||||
# 如果 'access.right' 模型不存在,可以在这里定义备选逻辑
|
||||
pass
|
||||
|
||||
return True
|
||||
|
||||
|
||||
BaseModel._create = _create
|
||||
BaseModel.unlink = unlink
|
||||
2
jikimo_hide_options/security/ir.model.access.csv
Normal file
@@ -0,0 +1,2 @@
|
||||
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_access_right,access.access.right,model_access_right,jikimo_hide_options.model_access_rights_groups_configure_model_access,1,1,1,1
|
||||
|
9
jikimo_hide_options/security/security.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Add a group named Configure Model Access in res.groups-->
|
||||
<odoo>
|
||||
<record id="model_access_rights_groups_configure_model_access" model="res.groups">
|
||||
<field name="name">配置隐藏项目</field>
|
||||
<field name="category_id" ref="base.module_category_usability"/>
|
||||
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
||||
</record>
|
||||
</odoo>
|
||||
BIN
jikimo_hide_options/static/description/assets/icons/check.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
jikimo_hide_options/static/description/assets/icons/chevron.png
Normal file
|
After Width: | Height: | Size: 310 B |
BIN
jikimo_hide_options/static/description/assets/icons/cogs.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 576 B |
|
After Width: | Height: | Size: 733 B |
|
After Width: | Height: | Size: 911 B |
BIN
jikimo_hide_options/static/description/assets/icons/license.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
jikimo_hide_options/static/description/assets/icons/lifebuoy.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 673 B |
|
After Width: | Height: | Size: 878 B |
BIN
jikimo_hide_options/static/description/assets/icons/puzzle.png
Normal file
|
After Width: | Height: | Size: 653 B |
|
After Width: | Height: | Size: 905 B |
|
After Width: | Height: | Size: 839 B |
|
After Width: | Height: | Size: 427 B |
BIN
jikimo_hide_options/static/description/assets/icons/training.png
Normal file
|
After Width: | Height: | Size: 627 B |
BIN
jikimo_hide_options/static/description/assets/icons/update.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
jikimo_hide_options/static/description/assets/icons/user.png
Normal file
|
After Width: | Height: | Size: 988 B |
BIN
jikimo_hide_options/static/description/assets/icons/wrench.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
BIN
jikimo_hide_options/static/description/assets/misc/check-box.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
jikimo_hide_options/static/description/assets/misc/compass.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
jikimo_hide_options/static/description/assets/misc/corporate.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
BIN
jikimo_hide_options/static/description/assets/misc/features.png
Normal file
|
After Width: | Height: | Size: 589 B |
BIN
jikimo_hide_options/static/description/assets/misc/logo.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
jikimo_hide_options/static/description/assets/misc/pictures.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
jikimo_hide_options/static/description/assets/misc/pie-chart.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 967 B |
BIN
jikimo_hide_options/static/description/assets/misc/star.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
jikimo_hide_options/static/description/assets/misc/support.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
jikimo_hide_options/static/description/assets/misc/whatsapp.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
jikimo_hide_options/static/description/assets/modules/1.png
Normal file
|
After Width: | Height: | Size: 228 KiB |
BIN
jikimo_hide_options/static/description/assets/modules/l2.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
jikimo_hide_options/static/description/assets/modules/l3.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
jikimo_hide_options/static/description/assets/modules/l4.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
jikimo_hide_options/static/description/assets/modules/l5.png
Normal file
|
After Width: | Height: | Size: 88 KiB |
BIN
jikimo_hide_options/static/description/assets/modules/l6.png
Normal file
|
After Width: | Height: | Size: 237 KiB |
|
After Width: | Height: | Size: 138 KiB |
|
After Width: | Height: | Size: 96 KiB |
|
After Width: | Height: | Size: 95 KiB |
|
After Width: | Height: | Size: 87 KiB |
|
After Width: | Height: | Size: 219 KiB |
|
After Width: | Height: | Size: 127 KiB |
|
After Width: | Height: | Size: 96 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 94 KiB |
BIN
jikimo_hide_options/static/description/banner.jpg
Normal file
|
After Width: | Height: | Size: 124 KiB |
BIN
jikimo_hide_options/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
596
jikimo_hide_options/static/description/index.html
Normal file
@@ -0,0 +1,596 @@
|
||||
<div style="background-color: #714B67; height: 810px; width: 100%; padding: 15px; position: relative;">
|
||||
<!-- TITLE BAR -->
|
||||
<div class="d-flex align-items-center justify-content-between"
|
||||
style="border-bottom: 1px solid #875A7B; padding: 15px; display: flex; justify-content: space-between; align-items: center;">
|
||||
<img src="assets/misc/cybrosys-logo.png" width="42" height="42" style="width: 42px; height: 42px;" />
|
||||
<div>
|
||||
<div
|
||||
style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
|
||||
class="mr-2">
|
||||
<i class="fa fa-check mr-1"></i>Community
|
||||
</div>
|
||||
<div
|
||||
style="color: #875A7B; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
|
||||
class="mr-2">
|
||||
<i class="fa fa-check mr-1"></i>Enterprise
|
||||
</div>
|
||||
<div
|
||||
style="color: #017E84; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
|
||||
class="mr-2">
|
||||
<i class="fa fa-check mr-1"></i>Odoo.sh
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END OF TITLE BAR -->
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-12">
|
||||
<!-- APP HERO -->
|
||||
<h1 style="color: #FFFFFF; font-weight: bolder; font-size: 50px; text-align: center; margin-top: 50px;">
|
||||
Hide Create|Delete|Archive|Export Options - Model Wise</h1>
|
||||
<p style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;">Hide Create, Delete, Archive, Export Options in Models</p>
|
||||
<!-- END OF APP HERO -->
|
||||
<img src="assets/screenshots/hero.gif" class="img-responsive"
|
||||
style="width: 100%; margin-left: auto; margin-right: auto;" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<!-- NAVIGATION SECTION -->
|
||||
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px; margin-top: 300px;">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/compass.png" />
|
||||
</div>
|
||||
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Explore This
|
||||
Module</h2>
|
||||
</div>
|
||||
<div class="row my-4" style="font-family: 'Montserrat', sans-serif;">
|
||||
<div class="col-sm-12 col-md-6 my-3">
|
||||
<a href="#overview">
|
||||
<div class="d-flex justify-content-between align-items-center"
|
||||
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
|
||||
<div>
|
||||
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Overview</span>
|
||||
<span
|
||||
style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">Learn
|
||||
more about this
|
||||
module</span>
|
||||
</div>
|
||||
<img src="assets/misc/right-arrow.png" width="36" height="36" />
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-6 my-3">
|
||||
<a href="#features">
|
||||
<div class="d-flex justify-content-between align-items-center"
|
||||
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
|
||||
<div>
|
||||
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Features</span>
|
||||
<span
|
||||
style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
|
||||
features of this
|
||||
module</span>
|
||||
</div>
|
||||
<img src="assets/misc/right-arrow.png" width="36" height="36" />
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-6 my-3">
|
||||
<a href="#screenshots">
|
||||
<div class="d-flex justify-content-between align-items-center"
|
||||
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
|
||||
<div>
|
||||
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Screenshots</span>
|
||||
<span
|
||||
style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
|
||||
screenshots of this
|
||||
module</span>
|
||||
</div>
|
||||
<img src="assets/misc/right-arrow.png" width="36" height="36" />
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END OF NAVIGATION SECTION -->
|
||||
|
||||
<!-- OVERVIEW SECTION -->
|
||||
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="overview">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/pie-chart.png" />
|
||||
</div>
|
||||
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Overview
|
||||
</h2>
|
||||
</div>
|
||||
<div class="row" style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
|
||||
<div class="col-sm-12 py-4">
|
||||
By using this module we can hide the options like create,delete,export,and archive/un archive in the model
|
||||
which we want. Here we are also able to select the user groups except Administrator which we want to apply the
|
||||
above hiding functionality </div>
|
||||
</div>
|
||||
<!-- END OF OVERVIEW SECTION -->
|
||||
|
||||
<!-- FEATURES SECTION -->
|
||||
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="features">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/features.png" />
|
||||
</div>
|
||||
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Features
|
||||
</h2>
|
||||
</div>
|
||||
<div class="row" style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
|
||||
<div class="col-sm-12 col-md-6">
|
||||
<div class="d-flex align-items-center" style="margin-top: 40px; margin-bottom: 40px">
|
||||
<img src="assets/misc/check-box.png" class="mr-2" />
|
||||
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> Easily hide the options like Create,Delete,Export and Archive/UnArchive</span>
|
||||
</div>
|
||||
<div class="d-flex align-items-center" style="margin-top: 30px; margin-bottom: 30px">
|
||||
<img src="assets/misc/check-box.png" class="mr-2" />
|
||||
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Can hide the options for specific model</span>
|
||||
</div>
|
||||
<div class="d-flex align-items-center" style="margin-top: 30px; margin-bottom: 30px">
|
||||
<img src="assets/misc/check-box.png" class="mr-2" />
|
||||
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Can hide the options for specific user group</span>
|
||||
</div>
|
||||
<div class="d-flex align-items-center" style="margin-top: 30px; margin-bottom: 30px">
|
||||
<img src="assets/misc/check-box.png" class="mr-2" />
|
||||
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">No additional configuration needed</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END OF FEATURES SECTION -->
|
||||
|
||||
<!-- SCREENSHOTS SECTION -->
|
||||
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="screenshots">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/pictures.png" />
|
||||
</div>
|
||||
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Screenshots
|
||||
</h2>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
|
||||
<div style="display: block; margin: 30px auto;">
|
||||
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> Go to Settings > Users and there you can see the Configure Model Access, by enabling that
|
||||
option and refresh the page, you can see a new menu named 'Restrict Access Rights'</h3>
|
||||
<img src="assets/screenshots/model_access_right_01.png" class="img-thumbnail">
|
||||
</div>
|
||||
|
||||
<div style="display: block; margin: 30px auto;">
|
||||
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> User in the Purchase module</h3>
|
||||
<img src="assets/screenshots/model_access_right_02.png" class="img-thumbnail">
|
||||
</div>
|
||||
|
||||
<div style="display: block; margin: 30px auto;">
|
||||
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Select the Model, Groups and the options which we want to hide</h3>
|
||||
<img src="assets/screenshots/model_access_right_03.png" class="img-thumbnail">
|
||||
</div>
|
||||
<div style="display: block; margin: 30px auto;">
|
||||
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> We can see Create option is hidden in purchase.order to those who are User
|
||||
in purchase module</h3>
|
||||
<img src="assets/screenshots/model_access_right_04.png" class="img-thumbnail">
|
||||
</div>
|
||||
|
||||
<div style="display: block; margin: 30px auto;">
|
||||
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">User in Project module</h3>
|
||||
<img src="assets/screenshots/model_access_right_05.png" class="img-thumbnail">
|
||||
</div>
|
||||
<div style="display: block; margin: 30px auto;">
|
||||
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> By default, we can see Export and Archive/UnArchive options</h3>
|
||||
<img src="assets/screenshots/model_access_right_06.png" class="img-thumbnail">
|
||||
</div>
|
||||
<div style="display: block; margin: 30px auto;">
|
||||
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> Select the options which we want to hide</h3>
|
||||
<img src="assets/screenshots/model_access_right_07.png" class="img-thumbnail">
|
||||
</div>
|
||||
<div style="display: block; margin: 30px auto;">
|
||||
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> Export and Archive/UnArchive functionality are hidden</h3>
|
||||
<img src="assets/screenshots/model_access_right_08.png" class="img-thumbnail">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END OF SCREENSHOTS SECTION -->
|
||||
<!-- RELATED PRODUCTS -->
|
||||
<div class="d-flex align-items-center"
|
||||
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/categories.png"/>
|
||||
</div>
|
||||
<h2 class="mt-2"
|
||||
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
|
||||
Related
|
||||
Products
|
||||
</h2>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div id="demo1" class="row carousel slide" data-ride="carousel">
|
||||
<!-- The slideshow -->
|
||||
<div class="carousel-inner" style="padding: 30px;">
|
||||
<div class="carousel-item" style="min-height: 198.656px;">
|
||||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
|
||||
style="float:left">
|
||||
<a href="https://apps.odoo.com/apps/modules/16.0/openai_odoo_base/"
|
||||
target="_blank">
|
||||
<div style="border-radius:10px">
|
||||
<img class="img img-responsive center-block"
|
||||
style="border-radius: 0px;"
|
||||
src="assets/modules/1.png">
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
|
||||
style="float:left">
|
||||
<a href="https://apps.odoo.com/apps/modules/16.0/woo_commerce/"
|
||||
target="_blank">
|
||||
<div style="border-radius:10px">
|
||||
<img class="img img-responsive center-block"
|
||||
style="border-radius: 0px;"
|
||||
src="assets/modules/l2.png">
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
|
||||
style="float:left">
|
||||
<a href="https://apps.odoo.com/apps/modules/16.0/shopify_odoo_connector/"
|
||||
target="_blank">
|
||||
<div style="border-radius:10px">
|
||||
<img class="img img-responsive center-block"
|
||||
style="border-radius: 0px;"
|
||||
src="assets/modules/l3.png">
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="carousel-item active"
|
||||
style="min-height: 198.656px;">
|
||||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
|
||||
style="float:left">
|
||||
<a href="https://apps.odoo.com/apps/modules/16.0/hr_zk_attendance/"
|
||||
target="_blank">
|
||||
<div style="border-radius:10px">
|
||||
<img class="img img-responsive center-block"
|
||||
style="border-radius: 0px;"
|
||||
src="assets/modules/l4.png">
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
|
||||
style="float:left">
|
||||
<a href="https://apps.odoo.com/apps/modules/16.0/whatsapp_redirect/"
|
||||
target="_blank">
|
||||
<div style="border-radius:10px">
|
||||
<img class="img img-responsive center-block"
|
||||
style="border-radius: 0px;"
|
||||
src="assets/modules/l5.png">
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
|
||||
style="float:left">
|
||||
<a href="https://apps.odoo.com/apps/modules/16.0/openai_website_product_media/"
|
||||
target="_blank">
|
||||
<div style="border-radius:10px">
|
||||
<img class="img img-responsive center-block"
|
||||
style="border-radius: 0px;"
|
||||
src="assets/modules/l6.png">
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Left and right controls -->
|
||||
<a class="carousel-control-prev" href="#demo1" data-slide="prev"
|
||||
style="width:35px; color:#000"> <span
|
||||
class="carousel-control-prev-icon"><i
|
||||
class="fa fa-chevron-left"
|
||||
style="font-size:24px"></i></span>
|
||||
</a> <a class="carousel-control-next" href="#demo1"
|
||||
data-slide="next" style="width:35px; color:#000">
|
||||
<span class="carousel-control-next-icon"><i
|
||||
class="fa fa-chevron-right"
|
||||
style="font-size:24px"></i></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END OF RELATED PRODUCTS -->
|
||||
|
||||
<!-- OUR SERVICES -->
|
||||
|
||||
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/star.png" />
|
||||
</div>
|
||||
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Our Services
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="container my-5">
|
||||
<div class="row">
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #1dd1a1 !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/cogs.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Odoo
|
||||
Customization</h6>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/wrench.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Odoo
|
||||
Implementation</h6>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/lifebuoy.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Odoo
|
||||
Support</h6>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/user.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Hire
|
||||
Odoo
|
||||
Developer</h6>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #54a0ff !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/puzzle.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Odoo
|
||||
Integration</h6>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/update.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Odoo
|
||||
Migration</h6>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/consultation.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Odoo
|
||||
Consultancy</h6>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/training.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Odoo
|
||||
Implementation</h6>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
|
||||
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
|
||||
style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;">
|
||||
<img src="assets/icons/license.png" class="img-responsive" height="48px" width="48px">
|
||||
</div>
|
||||
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
|
||||
Odoo
|
||||
Licensing Consultancy</h6>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- END OF OUR SERVICES -->
|
||||
|
||||
<!-- OUR INDUSTRIES -->
|
||||
|
||||
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/corporate.png" />
|
||||
</div>
|
||||
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Our
|
||||
Industries
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="container my-5">
|
||||
<div class="row">
|
||||
<div class="col-lg-3">
|
||||
<div class="my-4 d-flex flex-column justify-content-center"
|
||||
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
|
||||
<img src="assets/icons/trading-black.png" class="img-responsive mb-3" height="48px" width="48px">
|
||||
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
|
||||
Trading
|
||||
</h5>
|
||||
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
|
||||
Easily procure
|
||||
and
|
||||
sell your products</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="my-4 d-flex flex-column justify-content-center"
|
||||
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
|
||||
<img src="assets/icons/pos-black.png" class="img-responsive mb-3" height="48px" width="48px">
|
||||
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
|
||||
POS
|
||||
</h5>
|
||||
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
|
||||
Easy
|
||||
configuration
|
||||
and convivial experience</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="my-4 d-flex flex-column justify-content-center"
|
||||
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
|
||||
<img src="assets/icons/education-black.png" class="img-responsive mb-3" height="48px" width="48px">
|
||||
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
|
||||
Education
|
||||
</h5>
|
||||
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
|
||||
A platform for
|
||||
educational management</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="my-4 d-flex flex-column justify-content-center"
|
||||
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
|
||||
<img src="assets/icons/manufacturing-black.png" class="img-responsive mb-3" height="48px"
|
||||
width="48px">
|
||||
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
|
||||
Manufacturing
|
||||
</h5>
|
||||
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
|
||||
Plan, track and
|
||||
schedule your operations</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="my-4 d-flex flex-column justify-content-center"
|
||||
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
|
||||
<img src="assets/icons/ecom-black.png" class="img-responsive mb-3" height="48px" width="48px">
|
||||
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
|
||||
E-commerce & Website
|
||||
</h5>
|
||||
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
|
||||
Mobile
|
||||
friendly,
|
||||
awe-inspiring product pages</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="my-4 d-flex flex-column justify-content-center"
|
||||
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
|
||||
<img src="assets/icons/service-black.png" class="img-responsive mb-3" height="48px" width="48px">
|
||||
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
|
||||
Service Management
|
||||
</h5>
|
||||
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
|
||||
Keep track of
|
||||
services and invoice</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="my-4 d-flex flex-column justify-content-center"
|
||||
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
|
||||
<img src="assets/icons/restaurant-black.png" class="img-responsive mb-3" height="48px" width="48px">
|
||||
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
|
||||
Restaurant
|
||||
</h5>
|
||||
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
|
||||
Run your bar or
|
||||
restaurant methodically</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="my-4 d-flex flex-column justify-content-center"
|
||||
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
|
||||
<img src="assets/icons/hotel-black.png" class="img-responsive mb-3" height="48px" width="48px">
|
||||
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
|
||||
Hotel Management
|
||||
</h5>
|
||||
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
|
||||
An
|
||||
all-inclusive
|
||||
hotel management application</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- END OF OUR INDUSTRIES -->
|
||||
|
||||
<!-- SUPPORT -->
|
||||
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
|
||||
<div class="d-flex justify-content-center align-items-center mr-2"
|
||||
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
|
||||
<img src="assets/misc/customer-support.png" />
|
||||
</div>
|
||||
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Support
|
||||
</h2>
|
||||
</div>
|
||||
<div class="container mt-5">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-6">
|
||||
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
|
||||
<div class="mr-4"
|
||||
style="background-color: #714B67; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
|
||||
<img src="assets/misc/support.png" height="48" width="48" style="width: 42px; height: 42px;" />
|
||||
</div>
|
||||
<div>
|
||||
<h4>Need Help?</h4>
|
||||
<p style="line-height: 100%;">Got questions or need help? Get in touch.</p>
|
||||
<a href="mailto:odoo@cybrosys.com">
|
||||
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">
|
||||
odoo@cybrosys.com</p>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-6">
|
||||
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
|
||||
<div class="mr-4"
|
||||
style="background-color: #2AC44D; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
|
||||
<img src="assets/misc/whatsapp.png" height="52" width="52" style="width: 52px; height: 52px;" />
|
||||
</div>
|
||||
<div>
|
||||
<h4>WhatsApp</h4>
|
||||
<p style="line-height: 100%;">Say hi to us on WhatsApp!</p>
|
||||
<a href="https://api.whatsapp.com/send?phone=918606827707">
|
||||
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">+91 86068
|
||||
27707</p>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 my-5 d-flex justify-content-center align-items-center">
|
||||
<img src="assets/misc/logo.png" width="144" height="31"
|
||||
style="width:144px; height: 31px; margin-top: 40px;" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END OF SUPPORT -->
|
||||
46
jikimo_hide_options/static/src/js/form_controller.js
Normal file
@@ -0,0 +1,46 @@
|
||||
/** @odoo-module */
|
||||
/**
|
||||
* This file will used to hide the selected options from the form view
|
||||
*/
|
||||
import { FormController} from "@web/views/form/form_controller";
|
||||
import { patch} from "@web/core/utils/patch";
|
||||
var rpc = require('web.rpc');
|
||||
const { onWillStart} = owl;
|
||||
patch(FormController.prototype, 'jikimo_hide_options/static/src/js/form_controller.js.FormController', {
|
||||
/**
|
||||
* This function will used to hide the selected options from the form view
|
||||
*/
|
||||
setup() {
|
||||
this._super();
|
||||
onWillStart(async () => {
|
||||
var self = this
|
||||
var result;
|
||||
await rpc.query({
|
||||
model: 'access.right',
|
||||
method: 'hide_buttons',
|
||||
}).then(function(data) {
|
||||
result = data;
|
||||
});
|
||||
for (var i = 0; i < result.length; i++) {
|
||||
var group = result[i].module + "." + result[i].group_name
|
||||
if (self.props.resModel == result[i].model) {
|
||||
if (await self.user.hasGroup(group)) {
|
||||
if (!this.user.isAdmin) {
|
||||
if (result[i].is_create_or_update) {
|
||||
self.canCreate = false
|
||||
}
|
||||
if (result[i].is_delete) {
|
||||
this.archInfo.activeActions.delete = false
|
||||
}
|
||||
if (result[i].is_archive) {
|
||||
self.archiveEnabled = false
|
||||
} else {
|
||||
self.archiveEnabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
42
jikimo_hide_options/static/src/js/kanban_controller.js
Normal file
@@ -0,0 +1,42 @@
|
||||
/** @odoo-module */
|
||||
/**
|
||||
* This file will used to hide the selected options from the list view
|
||||
*/
|
||||
import { KanbanController } from '@web/views/kanban/kanban_controller';
|
||||
import { patch} from "@web/core/utils/patch";
|
||||
var rpc = require('web.rpc');
|
||||
const {onWillStart} = owl;
|
||||
patch(KanbanController.prototype, 'jikimo_hide_options/static/src/js/list_controller.js.KanbanController', {
|
||||
/**
|
||||
* This function will used to hide the selected options from the Kanban view
|
||||
*/
|
||||
setup() {
|
||||
this._super();
|
||||
onWillStart(async () => {
|
||||
var self = this
|
||||
var result;
|
||||
await rpc.query({
|
||||
model: 'access.right',
|
||||
method: 'hide_buttons',
|
||||
}).then(function(data) {
|
||||
result = data;
|
||||
});
|
||||
for (var i = 0; i < result.length; i++) {
|
||||
var group = result[i].module + "." + result[i].group_name
|
||||
if (self.props.resModel == result[i].model) {
|
||||
if (await self.model.user.hasGroup(group)) {
|
||||
if (!self.model.user.isAdmin) {
|
||||
if (result[i].is_create_or_update) {
|
||||
self.props.archInfo.activeActions.create=false
|
||||
self.props.archInfo.activeActions.edit=false
|
||||
}
|
||||
if (result[i].is_delete) {
|
||||
self.props.archInfo.activeActions.delete=false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
50
jikimo_hide_options/static/src/js/list_controller.js
Normal file
@@ -0,0 +1,50 @@
|
||||
/** @odoo-module */
|
||||
/**
|
||||
* This file will used to hide the selected options from the list view
|
||||
*/
|
||||
import { ListController} from '@web/views/list/list_controller';
|
||||
import { patch} from "@web/core/utils/patch";
|
||||
var rpc = require('web.rpc');
|
||||
const {onWillStart} = owl;
|
||||
patch(ListController.prototype, 'jikimo_hide_options/static/src/js/list_controller.js.ListController', {
|
||||
/**
|
||||
* This function will used to hide the selected options from the list view
|
||||
*/
|
||||
setup() {
|
||||
this._super();
|
||||
onWillStart(async () => {
|
||||
var self = this
|
||||
var result;
|
||||
await rpc.query({
|
||||
model: 'access.right',
|
||||
method: 'hide_buttons',
|
||||
}).then(function(data) {
|
||||
result = data;
|
||||
});
|
||||
for (var i = 0; i < result.length; i++) {
|
||||
var group = result[i].module + "." + result[i].group_name
|
||||
if (self.props.resModel == result[i].model) {
|
||||
if (await self.userService.hasGroup(group)) {
|
||||
if (!this.userService.isAdmin) {
|
||||
if (result[i].is_create_or_update) {
|
||||
self.activeActions.create = false;
|
||||
}
|
||||
if (result[i].is_export) {
|
||||
self.isExportEnable = false
|
||||
self.isExportEnable = false
|
||||
}
|
||||
if (result[i].is_delete) {
|
||||
self.activeActions.delete = false;
|
||||
}
|
||||
if (result[i].is_archive) {
|
||||
self.archiveEnabled = false;
|
||||
} else {
|
||||
self.archiveEnabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
58
jikimo_hide_options/views/model_access_rights_views.xml
Normal file
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!-- Action for the menu Restrict Model Access-->
|
||||
<record id="access_right_action" model="ir.actions.act_window">
|
||||
<field name="name">隐藏项目</field>
|
||||
<field name="res_model">access.right</field>
|
||||
<field name='view_mode'>tree,form</field>
|
||||
</record>
|
||||
<!-- Tree view for the model access.right-->
|
||||
<record id="access_right_view_tree" model="ir.ui.view">
|
||||
<field name="name">access.right.view.tree</field>
|
||||
<field name="model">access.right</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="model_id" string="模型"/>
|
||||
<field name="groups_id" string="用户组"/>
|
||||
<field name="is_delete" string="删除"/>
|
||||
<field name="is_export" string="导出"/>
|
||||
<field name="is_create_or_update" string="创建或更新"/>
|
||||
<field name="is_archive" string="归档"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Form view for the model access.right-->
|
||||
<record id="access_right_view_form" model="ir.ui.view">
|
||||
<field name="name">access.right.view.form</field>
|
||||
<field name="model">access.right</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="model_id" string="模型"/>
|
||||
<field name="groups_id" string="用户组"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="is_delete" string="删除"/>
|
||||
<field name="is_export" string="导出"/>
|
||||
<field name="is_create_or_update" string="创建或更新"/>
|
||||
<field name="is_archive" string="归档"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids"/>
|
||||
<field name="message_ids"/>
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Creating a menu named Restrict Model Access-->
|
||||
<menuitem id="access_right_menu"
|
||||
name="隐藏项目"
|
||||
parent="base.menu_administration"
|
||||
action="access_right_action"
|
||||
sequence="6"
|
||||
groups="jikimo_hide_options.model_access_rights_groups_configure_model_access"/>
|
||||
</odoo>
|
||||
5
mrp_mps/__init__.py
Normal file
@@ -0,0 +1,5 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import models
|
||||
from . import wizard
|
||||
46
mrp_mps/__manifest__.py
Normal file
@@ -0,0 +1,46 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
{
|
||||
'name': 'Master Production Schedule',
|
||||
'version': '1.0',
|
||||
'category': 'Manufacturing/Manufacturing',
|
||||
'sequence': 50,
|
||||
'summary': 'Master Production Schedule',
|
||||
'depends': ['base_import', 'mrp', 'purchase_stock'],
|
||||
'description': """
|
||||
Master Production Schedule
|
||||
==========================
|
||||
|
||||
Sometimes you need to create the purchase orders for the components of
|
||||
manufacturing orders that will only be created later. Or for production orders
|
||||
where you will only have the sales orders later. The solution is to predict
|
||||
your sale forecasts and based on that you will already create some production
|
||||
orders or purchase orders.
|
||||
|
||||
You need to choose the products you want to add to the report. You can choose
|
||||
the period for the report: day, week, month, ... It is also possible to define
|
||||
safety stock, min/max to supply and to manually override the amount you will
|
||||
procure.
|
||||
""",
|
||||
'data': [
|
||||
'security/ir.model.access.csv',
|
||||
'security/mrp_mps_security.xml',
|
||||
'views/mrp_mps_views.xml',
|
||||
'views/mrp_mps_menu_views.xml',
|
||||
'views/mrp_bom_views.xml',
|
||||
'views/product_product_views.xml',
|
||||
'views/product_template_views.xml',
|
||||
'views/res_config_settings_views.xml',
|
||||
'wizard/mrp_mps_forecast_details_views.xml'
|
||||
],
|
||||
'demo': [
|
||||
'data/mps_demo.xml',
|
||||
],
|
||||
'license': 'OEEL-1',
|
||||
'assets': {
|
||||
'web.assets_backend': [
|
||||
'mrp_mps/static/src/**/*',
|
||||
],
|
||||
}
|
||||
}
|
||||
95
mrp_mps/data/mps_demo.xml
Normal file
@@ -0,0 +1,95 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="product.product_product_3" model="product.product">
|
||||
<field name="produce_delay">10</field>
|
||||
<field name="sequence">1</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_product_12" model="product.product">
|
||||
<field name="sequence">5</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_product_13" model="product.product">
|
||||
<field name="sequence">10</field>
|
||||
</record>
|
||||
|
||||
<record id="product.product_product_16" model="product.product">
|
||||
<field name="sequence">15</field>
|
||||
</record>
|
||||
|
||||
<record id="mrp_mps_production_schedule_1" model="mrp.production.schedule">
|
||||
<field name="product_id" ref="product.product_product_12"/>
|
||||
<field name="warehouse_id" ref="stock.warehouse0"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="max_to_replenish_qty">50</field>
|
||||
<field name="forecast_target_qty">15</field>
|
||||
</record>
|
||||
|
||||
<record id="mrp_mps_production_schedule_2" model="mrp.production.schedule">
|
||||
<field name="product_id" ref="product.product_product_3"/>
|
||||
<field name="warehouse_id" ref="stock.warehouse0"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="max_to_replenish_qty">20</field>
|
||||
<field name="forecast_target_qty">5</field>
|
||||
</record>
|
||||
|
||||
<record id="mrp_mps_production_schedule_3" model="mrp.production.schedule">
|
||||
<field name="product_id" ref="product.product_product_13"/>
|
||||
<field name="warehouse_id" ref="stock.warehouse0"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
</record>
|
||||
|
||||
<record id="mrp_mps_production_schedule_4" model="mrp.production.schedule">
|
||||
<field name="product_id" ref="product.product_product_16"/>
|
||||
<field name="warehouse_id" ref="stock.warehouse0"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
</record>
|
||||
|
||||
<record id="mrp_production_forecast_1_1" model="mrp.product.forecast">
|
||||
<field name="date" eval="DateTime.today() + relativedelta(day=1, weeks=1, days=-1)"/>
|
||||
<field name="forecast_qty">220</field>
|
||||
<field name="production_schedule_id" ref="mrp_mps.mrp_mps_production_schedule_1"/>
|
||||
</record>
|
||||
<record id="mrp_production_forecast_1_2" model="mrp.product.forecast">
|
||||
<field name="date" eval="DateTime.today() + relativedelta(day=1, weeks=3, days=-1)"/>
|
||||
<field name="forecast_qty">45</field>
|
||||
<field name="production_schedule_id" ref="mrp_mps.mrp_mps_production_schedule_1"/>
|
||||
</record>
|
||||
<record id="mrp_production_forecast_1_3" model="mrp.product.forecast">
|
||||
<field name="date" eval="DateTime.today() + relativedelta(day=1, weeks=4, days=-1)"/>
|
||||
<field name="forecast_qty">100</field>
|
||||
<field name="production_schedule_id" ref="mrp_mps.mrp_mps_production_schedule_1"/>
|
||||
</record>
|
||||
|
||||
<record id="mrp_production_forecast_2_1" model="mrp.product.forecast">
|
||||
<field name="date" eval="DateTime.today() + relativedelta(day=1, weeks=1, days=-1)"/>
|
||||
<field name="forecast_qty">60</field>
|
||||
<field name="production_schedule_id" ref="mrp_mps.mrp_mps_production_schedule_2"/>
|
||||
</record>
|
||||
<record id="mrp_production_forecast_2_2" model="mrp.product.forecast">
|
||||
<field name="date" eval="DateTime.today() + relativedelta(day=1, weeks=2, days=-1)"/>
|
||||
<field name="forecast_qty">40</field>
|
||||
<field name="production_schedule_id" ref="mrp_mps.mrp_mps_production_schedule_2"/>
|
||||
</record>
|
||||
<record id="mrp_production_forecast_2_3" model="mrp.product.forecast">
|
||||
<field name="date" eval="DateTime.today() + relativedelta(day=1, weeks=3, days=-1)"/>
|
||||
<field name="forecast_qty">100</field>
|
||||
<field name="production_schedule_id" ref="mrp_mps.mrp_mps_production_schedule_2"/>
|
||||
</record>
|
||||
<record id="mrp_production_forecast_2_4" model="mrp.product.forecast">
|
||||
<field name="date" eval="DateTime.today() + relativedelta(day=1, weeks=4, days=-1)"/>
|
||||
<field name="forecast_qty">40</field>
|
||||
<field name="production_schedule_id" ref="mrp_mps.mrp_mps_production_schedule_2"/>
|
||||
</record>
|
||||
|
||||
<record id="mrp_production_forecast_3_1" model="mrp.product.forecast">
|
||||
<field name="date" eval="DateTime.today() + relativedelta(day=1, weeks=2, days=-1)"/>
|
||||
<field name="forecast_qty">40</field>
|
||||
<field name="production_schedule_id" ref="mrp_mps.mrp_mps_production_schedule_3"/>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
720
mrp_mps/i18n/ar.po
Normal file
@@ -0,0 +1,720 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * mrp_mps
|
||||
#
|
||||
# Translators:
|
||||
# Martin Trigaux, 2022
|
||||
# Malaz Abuidris <msea@odoo.com>, 2022
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 15.5alpha1+e\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-09-20 09:47+0000\n"
|
||||
"PO-Revision-Date: 2022-09-22 05:47+0000\n"
|
||||
"Last-Translator: Malaz Abuidris <msea@odoo.com>, 2022\n"
|
||||
"Language-Team: Arabic (https://www.transifex.com/odoo/teams/41243/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Language: ar\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"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "- Indirect Demand Forecast"
|
||||
msgstr "توقعات الطلبات غير المباشرة "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "ATP"
|
||||
msgstr "متاح للوعد (ATP) "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Actual"
|
||||
msgstr "الفعلي "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Actual Demand"
|
||||
msgstr "الطلب الفعلي "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: code:addons/mrp_mps/models/mrp_mps.py:0
|
||||
#, python-format
|
||||
msgid "Actual Demand %s %s (%s - %s)"
|
||||
msgstr "الطلب الفعلي %s %s (%s - %s)"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Actual Demand Y-1"
|
||||
msgstr "الطلب الفعلي Y-1 "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Actual Demand Y-2"
|
||||
msgstr "الطلب الفعلي Y-2 "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__total_qty
|
||||
#, python-format
|
||||
msgid "Actual Replenishment"
|
||||
msgstr "تجديد المخزون الفعلي "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: code:addons/mrp_mps/models/mrp_mps.py:0
|
||||
#, python-format
|
||||
msgid "Actual Replenishment %s %s (%s - %s)"
|
||||
msgstr "تجديد المخزون الفعلي %s %s (%s - %s) "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.xml:0
|
||||
#: model:ir.actions.act_window,name:mrp_mps.action_mrp_mps_form_view
|
||||
#, python-format
|
||||
msgid "Add a Product"
|
||||
msgstr "إضافة منتج"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/models/master_production_schedule_model.js:0
|
||||
#, python-format
|
||||
msgid "Are you sure you want to delete these records?"
|
||||
msgstr "هل أنت متأكد من أنك ترغب في حذف تلك السجلات؟ "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/models/master_production_schedule_model.js:0
|
||||
#, python-format
|
||||
msgid "Are you sure you want to delete this record?"
|
||||
msgstr "هل أنت متأكد من أنك ترغب في حذف هذا السجل؟ "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Available to Promise"
|
||||
msgstr "متاح للوعد "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_mrp_bom
|
||||
msgid "Bill of Material"
|
||||
msgstr "قائمة المواد"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__bom_id
|
||||
msgid "Bill of Materials"
|
||||
msgstr "قائمة المواد"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_production_schedule_form_view
|
||||
msgid "Cancel"
|
||||
msgstr "إلغاء "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_forecast_details_form_view
|
||||
msgid "Close"
|
||||
msgstr "إغلاق "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr "الشركات "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__company_id
|
||||
msgid "Company"
|
||||
msgstr "الشركة "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_res_config_settings
|
||||
msgid "Config Settings"
|
||||
msgstr "تهيئة الإعدادات "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/models/master_production_schedule_model.js:0
|
||||
#, python-format
|
||||
msgid "Confirmation"
|
||||
msgstr "تأكيد"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__create_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__create_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__create_uid
|
||||
msgid "Created by"
|
||||
msgstr "أنشئ بواسطة"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__create_date
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__create_date
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__create_date
|
||||
msgid "Created on"
|
||||
msgstr "أنشئ في"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields.selection,name:mrp_mps.selection__res_company__manufacturing_period__day
|
||||
msgid "Daily"
|
||||
msgstr "يوميًا"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__date
|
||||
msgid "Date"
|
||||
msgstr "التاريخ"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__product_uom_id
|
||||
msgid "Default unit of measure used for all stock operations."
|
||||
msgstr "وحدة القياس الافتراضية المستخدمة لكافة عمليات المخزون. "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_res_company__manufacturing_period
|
||||
#: model:ir.model.fields,help:mrp_mps.field_res_config_settings__manufacturing_period
|
||||
msgid ""
|
||||
"Default value for the time ranges in Master Production Schedule report."
|
||||
msgstr "القيمة الافتراضية للنطاق الزمني في تقرير جدول الإنتاج الرئيسي."
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.js:0
|
||||
#, python-format
|
||||
msgid "Delete"
|
||||
msgstr "حذف"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__forecast_qty
|
||||
#, python-format
|
||||
msgid "Demand Forecast"
|
||||
msgstr "توقعات الطلب"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_actual_demand
|
||||
msgid "Display Actual Demand"
|
||||
msgstr "عرض الطلب الفعلي "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_actual_demand_year_minus_2
|
||||
msgid "Display Actual Demand Before Year"
|
||||
msgstr "عرض الطلب الفعلي قبل سنة "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_actual_demand_year_minus_1
|
||||
msgid "Display Actual Demand Last Year"
|
||||
msgstr "عرض الطلب الفعلي السنة الماضية "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_actual_replenishment
|
||||
msgid "Display Actual Replenishment"
|
||||
msgstr "عرض تجديد المخزون الفعلي "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_available_to_promise
|
||||
msgid "Display Available to Promise"
|
||||
msgstr "عرض المتاح للوعد "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_demand_forecast
|
||||
msgid "Display Demand Forecast"
|
||||
msgstr "عرض توقعات الطلب "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_indirect_demand
|
||||
msgid "Display Indirect Demand"
|
||||
msgstr "عرض الطلب غير المباشر "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__display_name
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__display_name
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "اسم العرض "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_safety_stock
|
||||
msgid "Display Safety Stock"
|
||||
msgstr "عرض المخزون الاحتياطي "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_starting_inventory
|
||||
msgid "Display Starting Inventory"
|
||||
msgstr "عرض المخزون المبدأي "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_to_replenish
|
||||
msgid "Display To Replenish"
|
||||
msgstr "العرض لتجديد المخزون "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.js:0
|
||||
#, python-format
|
||||
msgid "Export"
|
||||
msgstr "تصدير"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.js:0
|
||||
#, python-format
|
||||
msgid "External ID"
|
||||
msgstr "معرف خارجي"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_mrp_mps_forecast_details
|
||||
msgid "Forecast Demand Details"
|
||||
msgstr "تفاصيل الطلب المتوقع "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Forecast Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Forecasted"
|
||||
msgstr "المتوقعة "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Forecasted Demand"
|
||||
msgstr "الطلب المتوقع "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Forecasted Stock"
|
||||
msgstr "المخزون المتوقع "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__forecast_ids
|
||||
msgid "Forecasted quantity at date"
|
||||
msgstr "الكمية المتوقعة بتاريخ "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__sequence
|
||||
msgid "Gives the sequence order when displaying a product list"
|
||||
msgstr "يعرض ترتيب التسلسل عند عرض قائمة منتج "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__id
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__id
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__id
|
||||
msgid "ID"
|
||||
msgstr "المُعرف"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Indirect Demand Forecast"
|
||||
msgstr "توقع الطلب غير المباشر "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details____last_update
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast____last_update
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "آخر تعديل في"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__write_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__write_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "آخر تحديث بواسطة"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__write_date
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__write_date
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "آخر تحديث في"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.ui.menu,name:mrp_mps.mrp_mps_menu_planning
|
||||
msgid "MPS"
|
||||
msgstr "جدول التخطيط الرئيسي "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_forecast_details_form_view
|
||||
msgid "Manufacturing Orders"
|
||||
msgstr "أوامر التصنيع "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__manufacturing_period
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_config_settings__manufacturing_period
|
||||
msgid "Manufacturing Period"
|
||||
msgstr "فترة التصنيع"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/main.js:0
|
||||
#: model:ir.actions.client,name:mrp_mps.action_mrp_mps
|
||||
#: model:ir.ui.menu,name:mrp_mps.mrp_mps_report_menu
|
||||
#, python-format
|
||||
msgid "Master Production Schedule"
|
||||
msgstr "جدول الإنتاج الرئيسي"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__max_to_replenish_qty
|
||||
msgid "Maximum to Replenish"
|
||||
msgstr "الحد الأقصى لتجديد المخزون "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__min_to_replenish_qty
|
||||
msgid "Minimum to Replenish"
|
||||
msgstr "الحد الأدنى لتجديد المخزون "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields.selection,name:mrp_mps.selection__res_company__manufacturing_period__month
|
||||
msgid "Monthly"
|
||||
msgstr "شهرياً"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__move_ids
|
||||
msgid "Move"
|
||||
msgstr "حركة"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/main.xml:0
|
||||
#, python-format
|
||||
msgid "No product yet. Add one to start scheduling."
|
||||
msgstr "لا يوجد منتج بعد. قم بإضافة واحد لبدء الجدولة. "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.res_config_settings_view_form
|
||||
msgid "Number of Columns"
|
||||
msgstr "عدد الأعمدة "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_config_settings__manufacturing_period_to_display
|
||||
msgid "Number of Manufacturing Period Columns"
|
||||
msgstr "عدد أعمدة فترة التصنيع "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__manufacturing_period_to_display
|
||||
msgid ""
|
||||
"Number of columns for the given period to display in Master "
|
||||
"Production Schedule"
|
||||
msgstr "عدد الأعمدة للفترة المعطاة للعرض في جدول الإنتاج الرئيسي "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__procurement_launched
|
||||
msgid "Procurement has been run for this forecast"
|
||||
msgstr "لقد تم تشغيل الشراء لهذا التوقع "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_product_template
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__product_id
|
||||
msgid "Product"
|
||||
msgstr "المنتج"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__product_category_id
|
||||
msgid "Product Category"
|
||||
msgstr "فئة المنتج"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_mrp_product_forecast
|
||||
msgid "Product Forecast at Date"
|
||||
msgstr "توقعات المنتج في تاريخه "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__product_tmpl_id
|
||||
msgid "Product Template"
|
||||
msgstr "قالب المنتج"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__product_uom_id
|
||||
msgid "Product UoM"
|
||||
msgstr "وحدة قياس المنتج"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_product_product
|
||||
msgid "Product Variant"
|
||||
msgstr "متغير المنتج "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__production_schedule_id
|
||||
msgid "Production Schedule"
|
||||
msgstr "جدول الإنتاج "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__warehouse_id
|
||||
msgid "Production Warehouse"
|
||||
msgstr "مستودع الإنتاج "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_purchase_order
|
||||
msgid "Purchase Order"
|
||||
msgstr "أمر شراء"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__purchase_order_line_ids
|
||||
msgid "Purchase Order Line"
|
||||
msgstr "بند أمر الشراء"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__moves_qty
|
||||
msgid "Quantity from Incoming Moves"
|
||||
msgstr "الكمية من الحركات الواردة "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__manufacture_qty
|
||||
msgid "Quantity from Manufacturing Order"
|
||||
msgstr "الكمية من أمر التصنيع "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__rfq_qty
|
||||
msgid "Quantity from RFQ"
|
||||
msgstr "الكمية من طلب عرض السعر "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Quantity predicted to be available for sale at the end of the period (= to "
|
||||
"replenish - actual demand)."
|
||||
msgstr ""
|
||||
"الكمية المتوقع توافرها للبيع في نهاية الفترة (=لتجديد المخزون - الطلب "
|
||||
"الفعلي). "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_forecast_details_form_view
|
||||
msgid "Receipts"
|
||||
msgstr "الإيصالات"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.js:0
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.xml:0
|
||||
#, python-format
|
||||
msgid "Replenish"
|
||||
msgstr "تجديد المخزون "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__replenish_qty_updated
|
||||
msgid "Replenish_qty has been manually updated"
|
||||
msgstr "لقد تم تحديث Replenish_qty يدوياً "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_forecast_details_form_view
|
||||
msgid "Requests for quotation"
|
||||
msgstr "طلبات عرض السعر "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Rows"
|
||||
msgstr "الصفوف"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__forecast_target_qty
|
||||
msgid "Safety Stock Target"
|
||||
msgstr "هدف المخزون الاحتياطي "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_production_schedule_form_view
|
||||
msgid "Save"
|
||||
msgstr "حفظ"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_mrp_production_schedule
|
||||
msgid "Schedule the production of Product in a warehouse"
|
||||
msgstr "جدولة إنتاج المنتج في المستودع "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_purchase_order__date_planned_mps
|
||||
msgid "Scheduled Date"
|
||||
msgstr "التاريخ المجدول"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_bom__schedule_count
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_product_product__schedule_count
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_product_template__schedule_count
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_bom_form_view_inherit_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.product_normal_form_view_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.product_template_only_form_view_mps
|
||||
msgid "Schedules"
|
||||
msgstr "الجداول "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__sequence
|
||||
msgid "Sequence"
|
||||
msgstr "التسلسل "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Starting Inventory"
|
||||
msgstr "المخزون المبدأي "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_stock_rule
|
||||
msgid "Stock Rule"
|
||||
msgstr "قاعدة المخزون"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Suggested Replenishment"
|
||||
msgstr "تجديد المخزون المقترح "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.constraint,message:mrp_mps.constraint_mrp_production_schedule_warehouse_product_ref_uniq
|
||||
msgid "The combination of warehouse and product must be unique !"
|
||||
msgstr "يجب أن يكون المزيج بين المستودع والمنتج فريدا! "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "The confirmed demand, based on the confirmed sales orders."
|
||||
msgstr "الطلب المؤكد بناءً على أوامر البيع المؤكدة. "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The forecasted demand to fulfill the needs in components of the "
|
||||
"Manufacturing Orders."
|
||||
msgstr "الطلب المتوقع لاستيفاء احتياجات مكونات أوامر التصنيع. "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "The forecasted demand. This value has to be entered manually."
|
||||
msgstr "الطلب المتوقع. يجب إدخال هذه القيمة يدوياً. "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "The forecasted quantity in stock at the beginning of the period."
|
||||
msgstr "الكمية المتوقعة في المخزون في بداية الفترة. "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "The forecasted quantity in stock at the end of the period."
|
||||
msgstr "الكمية المتوقعة في المخزون في نهاية الفترة. "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/main.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The master schedule translates your sales and demand forecasts into a production and purchase planning for each component.\n"
|
||||
" It ensures everything gets scheduled on time, based on constraints such as: safety stock, production capacity, lead times.\n"
|
||||
" It's the perfect tool to support your S&OP meetings."
|
||||
msgstr ""
|
||||
"يقوم الجدول الرئيسي بترجمة توقعات مبيعاتك وطلباتك إلى مخططات إنتاج وشراء لكل مكون.\n"
|
||||
" يضمن ذلك بأن تتم جدولة كل شيء في الوقت المحدد، بناءً على التقييدات مثل: المخزون الاحتياطي وسعة الإنتاج والمهل المتاحة.\n"
|
||||
" إنه الأداة المناسبة لدعم اجتماعات تخطيط المبيعات والعمليات الخاصة بك. "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__max_to_replenish_qty
|
||||
msgid ""
|
||||
"The maximum replenishment you would like to launch for each period in the "
|
||||
"MPS. Note that if the demand is higher than that amount, the remaining "
|
||||
"quantity will be transferred to the next period automatically."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The quantity being replenished, based on the Requests for Quotation and the "
|
||||
"Manufacturing Orders."
|
||||
msgstr "الكمية التي يتم تجديدها بناءً على طلبات عروض الأسعار وأوامر التصنيع. "
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The quantity to replenish through Purchase Orders or Manufacturing Orders."
|
||||
msgstr "الكمية لتجديدها من خلال أوامر الشراء أو أوامر التصنيع. "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__forecast_target_qty
|
||||
msgid ""
|
||||
"This is the minimum free stock you want to keep for that product at all "
|
||||
"times."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.res_config_settings_view_form
|
||||
msgid "Time Range"
|
||||
msgstr "النطاق الزمني"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__replenish_qty
|
||||
#, python-format
|
||||
msgid "To Replenish"
|
||||
msgstr "للتجديد "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__min_to_replenish_qty
|
||||
msgid ""
|
||||
"Unless the demand is 0, Odoo will always at least replenish this quantity."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: code:addons/mrp_mps/models/res_company.py:0
|
||||
#, python-format
|
||||
msgid "Week {week_num} ({start_date}-{end_date}/{month})"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields.selection,name:mrp_mps.selection__res_company__manufacturing_period__week
|
||||
msgid "Weekly"
|
||||
msgstr "أسبوعيًا"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "by"
|
||||
msgstr "بواسطة"
|
||||
715
mrp_mps/i18n/az.po
Normal file
@@ -0,0 +1,715 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * mrp_mps
|
||||
#
|
||||
# Translators:
|
||||
# Jumshud Sultanov <cumshud@gmail.com>, 2022
|
||||
# erpgo translator <jumshud@erpgo.az>, 2022
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 15.5alpha1+e\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-09-20 09:47+0000\n"
|
||||
"PO-Revision-Date: 2022-09-22 05:47+0000\n"
|
||||
"Last-Translator: erpgo translator <jumshud@erpgo.az>, 2022\n"
|
||||
"Language-Team: Azerbaijani (https://www.transifex.com/odoo/teams/41243/az/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Language: az\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "- Indirect Demand Forecast"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "ATP"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Actual"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Actual Demand"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: code:addons/mrp_mps/models/mrp_mps.py:0
|
||||
#, python-format
|
||||
msgid "Actual Demand %s %s (%s - %s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Actual Demand Y-1"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Actual Demand Y-2"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__total_qty
|
||||
#, python-format
|
||||
msgid "Actual Replenishment"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: code:addons/mrp_mps/models/mrp_mps.py:0
|
||||
#, python-format
|
||||
msgid "Actual Replenishment %s %s (%s - %s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.xml:0
|
||||
#: model:ir.actions.act_window,name:mrp_mps.action_mrp_mps_form_view
|
||||
#, python-format
|
||||
msgid "Add a Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/models/master_production_schedule_model.js:0
|
||||
#, python-format
|
||||
msgid "Are you sure you want to delete these records?"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/models/master_production_schedule_model.js:0
|
||||
#, python-format
|
||||
msgid "Are you sure you want to delete this record?"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Available to Promise"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_mrp_bom
|
||||
msgid "Bill of Material"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__bom_id
|
||||
msgid "Bill of Materials"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_production_schedule_form_view
|
||||
msgid "Cancel"
|
||||
msgstr "Ləğv edin"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_forecast_details_form_view
|
||||
msgid "Close"
|
||||
msgstr "Bağlayın"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr "Şirkətlər"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__company_id
|
||||
msgid "Company"
|
||||
msgstr "Şirkət"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_res_config_settings
|
||||
msgid "Config Settings"
|
||||
msgstr "Parametrləri Konfiqurasiya edin"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/models/master_production_schedule_model.js:0
|
||||
#, python-format
|
||||
msgid "Confirmation"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__create_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__create_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Tərəfindən yaradılıb"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__create_date
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__create_date
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__create_date
|
||||
msgid "Created on"
|
||||
msgstr "Tarixdə yaradıldı"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields.selection,name:mrp_mps.selection__res_company__manufacturing_period__day
|
||||
msgid "Daily"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__date
|
||||
msgid "Date"
|
||||
msgstr "Tarix"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__product_uom_id
|
||||
msgid "Default unit of measure used for all stock operations."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_res_company__manufacturing_period
|
||||
#: model:ir.model.fields,help:mrp_mps.field_res_config_settings__manufacturing_period
|
||||
msgid ""
|
||||
"Default value for the time ranges in Master Production Schedule report."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.js:0
|
||||
#, python-format
|
||||
msgid "Delete"
|
||||
msgstr "Silin"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__forecast_qty
|
||||
#, python-format
|
||||
msgid "Demand Forecast"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_actual_demand
|
||||
msgid "Display Actual Demand"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_actual_demand_year_minus_2
|
||||
msgid "Display Actual Demand Before Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_actual_demand_year_minus_1
|
||||
msgid "Display Actual Demand Last Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_actual_replenishment
|
||||
msgid "Display Actual Replenishment"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_available_to_promise
|
||||
msgid "Display Available to Promise"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_demand_forecast
|
||||
msgid "Display Demand Forecast"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_indirect_demand
|
||||
msgid "Display Indirect Demand"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__display_name
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__display_name
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Ekran Adı"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_safety_stock
|
||||
msgid "Display Safety Stock"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_starting_inventory
|
||||
msgid "Display Starting Inventory"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_to_replenish
|
||||
msgid "Display To Replenish"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.js:0
|
||||
#, python-format
|
||||
msgid "Export"
|
||||
msgstr "İxrac"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.js:0
|
||||
#, python-format
|
||||
msgid "External ID"
|
||||
msgstr "Xarici ID"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_mrp_mps_forecast_details
|
||||
msgid "Forecast Demand Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Forecast Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Forecasted"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Forecasted Demand"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Forecasted Stock"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__forecast_ids
|
||||
msgid "Forecasted quantity at date"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__sequence
|
||||
msgid "Gives the sequence order when displaying a product list"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__id
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__id
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__id
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Indirect Demand Forecast"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details____last_update
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast____last_update
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Son Dəyişdirilmə tarixi"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__write_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__write_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Son Yeniləyən"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__write_date
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__write_date
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Son Yenilənmə tarixi"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.ui.menu,name:mrp_mps.mrp_mps_menu_planning
|
||||
msgid "MPS"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_forecast_details_form_view
|
||||
msgid "Manufacturing Orders"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__manufacturing_period
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_config_settings__manufacturing_period
|
||||
msgid "Manufacturing Period"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/main.js:0
|
||||
#: model:ir.actions.client,name:mrp_mps.action_mrp_mps
|
||||
#: model:ir.ui.menu,name:mrp_mps.mrp_mps_report_menu
|
||||
#, python-format
|
||||
msgid "Master Production Schedule"
|
||||
msgstr "Əsas İstehsal Planı"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__max_to_replenish_qty
|
||||
msgid "Maximum to Replenish"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__min_to_replenish_qty
|
||||
msgid "Minimum to Replenish"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields.selection,name:mrp_mps.selection__res_company__manufacturing_period__month
|
||||
msgid "Monthly"
|
||||
msgstr "Aylıq"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__move_ids
|
||||
msgid "Move"
|
||||
msgstr "Hərəkət"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/main.xml:0
|
||||
#, python-format
|
||||
msgid "No product yet. Add one to start scheduling."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.res_config_settings_view_form
|
||||
msgid "Number of Columns"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_config_settings__manufacturing_period_to_display
|
||||
msgid "Number of Manufacturing Period Columns"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__manufacturing_period_to_display
|
||||
msgid ""
|
||||
"Number of columns for the given period to display in Master "
|
||||
"Production Schedule"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__procurement_launched
|
||||
msgid "Procurement has been run for this forecast"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_product_template
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__product_id
|
||||
msgid "Product"
|
||||
msgstr "Məhsul"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__product_category_id
|
||||
msgid "Product Category"
|
||||
msgstr "Məhsul Kateqoriyası"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_mrp_product_forecast
|
||||
msgid "Product Forecast at Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__product_tmpl_id
|
||||
msgid "Product Template"
|
||||
msgstr "Məhsul Şablonu"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__product_uom_id
|
||||
msgid "Product UoM"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_product_product
|
||||
msgid "Product Variant"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__production_schedule_id
|
||||
msgid "Production Schedule"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__warehouse_id
|
||||
msgid "Production Warehouse"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_purchase_order
|
||||
msgid "Purchase Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__purchase_order_line_ids
|
||||
msgid "Purchase Order Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__moves_qty
|
||||
msgid "Quantity from Incoming Moves"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__manufacture_qty
|
||||
msgid "Quantity from Manufacturing Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__rfq_qty
|
||||
msgid "Quantity from RFQ"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Quantity predicted to be available for sale at the end of the period (= to "
|
||||
"replenish - actual demand)."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_forecast_details_form_view
|
||||
msgid "Receipts"
|
||||
msgstr "Qəbzlər"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.js:0
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.xml:0
|
||||
#, python-format
|
||||
msgid "Replenish"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__replenish_qty_updated
|
||||
msgid "Replenish_qty has been manually updated"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_forecast_details_form_view
|
||||
msgid "Requests for quotation"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Rows"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__forecast_target_qty
|
||||
msgid "Safety Stock Target"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_production_schedule_form_view
|
||||
msgid "Save"
|
||||
msgstr "Yadda Saxla"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_mrp_production_schedule
|
||||
msgid "Schedule the production of Product in a warehouse"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_purchase_order__date_planned_mps
|
||||
msgid "Scheduled Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_bom__schedule_count
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_product_product__schedule_count
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_product_template__schedule_count
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_bom_form_view_inherit_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.product_normal_form_view_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.product_template_only_form_view_mps
|
||||
msgid "Schedules"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__sequence
|
||||
msgid "Sequence"
|
||||
msgstr "Ardıcıllıq"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Starting Inventory"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_stock_rule
|
||||
msgid "Stock Rule"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Suggested Replenishment"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.constraint,message:mrp_mps.constraint_mrp_production_schedule_warehouse_product_ref_uniq
|
||||
msgid "The combination of warehouse and product must be unique !"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "The confirmed demand, based on the confirmed sales orders."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The forecasted demand to fulfill the needs in components of the "
|
||||
"Manufacturing Orders."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "The forecasted demand. This value has to be entered manually."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "The forecasted quantity in stock at the beginning of the period."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "The forecasted quantity in stock at the end of the period."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/main.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The master schedule translates your sales and demand forecasts into a production and purchase planning for each component.\n"
|
||||
" It ensures everything gets scheduled on time, based on constraints such as: safety stock, production capacity, lead times.\n"
|
||||
" It's the perfect tool to support your S&OP meetings."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__max_to_replenish_qty
|
||||
msgid ""
|
||||
"The maximum replenishment you would like to launch for each period in the "
|
||||
"MPS. Note that if the demand is higher than that amount, the remaining "
|
||||
"quantity will be transferred to the next period automatically."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The quantity being replenished, based on the Requests for Quotation and the "
|
||||
"Manufacturing Orders."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The quantity to replenish through Purchase Orders or Manufacturing Orders."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__forecast_target_qty
|
||||
msgid ""
|
||||
"This is the minimum free stock you want to keep for that product at all "
|
||||
"times."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.res_config_settings_view_form
|
||||
msgid "Time Range"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__replenish_qty
|
||||
#, python-format
|
||||
msgid "To Replenish"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__min_to_replenish_qty
|
||||
msgid ""
|
||||
"Unless the demand is 0, Odoo will always at least replenish this quantity."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: code:addons/mrp_mps/models/res_company.py:0
|
||||
#, python-format
|
||||
msgid "Week {week_num} ({start_date}-{end_date}/{month})"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields.selection,name:mrp_mps.selection__res_company__manufacturing_period__week
|
||||
msgid "Weekly"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "by"
|
||||
msgstr ""
|
||||
722
mrp_mps/i18n/ca.po
Normal file
@@ -0,0 +1,722 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * mrp_mps
|
||||
#
|
||||
# Translators:
|
||||
# Jonatan Gk, 2022
|
||||
# Manel Fernandez Ramirez <manelfera@outlook.com>, 2022
|
||||
# Harcogourmet, 2022
|
||||
# jabelchi, 2022
|
||||
# RGB Consulting <odoo@rgbconsulting.com>, 2022
|
||||
# Quim - eccit <quim@eccit.com>, 2022
|
||||
# Arnau Ros, 2022
|
||||
# Martin Trigaux, 2022
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 15.5alpha1+e\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-09-20 09:47+0000\n"
|
||||
"PO-Revision-Date: 2022-09-22 05:47+0000\n"
|
||||
"Last-Translator: Martin Trigaux, 2022\n"
|
||||
"Language-Team: Catalan (https://www.transifex.com/odoo/teams/41243/ca/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Language: ca\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "- Indirect Demand Forecast"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "ATP"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Actual"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Actual Demand"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: code:addons/mrp_mps/models/mrp_mps.py:0
|
||||
#, python-format
|
||||
msgid "Actual Demand %s %s (%s - %s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Actual Demand Y-1"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Actual Demand Y-2"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__total_qty
|
||||
#, python-format
|
||||
msgid "Actual Replenishment"
|
||||
msgstr "Reaprovisionament real"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: code:addons/mrp_mps/models/mrp_mps.py:0
|
||||
#, python-format
|
||||
msgid "Actual Replenishment %s %s (%s - %s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.xml:0
|
||||
#: model:ir.actions.act_window,name:mrp_mps.action_mrp_mps_form_view
|
||||
#, python-format
|
||||
msgid "Add a Product"
|
||||
msgstr "Afegeix un producte"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/models/master_production_schedule_model.js:0
|
||||
#, python-format
|
||||
msgid "Are you sure you want to delete these records?"
|
||||
msgstr "Esteu segur que voleu esborrar aquests registres?"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/models/master_production_schedule_model.js:0
|
||||
#, python-format
|
||||
msgid "Are you sure you want to delete this record?"
|
||||
msgstr "Esteu segur que voleu esborrar aquest registre?"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Available to Promise"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_mrp_bom
|
||||
msgid "Bill of Material"
|
||||
msgstr "Llista de material"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__bom_id
|
||||
msgid "Bill of Materials"
|
||||
msgstr "Llista de materials (LdM)"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_production_schedule_form_view
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·lar"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_forecast_details_form_view
|
||||
msgid "Close"
|
||||
msgstr "Tancar"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr "Companyies"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__company_id
|
||||
msgid "Company"
|
||||
msgstr "Empresa"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_res_config_settings
|
||||
msgid "Config Settings"
|
||||
msgstr "Ajustos de configuració"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/models/master_production_schedule_model.js:0
|
||||
#, python-format
|
||||
msgid "Confirmation"
|
||||
msgstr "Confirmació"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__create_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__create_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Creat per"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__create_date
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__create_date
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__create_date
|
||||
msgid "Created on"
|
||||
msgstr "Creat el"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields.selection,name:mrp_mps.selection__res_company__manufacturing_period__day
|
||||
msgid "Daily"
|
||||
msgstr "Diàriament"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__date
|
||||
msgid "Date"
|
||||
msgstr "Data"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__product_uom_id
|
||||
msgid "Default unit of measure used for all stock operations."
|
||||
msgstr ""
|
||||
"Unit de mesura per defecte utilitzada per totes les operacions d'estoc."
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_res_company__manufacturing_period
|
||||
#: model:ir.model.fields,help:mrp_mps.field_res_config_settings__manufacturing_period
|
||||
msgid ""
|
||||
"Default value for the time ranges in Master Production Schedule report."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.js:0
|
||||
#, python-format
|
||||
msgid "Delete"
|
||||
msgstr "Eliminar"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__forecast_qty
|
||||
#, python-format
|
||||
msgid "Demand Forecast"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_actual_demand
|
||||
msgid "Display Actual Demand"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_actual_demand_year_minus_2
|
||||
msgid "Display Actual Demand Before Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_actual_demand_year_minus_1
|
||||
msgid "Display Actual Demand Last Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_actual_replenishment
|
||||
msgid "Display Actual Replenishment"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_available_to_promise
|
||||
msgid "Display Available to Promise"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_demand_forecast
|
||||
msgid "Display Demand Forecast"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_indirect_demand
|
||||
msgid "Display Indirect Demand"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__display_name
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__display_name
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Nom a mostrar"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_safety_stock
|
||||
msgid "Display Safety Stock"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_starting_inventory
|
||||
msgid "Display Starting Inventory"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_to_replenish
|
||||
msgid "Display To Replenish"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.js:0
|
||||
#, python-format
|
||||
msgid "Export"
|
||||
msgstr "Exportar"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.js:0
|
||||
#, python-format
|
||||
msgid "External ID"
|
||||
msgstr "ID externa "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_mrp_mps_forecast_details
|
||||
msgid "Forecast Demand Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Forecast Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Forecasted"
|
||||
msgstr "Previst"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Forecasted Demand"
|
||||
msgstr "Demanda prevista"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Forecasted Stock"
|
||||
msgstr "Pila de pagament"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__forecast_ids
|
||||
msgid "Forecasted quantity at date"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__sequence
|
||||
msgid "Gives the sequence order when displaying a product list"
|
||||
msgstr "Dona l'ordre de seqüència quan mostris una llista de productes"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__id
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__id
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__id
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Indirect Demand Forecast"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details____last_update
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast____last_update
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Última modificació el "
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__write_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__write_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Última actualització per"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__write_date
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__write_date
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Última actualització el"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.ui.menu,name:mrp_mps.mrp_mps_menu_planning
|
||||
msgid "MPS"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_forecast_details_form_view
|
||||
msgid "Manufacturing Orders"
|
||||
msgstr "Ordres de producció"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__manufacturing_period
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_config_settings__manufacturing_period
|
||||
msgid "Manufacturing Period"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/main.js:0
|
||||
#: model:ir.actions.client,name:mrp_mps.action_mrp_mps
|
||||
#: model:ir.ui.menu,name:mrp_mps.mrp_mps_report_menu
|
||||
#, python-format
|
||||
msgid "Master Production Schedule"
|
||||
msgstr "Programa mestre de producció"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__max_to_replenish_qty
|
||||
msgid "Maximum to Replenish"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__min_to_replenish_qty
|
||||
msgid "Minimum to Replenish"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields.selection,name:mrp_mps.selection__res_company__manufacturing_period__month
|
||||
msgid "Monthly"
|
||||
msgstr "Mensualment"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__move_ids
|
||||
msgid "Move"
|
||||
msgstr "Assent."
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/main.xml:0
|
||||
#, python-format
|
||||
msgid "No product yet. Add one to start scheduling."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.res_config_settings_view_form
|
||||
msgid "Number of Columns"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_config_settings__manufacturing_period_to_display
|
||||
msgid "Number of Manufacturing Period Columns"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__manufacturing_period_to_display
|
||||
msgid ""
|
||||
"Number of columns for the given period to display in Master "
|
||||
"Production Schedule"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__procurement_launched
|
||||
msgid "Procurement has been run for this forecast"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_product_template
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__product_id
|
||||
msgid "Product"
|
||||
msgstr "Producte"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__product_category_id
|
||||
msgid "Product Category"
|
||||
msgstr "Categoria del producte"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_mrp_product_forecast
|
||||
msgid "Product Forecast at Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__product_tmpl_id
|
||||
msgid "Product Template"
|
||||
msgstr "Plantilla de producte"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__product_uom_id
|
||||
msgid "Product UoM"
|
||||
msgstr "UdM de producte"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_product_product
|
||||
msgid "Product Variant"
|
||||
msgstr "Variants de producte"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__production_schedule_id
|
||||
msgid "Production Schedule"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__warehouse_id
|
||||
msgid "Production Warehouse"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_purchase_order
|
||||
msgid "Purchase Order"
|
||||
msgstr "Comanda de compra"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__purchase_order_line_ids
|
||||
msgid "Purchase Order Line"
|
||||
msgstr "Línia de la comanda de compra"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__moves_qty
|
||||
msgid "Quantity from Incoming Moves"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__manufacture_qty
|
||||
msgid "Quantity from Manufacturing Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__rfq_qty
|
||||
msgid "Quantity from RFQ"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Quantity predicted to be available for sale at the end of the period (= to "
|
||||
"replenish - actual demand)."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_forecast_details_form_view
|
||||
msgid "Receipts"
|
||||
msgstr "Recepcions"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.js:0
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.xml:0
|
||||
#, python-format
|
||||
msgid "Replenish"
|
||||
msgstr "Reposar"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__replenish_qty_updated
|
||||
msgid "Replenish_qty has been manually updated"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_forecast_details_form_view
|
||||
msgid "Requests for quotation"
|
||||
msgstr "Sol·licituds de pressupost"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Rows"
|
||||
msgstr "Files"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__forecast_target_qty
|
||||
msgid "Safety Stock Target"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_production_schedule_form_view
|
||||
msgid "Save"
|
||||
msgstr "Desa"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_mrp_production_schedule
|
||||
msgid "Schedule the production of Product in a warehouse"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_purchase_order__date_planned_mps
|
||||
msgid "Scheduled Date"
|
||||
msgstr "Data programada"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_bom__schedule_count
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_product_product__schedule_count
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_product_template__schedule_count
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_bom_form_view_inherit_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.product_normal_form_view_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.product_template_only_form_view_mps
|
||||
msgid "Schedules"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__sequence
|
||||
msgid "Sequence"
|
||||
msgstr "Seqüència"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Starting Inventory"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_stock_rule
|
||||
msgid "Stock Rule"
|
||||
msgstr "Regla d'estoc"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Suggested Replenishment"
|
||||
msgstr "Aprovisionament suggerit"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.constraint,message:mrp_mps.constraint_mrp_production_schedule_warehouse_product_ref_uniq
|
||||
msgid "The combination of warehouse and product must be unique !"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "The confirmed demand, based on the confirmed sales orders."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The forecasted demand to fulfill the needs in components of the "
|
||||
"Manufacturing Orders."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "The forecasted demand. This value has to be entered manually."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "The forecasted quantity in stock at the beginning of the period."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "The forecasted quantity in stock at the end of the period."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/main.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The master schedule translates your sales and demand forecasts into a production and purchase planning for each component.\n"
|
||||
" It ensures everything gets scheduled on time, based on constraints such as: safety stock, production capacity, lead times.\n"
|
||||
" It's the perfect tool to support your S&OP meetings."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__max_to_replenish_qty
|
||||
msgid ""
|
||||
"The maximum replenishment you would like to launch for each period in the "
|
||||
"MPS. Note that if the demand is higher than that amount, the remaining "
|
||||
"quantity will be transferred to the next period automatically."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The quantity being replenished, based on the Requests for Quotation and the "
|
||||
"Manufacturing Orders."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The quantity to replenish through Purchase Orders or Manufacturing Orders."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__forecast_target_qty
|
||||
msgid ""
|
||||
"This is the minimum free stock you want to keep for that product at all "
|
||||
"times."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.res_config_settings_view_form
|
||||
msgid "Time Range"
|
||||
msgstr "Rang de temps"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__replenish_qty
|
||||
#, python-format
|
||||
msgid "To Replenish"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__min_to_replenish_qty
|
||||
msgid ""
|
||||
"Unless the demand is 0, Odoo will always at least replenish this quantity."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: code:addons/mrp_mps/models/res_company.py:0
|
||||
#, python-format
|
||||
msgid "Week {week_num} ({start_date}-{end_date}/{month})"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields.selection,name:mrp_mps.selection__res_company__manufacturing_period__week
|
||||
msgid "Weekly"
|
||||
msgstr "Setmanalment"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "by"
|
||||
msgstr "per"
|
||||
721
mrp_mps/i18n/cs.po
Normal file
@@ -0,0 +1,721 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * mrp_mps
|
||||
#
|
||||
# Translators:
|
||||
# Jan Horzinka <jan.horzinka@centrum.cz>, 2022
|
||||
# Rastislav Brencic <rastislav.brencic@azet.sk>, 2022
|
||||
# Ladislav Tomm <tomm@helemik.cz>, 2022
|
||||
# Tomas Bosek, 2022
|
||||
# trendspotter <jirka.p@volny.cz>, 2022
|
||||
# karolína schusterová <karolina.schusterova@vdp.sk>, 2022
|
||||
# Jaroslav Helemik Nemec <nemec@helemik.cz>, 2022
|
||||
# Martin Trigaux, 2022
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 15.5alpha1+e\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-09-20 09:47+0000\n"
|
||||
"PO-Revision-Date: 2022-09-22 05:47+0000\n"
|
||||
"Last-Translator: Martin Trigaux, 2022\n"
|
||||
"Language-Team: Czech (https://www.transifex.com/odoo/teams/41243/cs/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Language: cs\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "- Indirect Demand Forecast"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "ATP"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Actual"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Actual Demand"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: code:addons/mrp_mps/models/mrp_mps.py:0
|
||||
#, python-format
|
||||
msgid "Actual Demand %s %s (%s - %s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Actual Demand Y-1"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Actual Demand Y-2"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__total_qty
|
||||
#, python-format
|
||||
msgid "Actual Replenishment"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: code:addons/mrp_mps/models/mrp_mps.py:0
|
||||
#, python-format
|
||||
msgid "Actual Replenishment %s %s (%s - %s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.xml:0
|
||||
#: model:ir.actions.act_window,name:mrp_mps.action_mrp_mps_form_view
|
||||
#, python-format
|
||||
msgid "Add a Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/models/master_production_schedule_model.js:0
|
||||
#, python-format
|
||||
msgid "Are you sure you want to delete these records?"
|
||||
msgstr "Opravdu chcete tyto záznamy smazat?"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/models/master_production_schedule_model.js:0
|
||||
#, python-format
|
||||
msgid "Are you sure you want to delete this record?"
|
||||
msgstr "Opravdu chcete tento záznam smazat?"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Available to Promise"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_mrp_bom
|
||||
msgid "Bill of Material"
|
||||
msgstr "Kusovník"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__bom_id
|
||||
msgid "Bill of Materials"
|
||||
msgstr "Kusovník"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_production_schedule_form_view
|
||||
msgid "Cancel"
|
||||
msgstr "Zrušit"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_forecast_details_form_view
|
||||
msgid "Close"
|
||||
msgstr "Zavřít"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr "Společnosti"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__company_id
|
||||
msgid "Company"
|
||||
msgstr "Firma"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_res_config_settings
|
||||
msgid "Config Settings"
|
||||
msgstr "Nastavení konfigurace"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/models/master_production_schedule_model.js:0
|
||||
#, python-format
|
||||
msgid "Confirmation"
|
||||
msgstr "Potvrzení"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__create_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__create_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Vytvořeno od"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__create_date
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__create_date
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__create_date
|
||||
msgid "Created on"
|
||||
msgstr "Vytvořeno"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields.selection,name:mrp_mps.selection__res_company__manufacturing_period__day
|
||||
msgid "Daily"
|
||||
msgstr "Denně"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__date
|
||||
msgid "Date"
|
||||
msgstr "Datum"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__product_uom_id
|
||||
msgid "Default unit of measure used for all stock operations."
|
||||
msgstr "Výchozí měrná jednotka používaná pro všechny akciové operace."
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_res_company__manufacturing_period
|
||||
#: model:ir.model.fields,help:mrp_mps.field_res_config_settings__manufacturing_period
|
||||
msgid ""
|
||||
"Default value for the time ranges in Master Production Schedule report."
|
||||
msgstr "Výchozí hodnota pro časové rozsahy v sestavě Hlavní plán výroby."
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.js:0
|
||||
#, python-format
|
||||
msgid "Delete"
|
||||
msgstr "Smazat"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__forecast_qty
|
||||
#, python-format
|
||||
msgid "Demand Forecast"
|
||||
msgstr "Prognóza poptávky"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_actual_demand
|
||||
msgid "Display Actual Demand"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_actual_demand_year_minus_2
|
||||
msgid "Display Actual Demand Before Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_actual_demand_year_minus_1
|
||||
msgid "Display Actual Demand Last Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_actual_replenishment
|
||||
msgid "Display Actual Replenishment"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_available_to_promise
|
||||
msgid "Display Available to Promise"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_demand_forecast
|
||||
msgid "Display Demand Forecast"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_indirect_demand
|
||||
msgid "Display Indirect Demand"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__display_name
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__display_name
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Zobrazované jméno"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_safety_stock
|
||||
msgid "Display Safety Stock"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_starting_inventory
|
||||
msgid "Display Starting Inventory"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__mrp_mps_show_to_replenish
|
||||
msgid "Display To Replenish"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.js:0
|
||||
#, python-format
|
||||
msgid "Export"
|
||||
msgstr "Export"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.js:0
|
||||
#, python-format
|
||||
msgid "External ID"
|
||||
msgstr "Externí ID"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_mrp_mps_forecast_details
|
||||
msgid "Forecast Demand Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Forecast Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Forecasted"
|
||||
msgstr "Předpokládané"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Forecasted Demand"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Forecasted Stock"
|
||||
msgstr "Předpokládané zásoby"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__forecast_ids
|
||||
msgid "Forecasted quantity at date"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__sequence
|
||||
msgid "Gives the sequence order when displaying a product list"
|
||||
msgstr "Poskytuje pořadí při zobrazování seznamu produktů"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__id
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__id
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__id
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Indirect Demand Forecast"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details____last_update
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast____last_update
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Naposled změněno"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__write_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__write_uid
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Naposledy upraveno od"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__write_date
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__write_date
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Naposled upraveno"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.ui.menu,name:mrp_mps.mrp_mps_menu_planning
|
||||
msgid "MPS"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_forecast_details_form_view
|
||||
msgid "Manufacturing Orders"
|
||||
msgstr "Výrobní příkazy"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__manufacturing_period
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_config_settings__manufacturing_period
|
||||
msgid "Manufacturing Period"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/main.js:0
|
||||
#: model:ir.actions.client,name:mrp_mps.action_mrp_mps
|
||||
#: model:ir.ui.menu,name:mrp_mps.mrp_mps_report_menu
|
||||
#, python-format
|
||||
msgid "Master Production Schedule"
|
||||
msgstr "Hlavní výrobní plán"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__max_to_replenish_qty
|
||||
msgid "Maximum to Replenish"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__min_to_replenish_qty
|
||||
msgid "Minimum to Replenish"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields.selection,name:mrp_mps.selection__res_company__manufacturing_period__month
|
||||
msgid "Monthly"
|
||||
msgstr "Měsíčně"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__move_ids
|
||||
msgid "Move"
|
||||
msgstr "Přesunout"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/main.xml:0
|
||||
#, python-format
|
||||
msgid "No product yet. Add one to start scheduling."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.res_config_settings_view_form
|
||||
msgid "Number of Columns"
|
||||
msgstr "Počet sloupců"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_config_settings__manufacturing_period_to_display
|
||||
msgid "Number of Manufacturing Period Columns"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_res_company__manufacturing_period_to_display
|
||||
msgid ""
|
||||
"Number of columns for the given period to display in Master "
|
||||
"Production Schedule"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__procurement_launched
|
||||
msgid "Procurement has been run for this forecast"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_product_template
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__product_id
|
||||
msgid "Product"
|
||||
msgstr "Produkt"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__product_category_id
|
||||
msgid "Product Category"
|
||||
msgstr "Kategorie výrobku"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_mrp_product_forecast
|
||||
msgid "Product Forecast at Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__product_tmpl_id
|
||||
msgid "Product Template"
|
||||
msgstr "Šablona produktu"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__product_uom_id
|
||||
msgid "Product UoM"
|
||||
msgstr "MJ produktu"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_product_product
|
||||
msgid "Product Variant"
|
||||
msgstr "Varianta výrobku"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__production_schedule_id
|
||||
msgid "Production Schedule"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__warehouse_id
|
||||
msgid "Production Warehouse"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_purchase_order
|
||||
msgid "Purchase Order"
|
||||
msgstr "Objednávka"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__purchase_order_line_ids
|
||||
msgid "Purchase Order Line"
|
||||
msgstr "Řádek objednávky"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__moves_qty
|
||||
msgid "Quantity from Incoming Moves"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__manufacture_qty
|
||||
msgid "Quantity from Manufacturing Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_mps_forecast_details__rfq_qty
|
||||
msgid "Quantity from RFQ"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Quantity predicted to be available for sale at the end of the period (= to "
|
||||
"replenish - actual demand)."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_forecast_details_form_view
|
||||
msgid "Receipts"
|
||||
msgstr "Účtenky"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.js:0
|
||||
#: code:addons/mrp_mps/static/src/search/mrp_mps_control_panel.xml:0
|
||||
#, python-format
|
||||
msgid "Replenish"
|
||||
msgstr "Doplnit"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__replenish_qty_updated
|
||||
msgid "Replenish_qty has been manually updated"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_forecast_details_form_view
|
||||
msgid "Requests for quotation"
|
||||
msgstr "Žádosti o cenovou nabídku"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Rows"
|
||||
msgstr "Ŕádky"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__forecast_target_qty
|
||||
msgid "Safety Stock Target"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_mps_production_schedule_form_view
|
||||
msgid "Save"
|
||||
msgstr "Uložit"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_mrp_production_schedule
|
||||
msgid "Schedule the production of Product in a warehouse"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_purchase_order__date_planned_mps
|
||||
msgid "Scheduled Date"
|
||||
msgstr "Plánované datum"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_bom__schedule_count
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_product_product__schedule_count
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_product_template__schedule_count
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.mrp_bom_form_view_inherit_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.product_normal_form_view_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.product_template_only_form_view_mps
|
||||
msgid "Schedules"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_production_schedule__sequence
|
||||
msgid "Sequence"
|
||||
msgstr "Číselná řada"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Starting Inventory"
|
||||
msgstr "Počáteční zásoby"
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model,name:mrp_mps.model_stock_rule
|
||||
msgid "Stock Rule"
|
||||
msgstr "Pravidlo zásob"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "Suggested Replenishment"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.constraint,message:mrp_mps.constraint_mrp_production_schedule_warehouse_product_ref_uniq
|
||||
msgid "The combination of warehouse and product must be unique !"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "The confirmed demand, based on the confirmed sales orders."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The forecasted demand to fulfill the needs in components of the "
|
||||
"Manufacturing Orders."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "The forecasted demand. This value has to be entered manually."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "The forecasted quantity in stock at the beginning of the period."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "The forecasted quantity in stock at the end of the period."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/main.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The master schedule translates your sales and demand forecasts into a production and purchase planning for each component.\n"
|
||||
" It ensures everything gets scheduled on time, based on constraints such as: safety stock, production capacity, lead times.\n"
|
||||
" It's the perfect tool to support your S&OP meetings."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__max_to_replenish_qty
|
||||
msgid ""
|
||||
"The maximum replenishment you would like to launch for each period in the "
|
||||
"MPS. Note that if the demand is higher than that amount, the remaining "
|
||||
"quantity will be transferred to the next period automatically."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The quantity being replenished, based on the Requests for Quotation and the "
|
||||
"Manufacturing Orders."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The quantity to replenish through Purchase Orders or Manufacturing Orders."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__forecast_target_qty
|
||||
msgid ""
|
||||
"This is the minimum free stock you want to keep for that product at all "
|
||||
"times."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_mps.res_config_settings_view_form
|
||||
msgid "Time Range"
|
||||
msgstr "Časový rozsah"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/search/group_menu.xml:0
|
||||
#: model:ir.model.fields,field_description:mrp_mps.field_mrp_product_forecast__replenish_qty
|
||||
#, python-format
|
||||
msgid "To Replenish"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields,help:mrp_mps.field_mrp_production_schedule__min_to_replenish_qty
|
||||
msgid ""
|
||||
"Unless the demand is 0, Odoo will always at least replenish this quantity."
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: code:addons/mrp_mps/models/res_company.py:0
|
||||
#, python-format
|
||||
msgid "Week {week_num} ({start_date}-{end_date}/{month})"
|
||||
msgstr ""
|
||||
|
||||
#. module: mrp_mps
|
||||
#: model:ir.model.fields.selection,name:mrp_mps.selection__res_company__manufacturing_period__week
|
||||
msgid "Weekly"
|
||||
msgstr "Týdně"
|
||||
|
||||
#. module: mrp_mps
|
||||
#. openerp-web
|
||||
#: code:addons/mrp_mps/static/src/components/line.xml:0
|
||||
#, python-format
|
||||
msgid "by"
|
||||
msgstr "od"
|
||||