tryton 6.8.13__py3-none-any.whl → 6.8.14__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/common/common.py +10 -3
- tryton/common/datetime_.py +3 -1
- tryton/data/locale/bg/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/ca/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/cs/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/de/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/es/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/es_419/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/et/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/fa/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/fi/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/fr/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/hu/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/id/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/it/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/ja_JP/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/lo/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/lt/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/nl/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/pl/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/pt/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/ro/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/ru/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/sl/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/tr/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/uk/LC_MESSAGES/tryton.mo +0 -0
- tryton/data/locale/zh_CN/LC_MESSAGES/tryton.mo +0 -0
- tryton/gui/window/view_form/screen/screen.py +60 -36
- tryton/gui/window/view_form/view/form_gtk/char.py +5 -6
- tryton/gui/window/view_form/view/list_gtk/editabletree.py +2 -1
- tryton/gui/window/view_form/view/list_gtk/widget.py +21 -1
- tryton/gui/window/win_import.py +9 -4
- tryton/gui/window/wizard.py +2 -0
- tryton/jsonrpc.py +5 -1
- tryton/plugins/__init__.py +5 -3
- {tryton-6.8.13.dist-info → tryton-6.8.14.dist-info}/METADATA +1 -1
- {tryton-6.8.13.dist-info → tryton-6.8.14.dist-info}/RECORD +42 -42
- {tryton-6.8.13.data → tryton-6.8.14.data}/scripts/tryton +0 -0
- {tryton-6.8.13.dist-info → tryton-6.8.14.dist-info}/LICENSE +0 -0
- {tryton-6.8.13.dist-info → tryton-6.8.14.dist-info}/WHEEL +0 -0
- {tryton-6.8.13.dist-info → tryton-6.8.14.dist-info}/top_level.txt +0 -0
tryton/__init__.py
CHANGED
tryton/common/common.py
CHANGED
|
@@ -229,7 +229,7 @@ class ModelAccess(object):
|
|
|
229
229
|
self._models = rpc.execute('model', 'ir.model', 'list_models',
|
|
230
230
|
rpc.CONTEXT)
|
|
231
231
|
except TrytonServerError:
|
|
232
|
-
|
|
232
|
+
logger.error("Unable to get model list.")
|
|
233
233
|
|
|
234
234
|
def __getitem__(self, model):
|
|
235
235
|
if model in self._access:
|
|
@@ -243,7 +243,14 @@ class ModelAccess(object):
|
|
|
243
243
|
access = rpc.execute('model', 'ir.model.access', 'get_access',
|
|
244
244
|
self._models[to_load], rpc.CONTEXT)
|
|
245
245
|
except TrytonServerError:
|
|
246
|
-
access
|
|
246
|
+
logger.error("Unable to get access for %s.", model)
|
|
247
|
+
access = {
|
|
248
|
+
model: {
|
|
249
|
+
'read': True,
|
|
250
|
+
'write': False,
|
|
251
|
+
'create': False,
|
|
252
|
+
'delete': False},
|
|
253
|
+
}
|
|
247
254
|
self._access.update(access)
|
|
248
255
|
return self._access[model]
|
|
249
256
|
|
|
@@ -1260,7 +1267,7 @@ class RPCProgress(object):
|
|
|
1260
1267
|
|
|
1261
1268
|
def return_():
|
|
1262
1269
|
if self.exception:
|
|
1263
|
-
raise self.exception
|
|
1270
|
+
raise RPCException(self.exception)
|
|
1264
1271
|
else:
|
|
1265
1272
|
return self.res
|
|
1266
1273
|
|
tryton/common/datetime_.py
CHANGED
|
@@ -9,7 +9,9 @@ from gi.repository import Gdk, GObject, Gtk
|
|
|
9
9
|
|
|
10
10
|
from .common import IconFactory
|
|
11
11
|
|
|
12
|
-
__all__ = [
|
|
12
|
+
__all__ = [
|
|
13
|
+
'Date', 'CellRendererDate', 'Time', 'CellRendererTime', 'DateTime',
|
|
14
|
+
'date_parse']
|
|
13
15
|
|
|
14
16
|
_ = gettext.gettext
|
|
15
17
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -114,11 +114,10 @@ class Screen:
|
|
|
114
114
|
return child
|
|
115
115
|
|
|
116
116
|
# Remove first level Viewport and ScrolledWindow to fill the Vbox
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
]
|
|
121
|
-
remove_bin(widget)
|
|
117
|
+
remove_bin(self.context_screen.screen_container.viewport)
|
|
118
|
+
if self.context_screen.current_view:
|
|
119
|
+
remove_bin(
|
|
120
|
+
self.context_screen.current_view.widget.get_children()[0])
|
|
122
121
|
|
|
123
122
|
self.screen_container.filter_vbox.pack_start(
|
|
124
123
|
context_widget, expand=False, fill=True, padding=0)
|
|
@@ -515,7 +514,8 @@ class Screen:
|
|
|
515
514
|
self.group.destroy()
|
|
516
515
|
|
|
517
516
|
def default_row_activate(self):
|
|
518
|
-
if (self.current_view
|
|
517
|
+
if (self.current_view
|
|
518
|
+
and self.current_view.view_type == 'tree'
|
|
519
519
|
and int(self.current_view.attributes.get('keyword_open', 0))):
|
|
520
520
|
return Action.exec_keyword('tree_open', {
|
|
521
521
|
'model': self.model_name,
|
|
@@ -637,7 +637,7 @@ class Screen:
|
|
|
637
637
|
|
|
638
638
|
def new(self, default=True, rec_name=None):
|
|
639
639
|
previous_view = self.current_view
|
|
640
|
-
if self.current_view.view_type == 'calendar':
|
|
640
|
+
if self.current_view and self.current_view.view_type == 'calendar':
|
|
641
641
|
selected_date = self.current_view.get_selected_date()
|
|
642
642
|
if self.current_view and not self.current_view.creatable:
|
|
643
643
|
self.switch_view(creatable=True)
|
|
@@ -690,16 +690,19 @@ class Screen:
|
|
|
690
690
|
|
|
691
691
|
def save_current(self):
|
|
692
692
|
if not self.current_record:
|
|
693
|
-
if self.current_view
|
|
693
|
+
if (self.current_view
|
|
694
|
+
and self.current_view.view_type == 'tree'
|
|
695
|
+
and len(self.group)):
|
|
694
696
|
self.current_record = self.group[0]
|
|
695
697
|
else:
|
|
696
698
|
return True
|
|
697
|
-
self.current_view.set_value()
|
|
698
699
|
saved = False
|
|
699
700
|
record_id = None
|
|
700
|
-
|
|
701
|
+
if self.current_view:
|
|
702
|
+
self.current_view.set_value()
|
|
703
|
+
fields = self.current_view.get_fields()
|
|
701
704
|
path = self.current_record.get_path(self.group)
|
|
702
|
-
if self.current_view.view_type == 'tree':
|
|
705
|
+
if self.current_view and self.current_view.view_type == 'tree':
|
|
703
706
|
# False value must be not saved
|
|
704
707
|
saved = all((
|
|
705
708
|
x is not False and x >= 0
|
|
@@ -709,7 +712,7 @@ class Screen:
|
|
|
709
712
|
record_id = self.current_record.save(force_reload=True)
|
|
710
713
|
# False value must be not saved
|
|
711
714
|
saved = record_id is not False and record_id >= 0
|
|
712
|
-
|
|
715
|
+
elif self.current_view:
|
|
713
716
|
self.set_cursor()
|
|
714
717
|
self.current_view.display()
|
|
715
718
|
return False
|
|
@@ -737,17 +740,19 @@ class Screen:
|
|
|
737
740
|
def get(self):
|
|
738
741
|
if not self.current_record:
|
|
739
742
|
return None
|
|
740
|
-
self.current_view
|
|
743
|
+
if self.current_view:
|
|
744
|
+
self.current_view.set_value()
|
|
741
745
|
return self.current_record.get()
|
|
742
746
|
|
|
743
747
|
def get_on_change_value(self):
|
|
744
748
|
if not self.current_record:
|
|
745
749
|
return None
|
|
746
|
-
self.current_view
|
|
750
|
+
if self.current_view:
|
|
751
|
+
self.current_view.set_value()
|
|
747
752
|
return self.current_record.get_on_change_value()
|
|
748
753
|
|
|
749
754
|
def modified(self):
|
|
750
|
-
if self.current_view.view_type != 'tree':
|
|
755
|
+
if self.current_view and self.current_view.view_type != 'tree':
|
|
751
756
|
if self.current_record:
|
|
752
757
|
if self.current_record.modified or self.current_record.id < 0:
|
|
753
758
|
return True
|
|
@@ -755,7 +760,7 @@ class Screen:
|
|
|
755
760
|
for record in self.group:
|
|
756
761
|
if record.modified or record.id < 0:
|
|
757
762
|
return True
|
|
758
|
-
if self.current_view.modified:
|
|
763
|
+
if self.current_view and self.current_view.modified:
|
|
759
764
|
return True
|
|
760
765
|
return False
|
|
761
766
|
|
|
@@ -821,6 +826,8 @@ class Screen:
|
|
|
821
826
|
|
|
822
827
|
def set_tree_state(self):
|
|
823
828
|
view = self.current_view
|
|
829
|
+
if not view:
|
|
830
|
+
return
|
|
824
831
|
if view.view_type not in {'tree', 'form', 'list-form'}:
|
|
825
832
|
return
|
|
826
833
|
if id(view) in self.tree_states_done:
|
|
@@ -930,7 +937,8 @@ class Screen:
|
|
|
930
937
|
|
|
931
938
|
def load(self, ids, set_cursor=True, modified=False, position=-1):
|
|
932
939
|
self.group.load(ids, modified=modified, position=position)
|
|
933
|
-
self.current_view
|
|
940
|
+
if self.current_view:
|
|
941
|
+
self.current_view.reset()
|
|
934
942
|
if ids and self.current_view.view_type != 'calendar':
|
|
935
943
|
self.display(ids[0])
|
|
936
944
|
else:
|
|
@@ -950,7 +958,7 @@ class Screen:
|
|
|
950
958
|
self.current_record = self.group[0]
|
|
951
959
|
else:
|
|
952
960
|
self.current_record = None
|
|
953
|
-
if self.views:
|
|
961
|
+
if self.views and self.current_view:
|
|
954
962
|
self.search_active(self.current_view.view_type
|
|
955
963
|
in ('tree', 'graph', 'calendar'))
|
|
956
964
|
for view in self.views:
|
|
@@ -982,7 +990,8 @@ class Screen:
|
|
|
982
990
|
|
|
983
991
|
def _get_next_record(self, test=False):
|
|
984
992
|
view = self.current_view
|
|
985
|
-
if (view
|
|
993
|
+
if (view
|
|
994
|
+
and view.view_type in {'tree', 'form'}
|
|
986
995
|
and self.current_record
|
|
987
996
|
and self.current_record.group):
|
|
988
997
|
group = self.current_record.group
|
|
@@ -1010,12 +1019,14 @@ class Screen:
|
|
|
1010
1019
|
record = next
|
|
1011
1020
|
break
|
|
1012
1021
|
return record
|
|
1013
|
-
elif (view
|
|
1022
|
+
elif (view
|
|
1023
|
+
and view.view_type == 'list-form'
|
|
1024
|
+
and len(self.group)
|
|
1014
1025
|
and self.current_record in self.group):
|
|
1015
1026
|
idx = self.group.index(self.current_record)
|
|
1016
1027
|
if 0 <= idx < len(self.group) - 1:
|
|
1017
1028
|
return self.group[idx + 1]
|
|
1018
|
-
elif view.view_type == 'calendar':
|
|
1029
|
+
elif view and view.view_type == 'calendar':
|
|
1019
1030
|
record = self.current_record
|
|
1020
1031
|
goocalendar = view.widgets.get('goocalendar')
|
|
1021
1032
|
if goocalendar:
|
|
@@ -1049,15 +1060,18 @@ class Screen:
|
|
|
1049
1060
|
|
|
1050
1061
|
def display_next(self):
|
|
1051
1062
|
view = self.current_view
|
|
1052
|
-
view
|
|
1063
|
+
if view:
|
|
1064
|
+
view.set_value()
|
|
1053
1065
|
self.set_cursor(reset_view=False)
|
|
1054
1066
|
self.current_record = self._get_next_record()
|
|
1055
1067
|
self.set_cursor(reset_view=False)
|
|
1056
|
-
view
|
|
1068
|
+
if view:
|
|
1069
|
+
view.display()
|
|
1057
1070
|
|
|
1058
1071
|
def _get_prev_record(self, test=False):
|
|
1059
1072
|
view = self.current_view
|
|
1060
|
-
if (view
|
|
1073
|
+
if (view
|
|
1074
|
+
and view.view_type in {'tree', 'form'}
|
|
1061
1075
|
and self.current_record
|
|
1062
1076
|
and self.current_record.group):
|
|
1063
1077
|
group = self.current_record.group
|
|
@@ -1075,7 +1089,7 @@ class Screen:
|
|
|
1075
1089
|
if parent and record.model_name == parent.model_name:
|
|
1076
1090
|
record = parent
|
|
1077
1091
|
return record
|
|
1078
|
-
elif view.view_type == 'calendar':
|
|
1092
|
+
elif view and view.view_type == 'calendar':
|
|
1079
1093
|
record = self.current_record
|
|
1080
1094
|
goocalendar = view.widgets.get('goocalendar')
|
|
1081
1095
|
if goocalendar:
|
|
@@ -1100,7 +1114,9 @@ class Screen:
|
|
|
1100
1114
|
if prev_id >= 0:
|
|
1101
1115
|
return events[prev_id].record
|
|
1102
1116
|
break
|
|
1103
|
-
elif (view
|
|
1117
|
+
elif (view
|
|
1118
|
+
and view.view_type == 'list-form'
|
|
1119
|
+
and len(self.group)
|
|
1104
1120
|
and self.current_record in self.group):
|
|
1105
1121
|
idx = self.group.index(self.current_record)
|
|
1106
1122
|
if 0 < idx <= len(self.group) - 1:
|
|
@@ -1114,11 +1130,13 @@ class Screen:
|
|
|
1114
1130
|
|
|
1115
1131
|
def display_prev(self):
|
|
1116
1132
|
view = self.current_view
|
|
1117
|
-
view
|
|
1133
|
+
if view:
|
|
1134
|
+
view.set_value()
|
|
1118
1135
|
self.set_cursor(reset_view=False)
|
|
1119
1136
|
self.current_record = self._get_prev_record()
|
|
1120
1137
|
self.set_cursor(reset_view=False)
|
|
1121
|
-
view
|
|
1138
|
+
if view:
|
|
1139
|
+
view.display()
|
|
1122
1140
|
|
|
1123
1141
|
def invalid_message(self, record=None):
|
|
1124
1142
|
if record is None:
|
|
@@ -1191,7 +1209,7 @@ class Screen:
|
|
|
1191
1209
|
if not self.selected_records:
|
|
1192
1210
|
return []
|
|
1193
1211
|
|
|
1194
|
-
buttons = self.current_view.get_buttons()
|
|
1212
|
+
buttons = self.current_view.get_buttons() if self.current_view else []
|
|
1195
1213
|
|
|
1196
1214
|
for record in self.selected_records:
|
|
1197
1215
|
buttons = [b for b in buttons if is_active(record, b)]
|
|
@@ -1201,8 +1219,9 @@ class Screen:
|
|
|
1201
1219
|
|
|
1202
1220
|
def button(self, button):
|
|
1203
1221
|
'Execute button on the selected records'
|
|
1204
|
-
self.current_view
|
|
1205
|
-
|
|
1222
|
+
if self.current_view:
|
|
1223
|
+
self.current_view.set_value()
|
|
1224
|
+
fields = self.current_view.get_fields()
|
|
1206
1225
|
for record in self.selected_records:
|
|
1207
1226
|
domain = record.expr_eval(
|
|
1208
1227
|
button.get('states', {})).get('pre_validate', [])
|
|
@@ -1216,7 +1235,8 @@ class Screen:
|
|
|
1216
1235
|
if button.get('confirm', False) and not sur(button['confirm']):
|
|
1217
1236
|
return
|
|
1218
1237
|
if button.get('type', 'class') == 'class':
|
|
1219
|
-
|
|
1238
|
+
record_id = self.current_record.save(force_reload=False)
|
|
1239
|
+
if record_id is False or record_id < 0:
|
|
1220
1240
|
return
|
|
1221
1241
|
if button.get('type', 'class') == 'class':
|
|
1222
1242
|
self._button_class(button)
|
|
@@ -1247,6 +1267,7 @@ class Screen:
|
|
|
1247
1267
|
except RPCException:
|
|
1248
1268
|
action = None
|
|
1249
1269
|
self.reload(ids, written=True)
|
|
1270
|
+
self.record_saved()
|
|
1250
1271
|
if isinstance(action, str):
|
|
1251
1272
|
self.client_action(action)
|
|
1252
1273
|
elif action:
|
|
@@ -1283,7 +1304,9 @@ class Screen:
|
|
|
1283
1304
|
elif action.startswith('switch'):
|
|
1284
1305
|
self.switch_view(*action.split(None, 2)[1:])
|
|
1285
1306
|
elif action == 'reload':
|
|
1286
|
-
if (self.current_view
|
|
1307
|
+
if (self.current_view
|
|
1308
|
+
and self.current_view.view_type in [
|
|
1309
|
+
'tree', 'graph', 'calendar']
|
|
1287
1310
|
and not self.parent):
|
|
1288
1311
|
self.search_filter()
|
|
1289
1312
|
elif action == 'reload menu':
|
|
@@ -1313,7 +1336,7 @@ class Screen:
|
|
|
1313
1336
|
cls=JSONEncoder, separators=(',', ':'))))
|
|
1314
1337
|
path = [CONFIG['login.db'], 'model', self.model_name]
|
|
1315
1338
|
view_ids = [v.view_id for v in self.views] + self.view_ids
|
|
1316
|
-
if self.current_view.view_type != 'form':
|
|
1339
|
+
if self.current_view and self.current_view.view_type != 'form':
|
|
1317
1340
|
if self.search_value:
|
|
1318
1341
|
search_value = self.search_value
|
|
1319
1342
|
else:
|
|
@@ -1325,8 +1348,9 @@ class Screen:
|
|
|
1325
1348
|
separators=(',', ':'))))
|
|
1326
1349
|
elif self.current_record and self.current_record.id > -1:
|
|
1327
1350
|
path.append(str(self.current_record.id))
|
|
1328
|
-
|
|
1329
|
-
|
|
1351
|
+
if self.current_view:
|
|
1352
|
+
i = view_ids.index(self.current_view.view_id)
|
|
1353
|
+
view_ids = view_ids[i:] + view_ids[:i]
|
|
1330
1354
|
if view_ids:
|
|
1331
1355
|
query_string.append(('views', json.dumps(
|
|
1332
1356
|
view_ids, separators=(',', ':'))))
|
|
@@ -171,10 +171,9 @@ class Password(Char):
|
|
|
171
171
|
self.widget.pack_start(
|
|
172
172
|
self.visibility_checkbox, expand=False, fill=True, padding=0)
|
|
173
173
|
|
|
174
|
-
def _readonly_set(self, value):
|
|
175
|
-
super(Char, self)._readonly_set(value)
|
|
176
|
-
self.entry.set_editable(not value)
|
|
177
|
-
self.visibility_checkbox.props.visible = not value
|
|
178
|
-
|
|
179
174
|
def toggle_visibility(self, button):
|
|
180
|
-
|
|
175
|
+
if self.autocomplete:
|
|
176
|
+
entry = self.entry.get_child()
|
|
177
|
+
else:
|
|
178
|
+
entry = self.entry
|
|
179
|
+
entry.props.visibility = not self.entry.props.visibility
|
|
@@ -163,7 +163,8 @@ class EditableTreeView(TreeView):
|
|
|
163
163
|
for renderer in column.get_cells():
|
|
164
164
|
if renderer.props.editing:
|
|
165
165
|
widget = self.view.get_column_widget(column)
|
|
166
|
-
|
|
166
|
+
editable = widget.get_editable(renderer)
|
|
167
|
+
self.on_editing_done(editable, renderer)
|
|
167
168
|
return True
|
|
168
169
|
|
|
169
170
|
def on_keypressed(self, entry, event, renderer):
|
|
@@ -23,7 +23,8 @@ from tryton.common.cellrenderertext import (
|
|
|
23
23
|
CellRendererText, CellRendererTextCompletion)
|
|
24
24
|
from tryton.common.cellrenderertoggle import CellRendererToggle
|
|
25
25
|
from tryton.common.completion import get_completion, update_completion
|
|
26
|
-
from tryton.common.datetime_ import
|
|
26
|
+
from tryton.common.datetime_ import (
|
|
27
|
+
CellRendererDate, CellRendererTime, date_parse)
|
|
27
28
|
from tryton.common.domain_parser import quote
|
|
28
29
|
from tryton.common.selection import (
|
|
29
30
|
PopdownMixin, SelectionMixin, selection_shortcuts)
|
|
@@ -376,6 +377,14 @@ class GenericText(Cell):
|
|
|
376
377
|
editable.connect('remove-widget', remove)
|
|
377
378
|
return False
|
|
378
379
|
|
|
380
|
+
def get_editable(self, renderer):
|
|
381
|
+
if self.renderer == renderer:
|
|
382
|
+
return self.editable
|
|
383
|
+
for cell in self.prefixes + self.suffixes:
|
|
384
|
+
editable = cell.get_editable(renderer)
|
|
385
|
+
if editable:
|
|
386
|
+
return editable
|
|
387
|
+
|
|
379
388
|
|
|
380
389
|
class Char(GenericText):
|
|
381
390
|
|
|
@@ -493,6 +502,17 @@ class Date(GenericText):
|
|
|
493
502
|
else:
|
|
494
503
|
return ''
|
|
495
504
|
|
|
505
|
+
def value_from_text(self, record, text, callback=None):
|
|
506
|
+
if isinstance(text, str):
|
|
507
|
+
field = record[self.attrs['name']]
|
|
508
|
+
try:
|
|
509
|
+
# Use a datetime instance and rely on field to convert to the
|
|
510
|
+
# proper type
|
|
511
|
+
text = date_parse(text, self.get_format(record, field))
|
|
512
|
+
except (ValueError, OverflowError):
|
|
513
|
+
text = None
|
|
514
|
+
return super().value_from_text(record, text, callback=callback)
|
|
515
|
+
|
|
496
516
|
|
|
497
517
|
class Time(Date):
|
|
498
518
|
|
tryton/gui/window/win_import.py
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
# this repository contains the full copyright notices and license terms.
|
|
3
3
|
import base64
|
|
4
4
|
import csv
|
|
5
|
+
import datetime as dt
|
|
5
6
|
import gettext
|
|
6
7
|
import locale
|
|
7
8
|
from decimal import Decimal
|
|
@@ -10,7 +11,6 @@ from gi.repository import Gtk
|
|
|
10
11
|
|
|
11
12
|
import tryton.common as common
|
|
12
13
|
from tryton.common import RPCException, RPCExecute
|
|
13
|
-
from tryton.common.datetime_ import date_parse
|
|
14
14
|
from tryton.gui.window.win_csv import WinCSV
|
|
15
15
|
|
|
16
16
|
_ = gettext.gettext
|
|
@@ -211,13 +211,18 @@ class WinImport(WinCSV):
|
|
|
211
211
|
val = locale.atof(val)
|
|
212
212
|
elif type_ == 'numeric':
|
|
213
213
|
val = Decimal(locale.delocalize(val))
|
|
214
|
-
elif type_
|
|
215
|
-
val =
|
|
214
|
+
elif type_ == 'date':
|
|
215
|
+
val = dt.datetime.strptime(
|
|
216
|
+
val, common.date_format()).date()
|
|
217
|
+
elif type_ == 'datetime':
|
|
218
|
+
val = dt.datetime.strptime(
|
|
219
|
+
val, common.date_format() + ' %X')
|
|
216
220
|
elif type_ == 'binary':
|
|
217
221
|
val = base64.b64decode(val)
|
|
218
222
|
row.append(val)
|
|
219
223
|
data.append(row)
|
|
220
|
-
except (IOError, UnicodeDecodeError, csv.Error)
|
|
224
|
+
except (IOError, UnicodeDecodeError, csv.Error, ValueError) \
|
|
225
|
+
as exception:
|
|
221
226
|
common.warning(str(exception), _("Import failed"))
|
|
222
227
|
return
|
|
223
228
|
try:
|
tryton/gui/window/wizard.py
CHANGED
tryton/jsonrpc.py
CHANGED
|
@@ -138,7 +138,6 @@ class JSONUnmarshaller(object):
|
|
|
138
138
|
class Transport(xmlrpc.client.SafeTransport):
|
|
139
139
|
|
|
140
140
|
accept_gzip_encoding = True
|
|
141
|
-
encode_threshold = 1400 # common MTU
|
|
142
141
|
|
|
143
142
|
def __init__(
|
|
144
143
|
self, fingerprints=None, ca_certs=None, session=None):
|
|
@@ -241,6 +240,11 @@ class Transport(xmlrpc.client.SafeTransport):
|
|
|
241
240
|
self._connection[1].sock.settimeout(DEFAULT_TIMEOUT)
|
|
242
241
|
return self._connection[1]
|
|
243
242
|
|
|
243
|
+
@property
|
|
244
|
+
def encode_threshold(self):
|
|
245
|
+
if self.session:
|
|
246
|
+
return 1400 # common MTU
|
|
247
|
+
|
|
244
248
|
|
|
245
249
|
class ServerProxy(xmlrpc.client.ServerProxy):
|
|
246
250
|
__id = 0
|
tryton/plugins/__init__.py
CHANGED
|
@@ -24,9 +24,11 @@ def register():
|
|
|
24
24
|
imported = set()
|
|
25
25
|
for path in paths:
|
|
26
26
|
finder = importlib.machinery.FileFinder(
|
|
27
|
-
path,
|
|
28
|
-
|
|
29
|
-
importlib.machinery.SOURCE_SUFFIXES)
|
|
27
|
+
path,
|
|
28
|
+
(importlib.machinery.SourceFileLoader,
|
|
29
|
+
importlib.machinery.SOURCE_SUFFIXES),
|
|
30
|
+
(importlib.machinery.SourcelessFileLoader,
|
|
31
|
+
importlib.machinery.BYTECODE_SUFFIXES))
|
|
30
32
|
for plugin in os.listdir(path):
|
|
31
33
|
module = os.path.splitext(plugin)[0]
|
|
32
34
|
if (module.startswith('_') or module in imported):
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
tryton/__init__.py,sha256=
|
|
1
|
+
tryton/__init__.py,sha256=XrjGJG8RkIaZTzViiVkXveXWBJQnSLmNxeA4_jr0B24,1927
|
|
2
2
|
tryton/bus.py,sha256=GM9nRfPH1vP8X7KnHkLy2eT-KY-Lw37hdHgh-v_wl10,2874
|
|
3
3
|
tryton/client.py,sha256=-0NR6oaQClWFEUq22txsZvjwjUdMPMHv9iwDyT3fV5M,3157
|
|
4
4
|
tryton/config.py,sha256=4n1H2ahA3K4t2h7nN3TxL5DiOq7okcIWhyOePFBhh4c,7502
|
|
5
5
|
tryton/device_cookie.py,sha256=kI-iarn1aDoraf_2hWsKnJC3jWDOPKASCUT1aPzzROw,1879
|
|
6
6
|
tryton/exceptions.py,sha256=WpmVk0TZM21p4x4b4RcaCdgRLKhFrKnTqaEViBxD_ic,354
|
|
7
7
|
tryton/fingerprints.py,sha256=hFSbGF7M3jjbXogMpQ5UkHIYCtL9KZ92snoiq53VzWs,1388
|
|
8
|
-
tryton/jsonrpc.py,sha256=
|
|
8
|
+
tryton/jsonrpc.py,sha256=LQqNy073mLxl3KiQcPzRoJc-a7r37QRDopCYpuYam4E,13680
|
|
9
9
|
tryton/pyson.py,sha256=QA68NRQjsXlb9MDuovBEn6LjvtMBMEaylqU-tYpOoAo,21791
|
|
10
10
|
tryton/rpc.py,sha256=E7bJURveFpJDYo5G-NMBq0Ekh0i0LX7teh9WzrJo5zE,4903
|
|
11
11
|
tryton/translate.py,sha256=PsEtgM-WEd3nwiejGXtFdN3P6RJ2SYDMJ1VaFwKaqUE,6440
|
|
@@ -21,9 +21,9 @@ tryton/common/cellrendererfloat.py,sha256=4abrUZzDmbMjlmExLd8RN12IRqM8zGdmQiReYX
|
|
|
21
21
|
tryton/common/cellrendererinteger.py,sha256=ic3RO9G1YycJPUz0LDMDv6TlB0rX-5aa1iocDjdU0pw,1094
|
|
22
22
|
tryton/common/cellrenderertext.py,sha256=NN5p6mlZ3Oi1uEoCveYpQQQK7xqkvnP8lNcU9-5YdlU,881
|
|
23
23
|
tryton/common/cellrenderertoggle.py,sha256=a4adZY72Q4hpUlCS7ozG21-mYp-QiBWYZVdtYw0f9B8,288
|
|
24
|
-
tryton/common/common.py,sha256=
|
|
24
|
+
tryton/common/common.py,sha256=v5T_j8it8nD7vmaXQM_3tj-85Io61Dpzd-eVSSBPyV4,47121
|
|
25
25
|
tryton/common/completion.py,sha256=Zr-8XQtAEINdYr8edIDRTdwbJ63iw2XZrVk2bKLPSng,2743
|
|
26
|
-
tryton/common/datetime_.py,sha256=
|
|
26
|
+
tryton/common/datetime_.py,sha256=IoYt30e-vp3hZiAt-X6hWAyQxfc7R_c1b5Y1J2zpsNA,20394
|
|
27
27
|
tryton/common/domain_inversion.py,sha256=VBBcpY5MokPa56tSCF7GIXN3e9Lbi-0blRMQKtGq-Yk,17366
|
|
28
28
|
tryton/common/domain_parser.py,sha256=yAA1spOuPxQoA62hQmLRSCcSkmXbzQalGLuZSL5AE2Y,29157
|
|
29
29
|
tryton/common/entry_position.py,sha256=lKX3T8day_BQmpKRx7isuj-yieBKUqVmthZsfrtsu4M,281
|
|
@@ -37,55 +37,55 @@ tryton/common/selection.py,sha256=cSMnzpuj6F1e1uezQg3BHGWVcihgTztlfxgXKHAc0MQ,84
|
|
|
37
37
|
tryton/common/timedelta.py,sha256=z3EXjKUzssaYHNFhngUIcc2sVaeNUVp4urQjm3JFJUw,3180
|
|
38
38
|
tryton/common/underline.py,sha256=dZpz7m4s7siS024v_gvJ6kWmYZSkl3XnRrJeY2pWfqA,714
|
|
39
39
|
tryton/common/widget_style.py,sha256=YiS-FnCZm0Kesdw-vx9gWD7QKXMpasoUzHe-UPX2_e0,335
|
|
40
|
-
tryton/data/locale/bg/LC_MESSAGES/tryton.mo,sha256=
|
|
40
|
+
tryton/data/locale/bg/LC_MESSAGES/tryton.mo,sha256=RgNTe7p-pSYOly0Ov-mw51MqGGmTYi-p2-tE3f0uLSw,8847
|
|
41
41
|
tryton/data/locale/bg/LC_MESSAGES/tryton.po,sha256=tGNuH-5rKfbSC7IZt4Wp_S0so4t_kLBr49F10b3zego,21360
|
|
42
|
-
tryton/data/locale/ca/LC_MESSAGES/tryton.mo,sha256=
|
|
42
|
+
tryton/data/locale/ca/LC_MESSAGES/tryton.mo,sha256=kvtCDZe0qBKFEU7r4Wz51_vEBrfFEV2Aqr1sEQ8UIE8,18982
|
|
43
43
|
tryton/data/locale/ca/LC_MESSAGES/tryton.po,sha256=PClzRMIpc1tZjT_hutyry6gorjkHKDTWbfsWypQNBXA,20106
|
|
44
|
-
tryton/data/locale/cs/LC_MESSAGES/tryton.mo,sha256=
|
|
44
|
+
tryton/data/locale/cs/LC_MESSAGES/tryton.mo,sha256=HSuiECgnQcvCjawA8vCiqAu2YkBCbsQTpVhaFQNcEU4,4634
|
|
45
45
|
tryton/data/locale/cs/LC_MESSAGES/tryton.po,sha256=eE8rwqQt1u2CfrV_Y_MRh-dkhoiGBRDm2oVjbTRSHBk,17715
|
|
46
|
-
tryton/data/locale/de/LC_MESSAGES/tryton.mo,sha256=
|
|
46
|
+
tryton/data/locale/de/LC_MESSAGES/tryton.mo,sha256=nbxIoIJcMymosLLJMVG9ji4-Qp3XRvPFo71k9gLHlUg,19498
|
|
47
47
|
tryton/data/locale/de/LC_MESSAGES/tryton.po,sha256=WCzEJZit7I9EB_DzetELZgWb4XtkwaN5mce1Rq9Dc-A,20639
|
|
48
|
-
tryton/data/locale/es/LC_MESSAGES/tryton.mo,sha256=
|
|
48
|
+
tryton/data/locale/es/LC_MESSAGES/tryton.mo,sha256=CcROlan6JcKP-Oet8wuT4FIYqB2Y6lWLiOzIFitYokw,19256
|
|
49
49
|
tryton/data/locale/es/LC_MESSAGES/tryton.po,sha256=Ueijr_bSc3q82UWNydpL42c6vf-D3myguTCzG-r-R2o,20589
|
|
50
|
-
tryton/data/locale/es_419/LC_MESSAGES/tryton.mo,sha256=
|
|
50
|
+
tryton/data/locale/es_419/LC_MESSAGES/tryton.mo,sha256=X-mSg_RD_npecsRYJmJ6cmv13cB0jzf0rPxYROHL8So,7108
|
|
51
51
|
tryton/data/locale/es_419/LC_MESSAGES/tryton.po,sha256=8JzdqKZ_wqWli2qqkbddi8p2BPW4rjc2UqyM79aS9l0,15820
|
|
52
|
-
tryton/data/locale/et/LC_MESSAGES/tryton.mo,sha256=
|
|
52
|
+
tryton/data/locale/et/LC_MESSAGES/tryton.mo,sha256=Ruo7JP1SN-FLpBlyDt962daYeNOaPwIC6ziE_N2n-mg,13577
|
|
53
53
|
tryton/data/locale/et/LC_MESSAGES/tryton.po,sha256=JX4F3BMawEJS_sGkr_GaecwpRnA9MmNtairfWOJpnHs,18343
|
|
54
|
-
tryton/data/locale/fa/LC_MESSAGES/tryton.mo,sha256=
|
|
54
|
+
tryton/data/locale/fa/LC_MESSAGES/tryton.mo,sha256=FbZB6n99YxogaLwp05SHFn_abxboNua-uKH01pw0Y6I,16794
|
|
55
55
|
tryton/data/locale/fa/LC_MESSAGES/tryton.po,sha256=ulNxSAS3LQUavFBeogRXjKwvp8uECeUdG7Tc3On4V3E,22236
|
|
56
|
-
tryton/data/locale/fi/LC_MESSAGES/tryton.mo,sha256=
|
|
56
|
+
tryton/data/locale/fi/LC_MESSAGES/tryton.mo,sha256=K6eUAu_PlKwz1PUlCblPFcimoEIxmcqjg1swgU-gCeo,445
|
|
57
57
|
tryton/data/locale/fi/LC_MESSAGES/tryton.po,sha256=fqAmYdcSWUzdsHrDqlVYIyRNqrN83ZtP9eVBj1s0ul8,13490
|
|
58
|
-
tryton/data/locale/fr/LC_MESSAGES/tryton.mo,sha256=
|
|
58
|
+
tryton/data/locale/fr/LC_MESSAGES/tryton.mo,sha256=mUqubldCGkuwp8nJYp7t3t1uUOEwxXo7Ko2wAcgJDKw,19662
|
|
59
59
|
tryton/data/locale/fr/LC_MESSAGES/tryton.po,sha256=h5N5ZzzWrTlYfFBKNNy8M2YAeY91m9VYq7ZKnAvbn7M,20744
|
|
60
|
-
tryton/data/locale/hu/LC_MESSAGES/tryton.mo,sha256=
|
|
60
|
+
tryton/data/locale/hu/LC_MESSAGES/tryton.mo,sha256=AuVT-TaJZzItfp53GVGxhcUGo5xygeZEXFt1aZ6-QeU,17282
|
|
61
61
|
tryton/data/locale/hu/LC_MESSAGES/tryton.po,sha256=TjVlAqdRJHK6wbHuJshrHUrnRDwlxlRCBkIW6EVg3MA,20326
|
|
62
|
-
tryton/data/locale/id/LC_MESSAGES/tryton.mo,sha256=
|
|
62
|
+
tryton/data/locale/id/LC_MESSAGES/tryton.mo,sha256=XdzuK6H31v8YdgKSW6ZJ1bRYwRzBLuy4SrJimqTiQpY,6983
|
|
63
63
|
tryton/data/locale/id/LC_MESSAGES/tryton.po,sha256=HgRcpgwQyoTFA4iXxYdQGBgPg0AisVZlR14SbKtdFfU,15314
|
|
64
|
-
tryton/data/locale/it/LC_MESSAGES/tryton.mo,sha256=
|
|
64
|
+
tryton/data/locale/it/LC_MESSAGES/tryton.mo,sha256=d9Yzh3NJup_HcKQ9kvl4hNeDjV9niOTldUazWiK7bBA,15104
|
|
65
65
|
tryton/data/locale/it/LC_MESSAGES/tryton.po,sha256=SH8b14v9P1N0zgpT-p0oAdxioVYOwk81jx4mAGkUVSM,19228
|
|
66
|
-
tryton/data/locale/ja_JP/LC_MESSAGES/tryton.mo,sha256=
|
|
66
|
+
tryton/data/locale/ja_JP/LC_MESSAGES/tryton.mo,sha256=tugUtuIIzJmbcSmDXkqzmQjysLPvB6aPuN5h4tedtew,7061
|
|
67
67
|
tryton/data/locale/ja_JP/LC_MESSAGES/tryton.po,sha256=Ku2Rg_pOo3lzBZMzzSB-fsMMI6PGP-Gk6dF9zd8ktqQ,36736
|
|
68
|
-
tryton/data/locale/lo/LC_MESSAGES/tryton.mo,sha256=
|
|
68
|
+
tryton/data/locale/lo/LC_MESSAGES/tryton.mo,sha256=aSBzElvepVZhraq__-J0s1snXAhBo7audzD799vmyuY,18515
|
|
69
69
|
tryton/data/locale/lo/LC_MESSAGES/tryton.po,sha256=cajN9nB1ocxiyEHeZYAVHK9Ql5trVfLMogighHCKtZo,26787
|
|
70
|
-
tryton/data/locale/lt/LC_MESSAGES/tryton.mo,sha256=
|
|
70
|
+
tryton/data/locale/lt/LC_MESSAGES/tryton.mo,sha256=j9Q-WNvQq82pBNhpkTjurIZ99mSa6zcxg0lWkYBr-u0,16294
|
|
71
71
|
tryton/data/locale/lt/LC_MESSAGES/tryton.po,sha256=-yvXPbthkP1eJprhcvMvJVUkXX0AtqRvIXEfNfsTuy0,20304
|
|
72
|
-
tryton/data/locale/nl/LC_MESSAGES/tryton.mo,sha256=
|
|
72
|
+
tryton/data/locale/nl/LC_MESSAGES/tryton.mo,sha256=Ic9UdGuKRxITJ9kC6tdMxIvnbeA2dsHRyMm5O8NTWHM,18765
|
|
73
73
|
tryton/data/locale/nl/LC_MESSAGES/tryton.po,sha256=jm84cV_7W9_hJNt1-Lwi7dC58yjx9ETqHwVN0uWMPLU,19815
|
|
74
|
-
tryton/data/locale/pl/LC_MESSAGES/tryton.mo,sha256=
|
|
74
|
+
tryton/data/locale/pl/LC_MESSAGES/tryton.mo,sha256=LzGHUpIIiWN0dhVyNuWDbmwx8_JaNHbzKHmnqATXCU0,17623
|
|
75
75
|
tryton/data/locale/pl/LC_MESSAGES/tryton.po,sha256=DDlqZixoj-HqQCO7FyWquFvOmdn9L-Rl9II1sedDDP0,19642
|
|
76
|
-
tryton/data/locale/pt/LC_MESSAGES/tryton.mo,sha256=
|
|
76
|
+
tryton/data/locale/pt/LC_MESSAGES/tryton.mo,sha256=Q5rACbOYSusFaEVm9IfIG67qkvJPfYmJiDIvgLgJwxk,15182
|
|
77
77
|
tryton/data/locale/pt/LC_MESSAGES/tryton.po,sha256=_tBAwMfdSObxoqXSeT0CWa4GAUUkDe5cQWn2sssGq5s,19825
|
|
78
|
-
tryton/data/locale/ro/LC_MESSAGES/tryton.mo,sha256=
|
|
78
|
+
tryton/data/locale/ro/LC_MESSAGES/tryton.mo,sha256=OoF3nR2q0-DnPKPFQjiaCsOzn6LNy1WRUnTOqzuOUnw,19191
|
|
79
79
|
tryton/data/locale/ro/LC_MESSAGES/tryton.po,sha256=Hlj-6QZKFQqIUMcsfGd0Cija4Jb6yLCJWJsP9H7ZTq8,20017
|
|
80
|
-
tryton/data/locale/ru/LC_MESSAGES/tryton.mo,sha256=
|
|
80
|
+
tryton/data/locale/ru/LC_MESSAGES/tryton.mo,sha256=R6WxTEuZ1Z0IGdU2T9oMqhfqedeWvJwbz_K0l_3j08k,10072
|
|
81
81
|
tryton/data/locale/ru/LC_MESSAGES/tryton.po,sha256=xPTUBIkCaGbT7c64CpqlqrKr0nwNRrfSaE8TrQJC3Ew,21758
|
|
82
|
-
tryton/data/locale/sl/LC_MESSAGES/tryton.mo,sha256
|
|
82
|
+
tryton/data/locale/sl/LC_MESSAGES/tryton.mo,sha256=U7DPwxuZaul8ZruIYGToB4ZDfVhqV1alX76vAE-SNRU,12234
|
|
83
83
|
tryton/data/locale/sl/LC_MESSAGES/tryton.po,sha256=t2sSLSKKnyriPWb4h4pDFLO8tkmQz3WDPmqsQ3PykEs,18742
|
|
84
|
-
tryton/data/locale/tr/LC_MESSAGES/tryton.mo,sha256=
|
|
84
|
+
tryton/data/locale/tr/LC_MESSAGES/tryton.mo,sha256=ZElAioBqRe0wqjY2yjJrVNTelWCNrNKRF15ehIgoEVU,1696
|
|
85
85
|
tryton/data/locale/tr/LC_MESSAGES/tryton.po,sha256=c94qhq_EaUCwV1WDp7t655lA8qbzOPjhaO-V5pWvg9I,14027
|
|
86
|
-
tryton/data/locale/uk/LC_MESSAGES/tryton.mo,sha256=
|
|
86
|
+
tryton/data/locale/uk/LC_MESSAGES/tryton.mo,sha256=HLrz6DO1X-MkkmDeIrWu2hFq-iOlq0B7JwDRgWltB7g,23076
|
|
87
87
|
tryton/data/locale/uk/LC_MESSAGES/tryton.po,sha256=olkYVSS02-noBcKsRWC2Hncxp9ribiMyPivCM7j5y2Y,24539
|
|
88
|
-
tryton/data/locale/zh_CN/LC_MESSAGES/tryton.mo,sha256=
|
|
88
|
+
tryton/data/locale/zh_CN/LC_MESSAGES/tryton.mo,sha256=naFydNDLtC1js-X8WXd-HHG3-yw0UX5sJzaDoFp6BmQ,16690
|
|
89
89
|
tryton/data/locale/zh_CN/LC_MESSAGES/tryton.po,sha256=dH4TYpU3hoWSQ4ycfqCjCwuTlfph_cn8H4foPfizsnY,18708
|
|
90
90
|
tryton/data/pixmaps/tryton/tryton-add.svg,sha256=qIk1ewmNjSHqD8vRqCv0kT7v6hbHnY0KNU-M1jrxb4s,185
|
|
91
91
|
tryton/data/pixmaps/tryton/tryton-archive.svg,sha256=9MO4wyp1SyYh3-FuoIrHhKb-9ywyql2bExsnz0XX9x0,382
|
|
@@ -168,10 +168,10 @@ tryton/gui/window/tabcontent.py,sha256=qoXGBBDgMFKFzH4oe9i9fo7CaoUBenoahHyqdVwAW
|
|
|
168
168
|
tryton/gui/window/win_csv.py,sha256=Gg60p7eOi46M9REZ-J1HFeYqd4j8WaLzQH_vsrl58Sk,13513
|
|
169
169
|
tryton/gui/window/win_export.py,sha256=Hc4Gz-8Ct1VLyMX6CNJrMyYgFBnopdBSkwEY8SfXo1w,20797
|
|
170
170
|
tryton/gui/window/win_form.py,sha256=QHJuqqHuv-knoOp-eLj-5RSLNaIiWi9VUXRiryJQGis,19636
|
|
171
|
-
tryton/gui/window/win_import.py,sha256=
|
|
171
|
+
tryton/gui/window/win_import.py,sha256=YEuQ31sNZYemH6BLS5x6JKDf3jM7Asrm5lfdAE2_ZpU,9604
|
|
172
172
|
tryton/gui/window/win_search.py,sha256=QUwdtG-HUHDOPZ8wYQ9bM1f41TvPZn2P65W8vDJJdHE,5975
|
|
173
173
|
tryton/gui/window/window.py,sha256=NhyZHGswMYWHS-dODfaCItpZY5UYh_7LSu8N5SOFY2w,1736
|
|
174
|
-
tryton/gui/window/wizard.py,sha256=
|
|
174
|
+
tryton/gui/window/wizard.py,sha256=kLEZRXZIvEzb2c9ZubVsgEzSKbZHAGjrGhGNusKlGNE,14932
|
|
175
175
|
tryton/gui/window/view_board/__init__.py,sha256=JtgcMnloYRl68R56JrV31Y3T7bzN2AyO0tXxRr__t68,201
|
|
176
176
|
tryton/gui/window/view_board/action.py,sha256=9KNVIiL-_KHN_fLe0XLbFp_CrO5hvWCCPno1hRJUJwM,5502
|
|
177
177
|
tryton/gui/window/view_board/view_board.py,sha256=fTZyDUImgkq31mlPr7_nt9QfsMT3gzOC5t8fK2XuQNU,1810
|
|
@@ -181,7 +181,7 @@ tryton/gui/window/view_form/model/field.py,sha256=NeA9pbgqlNfJDnVnONru6ldxIO8wiq
|
|
|
181
181
|
tryton/gui/window/view_form/model/group.py,sha256=WE_6dE2Id9EfajHg2kr-ahRcCI87hjSu-XdM_qtUg4s,18228
|
|
182
182
|
tryton/gui/window/view_form/model/record.py,sha256=sOCE8zXM2aYFSLGDLpf3Iwb5ya0FC5LXcU91VjWyR3Q,25885
|
|
183
183
|
tryton/gui/window/view_form/screen/__init__.py,sha256=ws2wA8SsyQoZDbIjDpQF9-zP-BiLgVQyUSDVq8pvovo,191
|
|
184
|
-
tryton/gui/window/view_form/screen/screen.py,sha256=
|
|
184
|
+
tryton/gui/window/view_form/screen/screen.py,sha256=aYqdWsy2_3DCcxbE06K815Bsa7L3iS-qNedQXpFyc6A,53554
|
|
185
185
|
tryton/gui/window/view_form/view/__init__.py,sha256=HtIDfj_3gBdiOJbDfUzRpgYgSRN0GyVkUTIbSUmJL70,4386
|
|
186
186
|
tryton/gui/window/view_form/view/calendar_.py,sha256=F6yl-xO5AsgsSVZwd4BU2izXaeBdpuGh21KLXftrr9g,6078
|
|
187
187
|
tryton/gui/window/view_form/view/form.py,sha256=s0bXJ_fB5xLV0L-IdGbfxf24_Sm_ioSNzpRGBHwuPn4,21657
|
|
@@ -196,7 +196,7 @@ tryton/gui/window/view_form/view/calendar_gtk/toolbar.py,sha256=008OgPAbgvXv_T_x
|
|
|
196
196
|
tryton/gui/window/view_form/view/form_gtk/__init__.py,sha256=-5OdjQ8rEVZvZALCT9wzhMNZf0ryRVaqgbkVmHOqmqE,144
|
|
197
197
|
tryton/gui/window/view_form/view/form_gtk/binary.py,sha256=4-ApASO702uKdVONGIi7bFcgLqYsq_33Oz73GQDaANc,8330
|
|
198
198
|
tryton/gui/window/view_form/view/form_gtk/calendar_.py,sha256=mggAieaRkRuqCrC28zjshzQX7qMxv-0zNxXVaWN-pic,5951
|
|
199
|
-
tryton/gui/window/view_form/view/form_gtk/char.py,sha256=
|
|
199
|
+
tryton/gui/window/view_form/view/form_gtk/char.py,sha256=A2BVZ42dA5CinFJvYULcvaqO5xG29aWjC61xRFAr494,6525
|
|
200
200
|
tryton/gui/window/view_form/view/form_gtk/checkbox.py,sha256=FEVsM3zTX1-SpHLK7Hr0IF0dW8B_nVkL8SX9KabZZgs,1229
|
|
201
201
|
tryton/gui/window/view_form/view/form_gtk/dictionary.py,sha256=2FaOFqdWR_HJ05fuszOx_sws4T6YG92PdlRIivdws_E,22073
|
|
202
202
|
tryton/gui/window/view_form/view/form_gtk/document.py,sha256=sqD3O1BvL61ygFLhxEi8B4qj0vF_cS6fMSYUjg7CsZA,3340
|
|
@@ -224,18 +224,18 @@ tryton/gui/window/view_form/view/graph_gtk/graph.py,sha256=zCFeogLu7Ke-Vz0YIIFxK
|
|
|
224
224
|
tryton/gui/window/view_form/view/graph_gtk/line.py,sha256=H784XziWn-XYDaUYi_PFfeP5JFu_MseJyepXoaQcehY,10359
|
|
225
225
|
tryton/gui/window/view_form/view/graph_gtk/pie.py,sha256=4WpqqdX4Ft8axhpnDOcWuKdrWpnMbEoWxRQMCq4TAm4,7241
|
|
226
226
|
tryton/gui/window/view_form/view/list_gtk/__init__.py,sha256=-5OdjQ8rEVZvZALCT9wzhMNZf0ryRVaqgbkVmHOqmqE,144
|
|
227
|
-
tryton/gui/window/view_form/view/list_gtk/editabletree.py,sha256=
|
|
228
|
-
tryton/gui/window/view_form/view/list_gtk/widget.py,sha256=
|
|
229
|
-
tryton/plugins/__init__.py,sha256=
|
|
227
|
+
tryton/gui/window/view_form/view/list_gtk/editabletree.py,sha256=fyzglyc1aqY9dN1vFJeJ2fGLYWg3JeoHhnk-mJt7xWc,13835
|
|
228
|
+
tryton/gui/window/view_form/view/list_gtk/widget.py,sha256=koarW3YaXaDK0Nn7YV0-qKrPKFoMZ1gnBjjkkPw2Jvw,50648
|
|
229
|
+
tryton/plugins/__init__.py,sha256=BIzasnQxTfBYrc5dh0HUW5OQV8mQ5Qs8XihgquPljBo,1449
|
|
230
230
|
tryton/plugins/translation/__init__.py,sha256=HcuSMS0KOPfiWZmqo4gUSqBAknirLtmsnU48bw8JWu8,697
|
|
231
231
|
tryton/tests/__init__.py,sha256=-5OdjQ8rEVZvZALCT9wzhMNZf0ryRVaqgbkVmHOqmqE,144
|
|
232
232
|
tryton/tests/test_common.py,sha256=NDGLS7TzVX5D6GHLfQtb_Yxp2fIyQd6cBNfhjrHlvVQ,1428
|
|
233
233
|
tryton/tests/test_common_domain_parser.py,sha256=JCnLgowMgwEMTwmltB303DyPSu7yTvFeeqlkQDlavhk,43500
|
|
234
234
|
tryton/tests/test_common_selection.py,sha256=1vvP7qfgCaqBhgADqbcCOI5ChXZghKSr7kzP99CGqtA,649
|
|
235
235
|
tryton/tests/test_common_timedelta.py,sha256=IHzNvZrEimLDxTWLNk5K8VG4KZYaxxGGOdoOB8VefQw,3538
|
|
236
|
-
tryton-6.8.
|
|
237
|
-
tryton-6.8.
|
|
238
|
-
tryton-6.8.
|
|
239
|
-
tryton-6.8.
|
|
240
|
-
tryton-6.8.
|
|
241
|
-
tryton-6.8.
|
|
236
|
+
tryton-6.8.14.data/scripts/tryton,sha256=k9_pB_17p8MbVMKi7xE_ntdTstXlNNVCIEpT4punQs0,2041
|
|
237
|
+
tryton-6.8.14.dist-info/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
|
|
238
|
+
tryton-6.8.14.dist-info/METADATA,sha256=BmlJ0QdmXtZl0pdn988-rm2WlKpwyW7TW_I-B8585r0,2433
|
|
239
|
+
tryton-6.8.14.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
240
|
+
tryton-6.8.14.dist-info/top_level.txt,sha256=7l30wN15bNakY7BPm2TEO79_XxvmYpkJONTGR_dTTOU,7
|
|
241
|
+
tryton-6.8.14.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|