tryton 7.0.7__py3-none-any.whl → 7.4.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of tryton might be problematic. Click here for more details.
- tryton/__init__.py +1 -1
- tryton/cache.py +34 -0
- tryton/common/common.py +149 -73
- tryton/common/completion.py +2 -2
- tryton/common/datetime_.py +3 -1
- tryton/common/domain_inversion.py +2 -1
- tryton/common/domain_parser.py +22 -11
- tryton/common/popup_menu.py +1 -1
- tryton/common/selection.py +6 -3
- tryton/common/tempfile.py +34 -0
- tryton/config.py +4 -5
- tryton/data/locale/bg/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/bg/LC_MESSAGES/tryton.po +69 -20
- tryton/data/locale/ca/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/ca/LC_MESSAGES/tryton.po +70 -25
- tryton/data/locale/cs/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/cs/LC_MESSAGES/tryton.po +68 -21
- tryton/data/locale/de/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/de/LC_MESSAGES/tryton.po +71 -26
- tryton/data/locale/es/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/es/LC_MESSAGES/tryton.po +68 -23
- tryton/data/locale/es_419/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/es_419/LC_MESSAGES/tryton.po +72 -22
- tryton/data/locale/et/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/et/LC_MESSAGES/tryton.po +73 -23
- tryton/data/locale/fa/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/fa/LC_MESSAGES/tryton.po +74 -25
- tryton/data/locale/fi/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/fi/LC_MESSAGES/tryton.po +63 -20
- tryton/data/locale/fr/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/fr/LC_MESSAGES/tryton.po +73 -28
- tryton/data/locale/hu/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/hu/LC_MESSAGES/tryton.po +75 -23
- tryton/data/locale/id/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/id/LC_MESSAGES/tryton.po +72 -23
- tryton/data/locale/it/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/it/LC_MESSAGES/tryton.po +73 -24
- tryton/data/locale/ja_JP/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/lo/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/lo/LC_MESSAGES/tryton.po +74 -25
- tryton/data/locale/lt/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/lt/LC_MESSAGES/tryton.po +73 -23
- tryton/data/locale/nl/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/nl/LC_MESSAGES/tryton.po +72 -27
- tryton/data/locale/pl/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/pl/LC_MESSAGES/tryton.po +113 -78
- tryton/data/locale/pt/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/pt/LC_MESSAGES/tryton.po +73 -24
- tryton/data/locale/ro/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/ro/LC_MESSAGES/tryton.po +87 -36
- tryton/data/locale/ru/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/ru/LC_MESSAGES/tryton.po +72 -25
- tryton/data/locale/sl/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/sl/LC_MESSAGES/tryton.po +77 -26
- tryton/data/locale/tr/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/tr/LC_MESSAGES/tryton.po +64 -20
- tryton/data/locale/uk/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/uk/LC_MESSAGES/tryton.po +75 -23
- tryton/data/locale/zh_CN/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/zh_CN/LC_MESSAGES/tryton.po +76 -24
- tryton/device_cookie.py +1 -1
- tryton/gui/main.py +14 -12
- tryton/gui/window/about.py +1 -1
- tryton/gui/window/dblogin.py +2 -2
- tryton/gui/window/email_.py +2 -2
- tryton/gui/window/form.py +10 -5
- tryton/gui/window/log.py +24 -2
- tryton/gui/window/tabcontent.py +2 -2
- tryton/gui/window/view_form/model/field.py +84 -34
- tryton/gui/window/view_form/model/group.py +7 -2
- tryton/gui/window/view_form/model/record.py +70 -31
- tryton/gui/window/view_form/screen/screen.py +98 -47
- tryton/gui/window/view_form/view/calendar_gtk/calendar_.py +15 -9
- tryton/gui/window/view_form/view/form.py +6 -12
- tryton/gui/window/view_form/view/form_gtk/char.py +5 -6
- tryton/gui/window/view_form/view/form_gtk/dictionary.py +49 -29
- tryton/gui/window/view_form/view/form_gtk/document.py +15 -10
- tryton/gui/window/view_form/view/form_gtk/many2many.py +49 -7
- tryton/gui/window/view_form/view/form_gtk/many2one.py +21 -13
- tryton/gui/window/view_form/view/form_gtk/multiselection.py +15 -5
- tryton/gui/window/view_form/view/form_gtk/one2many.py +42 -10
- tryton/gui/window/view_form/view/form_gtk/state_widget.py +6 -2
- tryton/gui/window/view_form/view/form_gtk/url.py +8 -4
- tryton/gui/window/view_form/view/graph_gtk/graph.py +3 -1
- tryton/gui/window/view_form/view/list.py +116 -48
- tryton/gui/window/view_form/view/list_gtk/editabletree.py +2 -1
- tryton/gui/window/view_form/view/list_gtk/widget.py +58 -23
- tryton/gui/window/view_form/view/screen_container.py +3 -5
- tryton/gui/window/win_csv.py +6 -12
- tryton/gui/window/win_export.py +49 -26
- tryton/gui/window/win_form.py +9 -7
- tryton/gui/window/win_import.py +45 -15
- tryton/gui/window/wizard.py +13 -10
- tryton/jsonrpc.py +75 -34
- tryton/plugins/__init__.py +5 -3
- tryton/pyson.py +57 -6
- tryton/rpc.py +18 -0
- tryton/tests/test_common_domain_parser.py +31 -2
- tryton/translate.py +5 -2
- {tryton-7.0.7.data → tryton-7.4.4.data}/scripts/tryton +8 -7
- {tryton-7.0.7.dist-info → tryton-7.4.4.dist-info}/METADATA +6 -6
- {tryton-7.0.7.dist-info → tryton-7.4.4.dist-info}/RECORD +105 -103
- {tryton-7.0.7.dist-info → tryton-7.4.4.dist-info}/WHEEL +1 -1
- {tryton-7.0.7.dist-info → tryton-7.4.4.dist-info}/LICENSE +0 -0
- {tryton-7.0.7.dist-info → tryton-7.4.4.dist-info}/top_level.txt +0 -0
|
@@ -26,6 +26,10 @@ msgstr "вкажіть ім'я сервера:порт"
|
|
|
26
26
|
msgid "disable thread usage"
|
|
27
27
|
msgstr ""
|
|
28
28
|
|
|
29
|
+
#, python-format
|
|
30
|
+
msgid "Invalid response id (%s) expected %s"
|
|
31
|
+
msgstr ""
|
|
32
|
+
|
|
29
33
|
#, python-format
|
|
30
34
|
msgid "Unable to set locale %s"
|
|
31
35
|
msgstr "Неможливо встановити локалізацію %s"
|
|
@@ -76,7 +80,8 @@ msgstr "Ні"
|
|
|
76
80
|
msgid "Yes"
|
|
77
81
|
msgstr "Так"
|
|
78
82
|
|
|
79
|
-
|
|
83
|
+
#, fuzzy
|
|
84
|
+
msgid "Concurrency Warning"
|
|
80
85
|
msgstr "Виняток одночасного доступу"
|
|
81
86
|
|
|
82
87
|
msgid "This record has been modified while you were editing it."
|
|
@@ -107,6 +112,9 @@ msgstr "Закрити"
|
|
|
107
112
|
msgid "Application Error"
|
|
108
113
|
msgstr "Помилка програми"
|
|
109
114
|
|
|
115
|
+
msgid "Details"
|
|
116
|
+
msgstr ""
|
|
117
|
+
|
|
110
118
|
msgid "Report Bug"
|
|
111
119
|
msgstr "Повідомити про помилку"
|
|
112
120
|
|
|
@@ -123,21 +131,35 @@ msgstr "Доступна нова версія!"
|
|
|
123
131
|
msgid "Download"
|
|
124
132
|
msgstr "Завантажити"
|
|
125
133
|
|
|
134
|
+
msgid "Concurrency Exception"
|
|
135
|
+
msgstr "Виняток одночасного доступу"
|
|
136
|
+
|
|
126
137
|
#, fuzzy
|
|
127
138
|
msgid "Could not get a session."
|
|
128
139
|
msgstr "Не вдалося підключитися до сервера."
|
|
129
140
|
|
|
141
|
+
#, fuzzy, python-format
|
|
142
|
+
msgid "Error: \"%s\". Try again later."
|
|
143
|
+
msgstr "Помилка: \"%s\". Повторіть спробу пізніше."
|
|
144
|
+
|
|
130
145
|
msgid "Too many requests. Try again later."
|
|
131
146
|
msgstr "Дуже багато запитів. Спробуйте ще раз пізніше."
|
|
132
147
|
|
|
133
|
-
#, fuzzy
|
|
134
|
-
msgid "Not found."
|
|
135
|
-
msgstr "Нічого не знайдено."
|
|
136
|
-
|
|
137
148
|
#, fuzzy
|
|
138
149
|
msgid "Not Found."
|
|
139
150
|
msgstr "Нічого не знайдено."
|
|
140
151
|
|
|
152
|
+
msgid "Reset forgotten password"
|
|
153
|
+
msgstr ""
|
|
154
|
+
|
|
155
|
+
msgid "Send you an email to reset your password."
|
|
156
|
+
msgstr ""
|
|
157
|
+
|
|
158
|
+
msgid ""
|
|
159
|
+
"A request to reset your password has been sent.\n"
|
|
160
|
+
"Please check your mailbox."
|
|
161
|
+
msgstr ""
|
|
162
|
+
|
|
141
163
|
msgid "..."
|
|
142
164
|
msgstr "..."
|
|
143
165
|
|
|
@@ -218,7 +240,8 @@ msgstr "Звіт..."
|
|
|
218
240
|
msgid "Print..."
|
|
219
241
|
msgstr "Друк..."
|
|
220
242
|
|
|
221
|
-
|
|
243
|
+
#, fuzzy
|
|
244
|
+
msgid "Email..."
|
|
222
245
|
msgstr "Ел.пошта..."
|
|
223
246
|
|
|
224
247
|
msgid "Bold"
|
|
@@ -330,12 +353,6 @@ msgstr "Довідка"
|
|
|
330
353
|
msgid "No result found."
|
|
331
354
|
msgstr "Нічого не знайдено."
|
|
332
355
|
|
|
333
|
-
msgid "Favorites"
|
|
334
|
-
msgstr "Вибране"
|
|
335
|
-
|
|
336
|
-
msgid "Manage..."
|
|
337
|
-
msgstr "Керування..."
|
|
338
|
-
|
|
339
356
|
msgid "Action"
|
|
340
357
|
msgstr "Дія"
|
|
341
358
|
|
|
@@ -570,6 +587,9 @@ msgstr "Підключення до сервера Tryton"
|
|
|
570
587
|
msgid "Profile:"
|
|
571
588
|
msgstr "Профіль:"
|
|
572
589
|
|
|
590
|
+
msgid "Manage..."
|
|
591
|
+
msgstr "Керування..."
|
|
592
|
+
|
|
573
593
|
msgid "Host / Database information"
|
|
574
594
|
msgstr "Сервер / База даних"
|
|
575
595
|
|
|
@@ -579,8 +599,8 @@ msgstr "Ім'я користувача:"
|
|
|
579
599
|
msgid "Unable to complete email entry"
|
|
580
600
|
msgstr "Не вдалося відправити ел.лист"
|
|
581
601
|
|
|
582
|
-
#, python-format
|
|
583
|
-
msgid "
|
|
602
|
+
#, fuzzy, python-format
|
|
603
|
+
msgid "Email %s"
|
|
584
604
|
msgstr "Ел.лист %s"
|
|
585
605
|
|
|
586
606
|
msgid "To:"
|
|
@@ -716,6 +736,12 @@ msgstr "Модель:"
|
|
|
716
736
|
msgid "ID:"
|
|
717
737
|
msgstr "ID:"
|
|
718
738
|
|
|
739
|
+
msgid "Module:"
|
|
740
|
+
msgstr ""
|
|
741
|
+
|
|
742
|
+
msgid "XML ID:"
|
|
743
|
+
msgstr ""
|
|
744
|
+
|
|
719
745
|
msgid "Created by:"
|
|
720
746
|
msgstr "Ким створено:"
|
|
721
747
|
|
|
@@ -822,10 +848,12 @@ msgstr "_Звіт..."
|
|
|
822
848
|
msgid "_Print..."
|
|
823
849
|
msgstr "_Друк..."
|
|
824
850
|
|
|
825
|
-
|
|
851
|
+
#, fuzzy
|
|
852
|
+
msgid "_Email..."
|
|
826
853
|
msgstr "_Ел.пошта..."
|
|
827
854
|
|
|
828
|
-
|
|
855
|
+
#, fuzzy
|
|
856
|
+
msgid "Send an email using the record"
|
|
829
857
|
msgstr "Надіслати ел.лист, використовуючи запис"
|
|
830
858
|
|
|
831
859
|
msgid "_Export Data..."
|
|
@@ -877,6 +905,9 @@ msgstr "Ім'я поля"
|
|
|
877
905
|
msgid "CSV Export: %s"
|
|
878
906
|
msgstr "Експорт CSV: %s"
|
|
879
907
|
|
|
908
|
+
msgid "Open"
|
|
909
|
+
msgstr "Відкрити"
|
|
910
|
+
|
|
880
911
|
msgid "_Save Export"
|
|
881
912
|
msgstr "_Зберегти експорт"
|
|
882
913
|
|
|
@@ -892,12 +923,6 @@ msgstr "<b>Попередньо визначені експорти</b>"
|
|
|
892
923
|
msgid "Name"
|
|
893
924
|
msgstr "Ім'я"
|
|
894
925
|
|
|
895
|
-
msgid "Open"
|
|
896
|
-
msgstr "Відкрити"
|
|
897
|
-
|
|
898
|
-
msgid "Save"
|
|
899
|
-
msgstr "Зберегти"
|
|
900
|
-
|
|
901
926
|
msgid "Listed Records"
|
|
902
927
|
msgstr "Записи списку"
|
|
903
928
|
|
|
@@ -956,6 +981,9 @@ msgstr ""
|
|
|
956
981
|
msgid "Add and New"
|
|
957
982
|
msgstr "Додати значення"
|
|
958
983
|
|
|
984
|
+
msgid "Save"
|
|
985
|
+
msgstr "Зберегти"
|
|
986
|
+
|
|
959
987
|
msgid "Add"
|
|
960
988
|
msgstr "Додати"
|
|
961
989
|
|
|
@@ -981,6 +1009,10 @@ msgstr "Відновити вибраний запис <Ins>"
|
|
|
981
1009
|
msgid "CSV Import: %s"
|
|
982
1010
|
msgstr "Імпорт CSV: %s"
|
|
983
1011
|
|
|
1012
|
+
#, fuzzy
|
|
1013
|
+
msgid "Import"
|
|
1014
|
+
msgstr "Звіт"
|
|
1015
|
+
|
|
984
1016
|
msgid "_Auto-Detect"
|
|
985
1017
|
msgstr "_Автовизначення"
|
|
986
1018
|
|
|
@@ -1090,7 +1122,19 @@ msgstr "Розмір зображення завеликий."
|
|
|
1090
1122
|
msgid "Copy"
|
|
1091
1123
|
msgstr "Копіювати"
|
|
1092
1124
|
|
|
1093
|
-
|
|
1125
|
+
#, fuzzy
|
|
1126
|
+
msgid "Copy Row"
|
|
1127
|
+
msgstr "_Копіювати URL"
|
|
1128
|
+
|
|
1129
|
+
#, fuzzy
|
|
1130
|
+
msgid "Copy Rows"
|
|
1131
|
+
msgstr "_Копіювати URL"
|
|
1132
|
+
|
|
1133
|
+
msgid "Copy Column"
|
|
1134
|
+
msgstr ""
|
|
1135
|
+
|
|
1136
|
+
#, fuzzy
|
|
1137
|
+
msgid "Paste Rows"
|
|
1094
1138
|
msgstr "Вставити"
|
|
1095
1139
|
|
|
1096
1140
|
msgid ".."
|
|
@@ -1173,6 +1217,10 @@ msgstr "Додати існуючий запис"
|
|
|
1173
1217
|
msgid "Remove selected record"
|
|
1174
1218
|
msgstr "Видалити вибраний запис"
|
|
1175
1219
|
|
|
1220
|
+
#, fuzzy
|
|
1221
|
+
msgid "Restore selected record"
|
|
1222
|
+
msgstr "Видалити вибраний запис"
|
|
1223
|
+
|
|
1176
1224
|
msgid "Open the record <F2>"
|
|
1177
1225
|
msgstr "Відкрити запис <F2>"
|
|
1178
1226
|
|
|
@@ -1188,6 +1236,10 @@ msgstr "Редагувати вибраний запис"
|
|
|
1188
1236
|
msgid "Delete selected record"
|
|
1189
1237
|
msgstr "Видалити вибраний запис"
|
|
1190
1238
|
|
|
1239
|
+
#, fuzzy
|
|
1240
|
+
msgid "Undelete selected record"
|
|
1241
|
+
msgstr "Видалити вибраний запис"
|
|
1242
|
+
|
|
1191
1243
|
#, python-format
|
|
1192
1244
|
msgid "%s%%"
|
|
1193
1245
|
msgstr "%s%%"
|
|
Binary file
|
|
@@ -29,6 +29,10 @@ msgstr "设置服务器主机名:端口号"
|
|
|
29
29
|
msgid "disable thread usage"
|
|
30
30
|
msgstr "禁用线程"
|
|
31
31
|
|
|
32
|
+
#, python-format
|
|
33
|
+
msgid "Invalid response id (%s) expected %s"
|
|
34
|
+
msgstr ""
|
|
35
|
+
|
|
32
36
|
#, python-format
|
|
33
37
|
msgid "Unable to set locale %s"
|
|
34
38
|
msgstr "无法设置 locale %s"
|
|
@@ -79,7 +83,8 @@ msgstr "否"
|
|
|
79
83
|
msgid "Yes"
|
|
80
84
|
msgstr "是"
|
|
81
85
|
|
|
82
|
-
|
|
86
|
+
#, fuzzy
|
|
87
|
+
msgid "Concurrency Warning"
|
|
83
88
|
msgstr "并行操作异常"
|
|
84
89
|
|
|
85
90
|
msgid "This record has been modified while you were editing it."
|
|
@@ -110,6 +115,9 @@ msgstr "关闭"
|
|
|
110
115
|
msgid "Application Error"
|
|
111
116
|
msgstr "程序错误"
|
|
112
117
|
|
|
118
|
+
msgid "Details"
|
|
119
|
+
msgstr ""
|
|
120
|
+
|
|
113
121
|
msgid "Report Bug"
|
|
114
122
|
msgstr "报告Bug"
|
|
115
123
|
|
|
@@ -126,18 +134,33 @@ msgstr "有新版本可用!"
|
|
|
126
134
|
msgid "Download"
|
|
127
135
|
msgstr "下载"
|
|
128
136
|
|
|
137
|
+
msgid "Concurrency Exception"
|
|
138
|
+
msgstr "并行操作异常"
|
|
139
|
+
|
|
129
140
|
msgid "Could not get a session."
|
|
130
141
|
msgstr "无法获取会话。"
|
|
131
142
|
|
|
143
|
+
#, fuzzy, python-format
|
|
144
|
+
msgid "Error: \"%s\". Try again later."
|
|
145
|
+
msgstr "错误:“%s”。请稍后重试。"
|
|
146
|
+
|
|
132
147
|
msgid "Too many requests. Try again later."
|
|
133
148
|
msgstr "请求太多,请稍后重试."
|
|
134
149
|
|
|
135
|
-
msgid "Not found."
|
|
136
|
-
msgstr "无符合条件的数据."
|
|
137
|
-
|
|
138
150
|
msgid "Not Found."
|
|
139
151
|
msgstr "无符合条件的数据."
|
|
140
152
|
|
|
153
|
+
msgid "Reset forgotten password"
|
|
154
|
+
msgstr ""
|
|
155
|
+
|
|
156
|
+
msgid "Send you an email to reset your password."
|
|
157
|
+
msgstr ""
|
|
158
|
+
|
|
159
|
+
msgid ""
|
|
160
|
+
"A request to reset your password has been sent.\n"
|
|
161
|
+
"Please check your mailbox."
|
|
162
|
+
msgstr ""
|
|
163
|
+
|
|
141
164
|
msgid "..."
|
|
142
165
|
msgstr "..."
|
|
143
166
|
|
|
@@ -217,8 +240,8 @@ msgstr "报告..."
|
|
|
217
240
|
msgid "Print..."
|
|
218
241
|
msgstr "打印..."
|
|
219
242
|
|
|
220
|
-
msgid "
|
|
221
|
-
msgstr "
|
|
243
|
+
msgid "Email..."
|
|
244
|
+
msgstr "电子邮件(_E)..."
|
|
222
245
|
|
|
223
246
|
msgid "Bold"
|
|
224
247
|
msgstr "粗体"
|
|
@@ -328,12 +351,6 @@ msgstr "帮助"
|
|
|
328
351
|
msgid "No result found."
|
|
329
352
|
msgstr "无符合条件的数据."
|
|
330
353
|
|
|
331
|
-
msgid "Favorites"
|
|
332
|
-
msgstr "收藏(_V)"
|
|
333
|
-
|
|
334
|
-
msgid "Manage..."
|
|
335
|
-
msgstr "管理..."
|
|
336
|
-
|
|
337
354
|
msgid "Action"
|
|
338
355
|
msgstr "操作"
|
|
339
356
|
|
|
@@ -564,6 +581,9 @@ msgstr "连接 Tryton 服务器"
|
|
|
564
581
|
msgid "Profile:"
|
|
565
582
|
msgstr "配置:"
|
|
566
583
|
|
|
584
|
+
msgid "Manage..."
|
|
585
|
+
msgstr "管理..."
|
|
586
|
+
|
|
567
587
|
msgid "Host / Database information"
|
|
568
588
|
msgstr "主机/数据库信息"
|
|
569
589
|
|
|
@@ -573,8 +593,8 @@ msgstr "用户名:"
|
|
|
573
593
|
msgid "Unable to complete email entry"
|
|
574
594
|
msgstr "无法完成电子邮件输入"
|
|
575
595
|
|
|
576
|
-
#, python-format
|
|
577
|
-
msgid "
|
|
596
|
+
#, fuzzy, python-format
|
|
597
|
+
msgid "Email %s"
|
|
578
598
|
msgstr "电子邮件 %s"
|
|
579
599
|
|
|
580
600
|
msgid "To:"
|
|
@@ -710,6 +730,12 @@ msgstr "模型:"
|
|
|
710
730
|
msgid "ID:"
|
|
711
731
|
msgstr "标识:"
|
|
712
732
|
|
|
733
|
+
msgid "Module:"
|
|
734
|
+
msgstr ""
|
|
735
|
+
|
|
736
|
+
msgid "XML ID:"
|
|
737
|
+
msgstr ""
|
|
738
|
+
|
|
713
739
|
msgid "Created by:"
|
|
714
740
|
msgstr "创建者:"
|
|
715
741
|
|
|
@@ -816,10 +842,12 @@ msgstr "报告(_R)..."
|
|
|
816
842
|
msgid "_Print..."
|
|
817
843
|
msgstr "打印(_P)..."
|
|
818
844
|
|
|
819
|
-
|
|
820
|
-
|
|
845
|
+
#, fuzzy
|
|
846
|
+
msgid "_Email..."
|
|
847
|
+
msgstr "电子邮件(_E)..."
|
|
821
848
|
|
|
822
|
-
|
|
849
|
+
#, fuzzy
|
|
850
|
+
msgid "Send an email using the record"
|
|
823
851
|
msgstr "使用当前记录发送电子邮件"
|
|
824
852
|
|
|
825
853
|
msgid "_Export Data..."
|
|
@@ -871,6 +899,9 @@ msgstr "字段名"
|
|
|
871
899
|
msgid "CSV Export: %s"
|
|
872
900
|
msgstr "CSV导出:%s"
|
|
873
901
|
|
|
902
|
+
msgid "Open"
|
|
903
|
+
msgstr "打开"
|
|
904
|
+
|
|
874
905
|
msgid "_Save Export"
|
|
875
906
|
msgstr "保存导出设置(_S)"
|
|
876
907
|
|
|
@@ -886,12 +917,6 @@ msgstr "<b>预定义导出设置</b>"
|
|
|
886
917
|
msgid "Name"
|
|
887
918
|
msgstr "名称"
|
|
888
919
|
|
|
889
|
-
msgid "Open"
|
|
890
|
-
msgstr "打开"
|
|
891
|
-
|
|
892
|
-
msgid "Save"
|
|
893
|
-
msgstr "保存"
|
|
894
|
-
|
|
895
920
|
msgid "Listed Records"
|
|
896
921
|
msgstr "已列出记录"
|
|
897
922
|
|
|
@@ -949,6 +974,9 @@ msgstr "保存和新建"
|
|
|
949
974
|
msgid "Add and New"
|
|
950
975
|
msgstr "添加和新建"
|
|
951
976
|
|
|
977
|
+
msgid "Save"
|
|
978
|
+
msgstr "保存"
|
|
979
|
+
|
|
952
980
|
msgid "Add"
|
|
953
981
|
msgstr "添加"
|
|
954
982
|
|
|
@@ -974,6 +1002,10 @@ msgstr "已选记录取消删除 <Ins>"
|
|
|
974
1002
|
msgid "CSV Import: %s"
|
|
975
1003
|
msgstr "CSV导入: %s"
|
|
976
1004
|
|
|
1005
|
+
#, fuzzy
|
|
1006
|
+
msgid "Import"
|
|
1007
|
+
msgstr "报告(_R)"
|
|
1008
|
+
|
|
977
1009
|
msgid "_Auto-Detect"
|
|
978
1010
|
msgstr "自动设置(_A)"
|
|
979
1011
|
|
|
@@ -1083,7 +1115,19 @@ msgstr "图片尺寸过大."
|
|
|
1083
1115
|
msgid "Copy"
|
|
1084
1116
|
msgstr "复制"
|
|
1085
1117
|
|
|
1086
|
-
|
|
1118
|
+
#, fuzzy
|
|
1119
|
+
msgid "Copy Row"
|
|
1120
|
+
msgstr "复制(_C)URL"
|
|
1121
|
+
|
|
1122
|
+
#, fuzzy
|
|
1123
|
+
msgid "Copy Rows"
|
|
1124
|
+
msgstr "复制(_C)URL"
|
|
1125
|
+
|
|
1126
|
+
msgid "Copy Column"
|
|
1127
|
+
msgstr ""
|
|
1128
|
+
|
|
1129
|
+
#, fuzzy
|
|
1130
|
+
msgid "Paste Rows"
|
|
1087
1131
|
msgstr "粘贴"
|
|
1088
1132
|
|
|
1089
1133
|
msgid ".."
|
|
@@ -1165,6 +1209,10 @@ msgstr "添加已存在记录"
|
|
|
1165
1209
|
msgid "Remove selected record"
|
|
1166
1210
|
msgstr "删除所选记录"
|
|
1167
1211
|
|
|
1212
|
+
#, fuzzy
|
|
1213
|
+
msgid "Restore selected record"
|
|
1214
|
+
msgstr "删除所选记录"
|
|
1215
|
+
|
|
1168
1216
|
msgid "Open the record <F2>"
|
|
1169
1217
|
msgstr "打开记录 <F2>"
|
|
1170
1218
|
|
|
@@ -1180,6 +1228,10 @@ msgstr "编辑所选记录<F2>"
|
|
|
1180
1228
|
msgid "Delete selected record"
|
|
1181
1229
|
msgstr "删除所选记录"
|
|
1182
1230
|
|
|
1231
|
+
#, fuzzy
|
|
1232
|
+
msgid "Undelete selected record"
|
|
1233
|
+
msgstr "删除所选记录"
|
|
1234
|
+
|
|
1183
1235
|
#, python-format
|
|
1184
1236
|
msgid "%s%%"
|
|
1185
1237
|
msgstr "%s%%"
|
tryton/device_cookie.py
CHANGED
tryton/gui/main.py
CHANGED
|
@@ -401,7 +401,8 @@ class Main(Gtk.Application):
|
|
|
401
401
|
|
|
402
402
|
RPCExecute('model', 'ir.model', 'global_search', search_text,
|
|
403
403
|
CONFIG['client.limit'], self.menu_screen.model_name,
|
|
404
|
-
context=self.menu_screen.context, callback=set_result
|
|
404
|
+
context=self.menu_screen.context, callback=set_result,
|
|
405
|
+
process_exception=False)
|
|
405
406
|
return False
|
|
406
407
|
|
|
407
408
|
def changed(widget):
|
|
@@ -462,25 +463,16 @@ class Main(Gtk.Application):
|
|
|
462
463
|
'id': id_,
|
|
463
464
|
})
|
|
464
465
|
|
|
465
|
-
def _manage_favorites(widget):
|
|
466
|
-
Window.create(self.menu_screen.model_name + '.favorite',
|
|
467
|
-
mode=['tree', 'form'],
|
|
468
|
-
name=_("Favorites"))
|
|
469
466
|
try:
|
|
470
467
|
favorites = RPCExecute('model',
|
|
471
468
|
self.menu_screen.model_name + '.favorite', 'get',
|
|
472
469
|
process_exception=False)
|
|
473
|
-
except
|
|
470
|
+
except RPCException:
|
|
474
471
|
return False
|
|
475
472
|
for id_, name, icon in favorites:
|
|
476
473
|
menuitem = Gtk.MenuItem(label=name)
|
|
477
474
|
menuitem.connect('activate', _action_favorite, id_)
|
|
478
475
|
self.menu_favorite.add(menuitem)
|
|
479
|
-
self.menu_favorite.add(Gtk.SeparatorMenuItem())
|
|
480
|
-
manage_favorites = Gtk.MenuItem(label=_("Manage..."),
|
|
481
|
-
use_underline=True)
|
|
482
|
-
manage_favorites.connect('activate', _manage_favorites)
|
|
483
|
-
self.menu_favorite.add(manage_favorites)
|
|
484
476
|
self.menu_favorite.show_all()
|
|
485
477
|
|
|
486
478
|
def favorite_unset(self):
|
|
@@ -771,6 +763,9 @@ class Main(Gtk.Application):
|
|
|
771
763
|
expand=True, fill=True, padding=0)
|
|
772
764
|
treeview = screen.current_view.treeview
|
|
773
765
|
treeview.set_headers_visible(False)
|
|
766
|
+
for col in treeview.get_columns():
|
|
767
|
+
if col._type in {'selection', 'optional', 'drag'}:
|
|
768
|
+
col.set_visible(False)
|
|
774
769
|
|
|
775
770
|
# Favorite column
|
|
776
771
|
column = Gtk.TreeViewColumn()
|
|
@@ -863,7 +858,14 @@ class Main(Gtk.Application):
|
|
|
863
858
|
halign=Gtk.Align.START)
|
|
864
859
|
self.tooltips.set_tip(label, page.name)
|
|
865
860
|
self.tooltips.enable()
|
|
866
|
-
|
|
861
|
+
|
|
862
|
+
def remove_book_middle_click(widget, event):
|
|
863
|
+
if event.button == 2:
|
|
864
|
+
return self._sig_remove_book(widget, page.widget)
|
|
865
|
+
eventbox = Gtk.EventBox()
|
|
866
|
+
eventbox.connect('button-press-event', remove_book_middle_click)
|
|
867
|
+
eventbox.add(label)
|
|
868
|
+
hbox.pack_start(eventbox, expand=True, fill=True, padding=0)
|
|
867
869
|
|
|
868
870
|
button = Gtk.Button()
|
|
869
871
|
button.set_relief(Gtk.ReliefStyle.NONE)
|
tryton/gui/window/about.py
CHANGED
tryton/gui/window/dblogin.py
CHANGED
|
@@ -7,8 +7,8 @@ import logging
|
|
|
7
7
|
import os
|
|
8
8
|
import re
|
|
9
9
|
import shutil
|
|
10
|
-
import tempfile
|
|
11
10
|
import threading
|
|
11
|
+
from tempfile import NamedTemporaryFile
|
|
12
12
|
|
|
13
13
|
from gi.repository import GLib, GObject, Gtk
|
|
14
14
|
|
|
@@ -501,7 +501,7 @@ class DBLogin(object):
|
|
|
501
501
|
# reset self.profiles as parsing errors may leave wrong data in
|
|
502
502
|
# the parser
|
|
503
503
|
self.profiles = configparser.ConfigParser()
|
|
504
|
-
with
|
|
504
|
+
with NamedTemporaryFile(
|
|
505
505
|
delete=False, prefix='profiles_', suffix='.cfg',
|
|
506
506
|
dir=config_dir) as temp_file:
|
|
507
507
|
temp_name = temp_file.name
|
tryton/gui/window/email_.py
CHANGED
|
@@ -74,7 +74,7 @@ class EmailEntry(Gtk.Entry):
|
|
|
74
74
|
RPCExecute(
|
|
75
75
|
'model', 'ir.email', 'complete', text, CONFIG['client.limit'],
|
|
76
76
|
process_exception=False, callback=callback)
|
|
77
|
-
except
|
|
77
|
+
except RPCException:
|
|
78
78
|
logger.warning(
|
|
79
79
|
_("Unable to complete email entry"), exc_info=True)
|
|
80
80
|
return False
|
|
@@ -106,7 +106,7 @@ class Email(NoModal):
|
|
|
106
106
|
self.dialog.set_default_size(*self.default_size())
|
|
107
107
|
self.dialog.connect('response', self.response)
|
|
108
108
|
|
|
109
|
-
self.dialog.set_title(_('
|
|
109
|
+
self.dialog.set_title(_('Email %s') % name)
|
|
110
110
|
|
|
111
111
|
grid = Gtk.Grid(
|
|
112
112
|
column_spacing=3, row_spacing=3,
|
tryton/gui/window/form.py
CHANGED
|
@@ -5,7 +5,6 @@ import csv
|
|
|
5
5
|
import gettext
|
|
6
6
|
import locale
|
|
7
7
|
import os
|
|
8
|
-
import tempfile
|
|
9
8
|
from itertools import zip_longest
|
|
10
9
|
|
|
11
10
|
from gi.repository import Gdk, GLib, Gtk
|
|
@@ -13,7 +12,7 @@ from gi.repository import Gdk, GLib, Gtk
|
|
|
13
12
|
import tryton.common as common
|
|
14
13
|
from tryton import plugins
|
|
15
14
|
from tryton.action import Action
|
|
16
|
-
from tryton.common import RPCException, RPCExecute, sur, sur_3b
|
|
15
|
+
from tryton.common import RPCException, RPCExecute, sur, sur_3b, tempfile
|
|
17
16
|
from tryton.common.common import selection as selection_
|
|
18
17
|
from tryton.common.popup_menu import popup
|
|
19
18
|
from tryton.common.underline import set_underline
|
|
@@ -66,7 +65,8 @@ class Form(TabContent):
|
|
|
66
65
|
if isinstance(res_id, int):
|
|
67
66
|
res_id = [res_id]
|
|
68
67
|
self.screen.load(res_id)
|
|
69
|
-
|
|
68
|
+
if res_id:
|
|
69
|
+
self.screen.current_record = self.screen.group.get(res_id[0])
|
|
70
70
|
self.screen.display()
|
|
71
71
|
else:
|
|
72
72
|
if self.screen.current_view.view_type == 'form':
|
|
@@ -105,7 +105,9 @@ class Form(TabContent):
|
|
|
105
105
|
def compare(self, model, attributes):
|
|
106
106
|
if not attributes:
|
|
107
107
|
return False
|
|
108
|
-
return (
|
|
108
|
+
return (
|
|
109
|
+
self.screen.view_index == 0
|
|
110
|
+
and self.model == model
|
|
109
111
|
and self.res_id == attributes.get('res_id')
|
|
110
112
|
and self.attributes.get('domain') == attributes.get('domain')
|
|
111
113
|
and self.attributes.get('view_ids') == attributes.get('view_ids')
|
|
@@ -577,6 +579,7 @@ class Form(TabContent):
|
|
|
577
579
|
name = str(position) if position else '_'
|
|
578
580
|
selected = len(self.screen.selected_records)
|
|
579
581
|
view_type = self.screen.current_view.view_type
|
|
582
|
+
next_view_type = self.screen.next_view_type
|
|
580
583
|
has_views = self.screen.number_of_views > 1
|
|
581
584
|
if selected > 1:
|
|
582
585
|
name += '#%i' % selected
|
|
@@ -592,7 +595,9 @@ class Form(TabContent):
|
|
|
592
595
|
for b in self.screen.get_buttons())
|
|
593
596
|
set_sensitive(button_id, bool(position) and can_be_sensitive)
|
|
594
597
|
set_sensitive(
|
|
595
|
-
'switch',
|
|
598
|
+
'switch',
|
|
599
|
+
(position or view_type == 'form' or next_view_type != 'form')
|
|
600
|
+
and has_views)
|
|
596
601
|
set_sensitive('remove', self.screen.deletable)
|
|
597
602
|
set_sensitive('previous', self.screen.has_prev())
|
|
598
603
|
set_sensitive('next', self.screen.has_next())
|
tryton/gui/window/log.py
CHANGED
|
@@ -24,7 +24,8 @@ class Log(WinForm):
|
|
|
24
24
|
log, = RPCExecute(
|
|
25
25
|
'model', record.model_name, 'read', [record.id],
|
|
26
26
|
['create_uid.rec_name', 'create_date',
|
|
27
|
-
'write_uid.rec_name', 'write_date'
|
|
27
|
+
'write_uid.rec_name', 'write_date',
|
|
28
|
+
'xml_id'], context=context)
|
|
28
29
|
except RPCException:
|
|
29
30
|
return
|
|
30
31
|
|
|
@@ -53,11 +54,32 @@ class Log(WinForm):
|
|
|
53
54
|
label_id.set_mnemonic_widget(entry_id)
|
|
54
55
|
grid.attach(label_id, 2, 1, 1, 1)
|
|
55
56
|
|
|
57
|
+
if log.get('xml_id'):
|
|
58
|
+
module, xml_id = log['xml_id'].split('.', 1)
|
|
59
|
+
|
|
60
|
+
entry_module = Gtk.Entry(editable=False)
|
|
61
|
+
entry_module.set_text(module)
|
|
62
|
+
grid.attach(entry_module, 1, 2, 1, 1)
|
|
63
|
+
label_module = Gtk.Label(
|
|
64
|
+
label=set_underline(_("Module:")),
|
|
65
|
+
use_underline=True, halign=Gtk.Align.END)
|
|
66
|
+
label_module.set_mnemonic_widget(entry_module)
|
|
67
|
+
grid.attach(label_module, 0, 2, 1, 1)
|
|
68
|
+
|
|
69
|
+
entry_xml_id = Gtk.Entry(editable=False)
|
|
70
|
+
entry_xml_id.set_text(xml_id)
|
|
71
|
+
grid.attach(entry_xml_id, 3, 2, 1, 1)
|
|
72
|
+
label_xml_id = Gtk.Label(
|
|
73
|
+
label=set_underline(_("XML ID:")),
|
|
74
|
+
use_underline=True, halign=Gtk.Align.END)
|
|
75
|
+
label_xml_id.set_mnemonic_widget(entry_xml_id)
|
|
76
|
+
grid.attach(label_xml_id, 2, 2, 1, 1)
|
|
77
|
+
|
|
56
78
|
for i, (user, user_label, date, date_label) in enumerate([
|
|
57
79
|
('create_uid.', _("Created by:"),
|
|
58
80
|
'create_date', _("Created at:")),
|
|
59
81
|
('write_uid.', _("Last Modified by:"),
|
|
60
|
-
'write_date', _("Last Modified at:"))],
|
|
82
|
+
'write_date', _("Last Modified at:"))], 3):
|
|
61
83
|
entry_user = Gtk.Entry(editable=False, width_chars=50)
|
|
62
84
|
user = log.get(user)
|
|
63
85
|
if user:
|
tryton/gui/window/tabcontent.py
CHANGED
|
@@ -141,8 +141,8 @@ class TabContent(InfoBar):
|
|
|
141
141
|
accel_path='<tryton>/Form/Print'),
|
|
142
142
|
ToolbarItem(
|
|
143
143
|
id='email',
|
|
144
|
-
label=_("
|
|
145
|
-
tooltip=_("Send an
|
|
144
|
+
label=_("_Email..."),
|
|
145
|
+
tooltip=_("Send an email using the record"),
|
|
146
146
|
icon_name='tryton-email',
|
|
147
147
|
accel_path='<tryton>/Form/Email'),
|
|
148
148
|
None,
|