tryton 7.2.2__py3-none-any.whl → 7.2.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.

Files changed (39) hide show
  1. tryton/__init__.py +1 -1
  2. tryton/common/tempfile.py +1 -1
  3. tryton/data/locale/bg/LC_MESSAGES/tryton.mo +0 -0
  4. tryton/data/locale/ca/LC_MESSAGES/tryton.mo +0 -0
  5. tryton/data/locale/cs/LC_MESSAGES/tryton.mo +0 -0
  6. tryton/data/locale/de/LC_MESSAGES/tryton.mo +0 -0
  7. tryton/data/locale/es/LC_MESSAGES/tryton.mo +0 -0
  8. tryton/data/locale/es_419/LC_MESSAGES/tryton.mo +0 -0
  9. tryton/data/locale/et/LC_MESSAGES/tryton.mo +0 -0
  10. tryton/data/locale/fa/LC_MESSAGES/tryton.mo +0 -0
  11. tryton/data/locale/fi/LC_MESSAGES/tryton.mo +0 -0
  12. tryton/data/locale/fr/LC_MESSAGES/tryton.mo +0 -0
  13. tryton/data/locale/hu/LC_MESSAGES/tryton.mo +0 -0
  14. tryton/data/locale/id/LC_MESSAGES/tryton.mo +0 -0
  15. tryton/data/locale/it/LC_MESSAGES/tryton.mo +0 -0
  16. tryton/data/locale/ja_JP/LC_MESSAGES/tryton.mo +0 -0
  17. tryton/data/locale/lo/LC_MESSAGES/tryton.mo +0 -0
  18. tryton/data/locale/lt/LC_MESSAGES/tryton.mo +0 -0
  19. tryton/data/locale/nl/LC_MESSAGES/tryton.mo +0 -0
  20. tryton/data/locale/pl/LC_MESSAGES/tryton.mo +0 -0
  21. tryton/data/locale/pt/LC_MESSAGES/tryton.mo +0 -0
  22. tryton/data/locale/ro/LC_MESSAGES/tryton.mo +0 -0
  23. tryton/data/locale/ru/LC_MESSAGES/tryton.mo +0 -0
  24. tryton/data/locale/sl/LC_MESSAGES/tryton.mo +0 -0
  25. tryton/data/locale/tr/LC_MESSAGES/tryton.mo +0 -0
  26. tryton/data/locale/uk/LC_MESSAGES/tryton.mo +0 -0
  27. tryton/data/locale/zh_CN/LC_MESSAGES/tryton.mo +0 -0
  28. tryton/gui/window/view_form/model/field.py +50 -20
  29. tryton/gui/window/view_form/model/record.py +3 -1
  30. tryton/gui/window/view_form/view/calendar_gtk/calendar_.py +15 -9
  31. tryton/gui/window/view_form/view/form_gtk/dictionary.py +5 -3
  32. tryton/gui/window/view_form/view/form_gtk/document.py +9 -10
  33. tryton/gui/window/win_form.py +8 -6
  34. {tryton-7.2.2.data → tryton-7.2.4.data}/scripts/tryton +2 -1
  35. {tryton-7.2.2.dist-info → tryton-7.2.4.dist-info}/METADATA +1 -1
  36. {tryton-7.2.2.dist-info → tryton-7.2.4.dist-info}/RECORD +39 -39
  37. {tryton-7.2.2.dist-info → tryton-7.2.4.dist-info}/WHEEL +1 -1
  38. {tryton-7.2.2.dist-info → tryton-7.2.4.dist-info}/LICENSE +0 -0
  39. {tryton-7.2.2.dist-info → tryton-7.2.4.dist-info}/top_level.txt +0 -0
tryton/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  # This file is part of Tryton. The COPYRIGHT file at the top level of
2
2
  # this repository contains the full copyright notices and license terms.
3
- __version__ = "7.2.2"
3
+ __version__ = "7.2.4"
4
4
  import locale
5
5
 
6
6
  import gi
tryton/common/tempfile.py CHANGED
@@ -25,7 +25,7 @@ def clean():
25
25
  for fname in _files:
26
26
  try:
27
27
  os.remove(fname)
28
- except FileNotFoundError:
28
+ except (FileNotFoundError, PermissionError):
29
29
  pass
30
30
  _files.clear()
31
31
 
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
@@ -10,6 +10,7 @@ import operator
10
10
  import os
11
11
  from decimal import Decimal
12
12
  from itertools import chain
13
+ from pathlib import Path
13
14
 
14
15
  import tryton.common as common
15
16
  from tryton.common import (
@@ -1070,26 +1071,56 @@ class ReferenceField(Field):
1070
1071
 
1071
1072
 
1072
1073
  class _FileCache(object):
1073
- def __init__(self, path):
1074
- self.path = path
1074
+ def __init__(self, data=None):
1075
+ _, filename = tempfile.mkstemp(prefix='tryton_')
1076
+ self.path = Path(filename)
1077
+ self.suffixes = {}
1078
+ if data:
1079
+ with open(self.path, 'wb') as fp:
1080
+ fp.write(data)
1081
+
1082
+ @property
1083
+ def data(self):
1084
+ with open(self.path, 'rb') as fp:
1085
+ return fp.read()
1075
1086
 
1076
1087
  def __del__(self):
1077
1088
  try:
1078
1089
  os.remove(self.path)
1079
1090
  except IOError:
1080
1091
  pass
1092
+ for path in self.suffixes.values():
1093
+ try:
1094
+ os.remove(path)
1095
+ except IOError:
1096
+ pass
1097
+
1098
+ def with_suffix(self, suffix):
1099
+ if suffix in self.suffixes:
1100
+ return self.suffixes[suffix]
1101
+ _, filename = tempfile.mkstemp(prefix='tryton_', suffix=suffix)
1102
+ self.suffixes[suffix] = path = Path(filename)
1103
+ with open(path, 'wb') as fp:
1104
+ fp.write(self.data)
1105
+ return path
1081
1106
 
1082
1107
 
1083
1108
  class BinaryField(Field):
1084
1109
 
1085
1110
  _default = None
1086
1111
 
1112
+ def _set_file_cache(self, record, data):
1113
+ if isinstance(data, str):
1114
+ data = data.encode('utf-8')
1115
+ file_cache = _FileCache(data)
1116
+ self.set(record, file_cache)
1117
+ return file_cache
1118
+
1087
1119
  def get(self, record):
1088
1120
  result = record.value.get(self.name, self._default)
1089
1121
  if isinstance(result, _FileCache):
1090
1122
  try:
1091
- with open(result.path, 'rb') as fp:
1092
- result = fp.read()
1123
+ result = result.data
1093
1124
  except IOError:
1094
1125
  result = self.get_data(record)
1095
1126
  return result
@@ -1098,13 +1129,7 @@ class BinaryField(Field):
1098
1129
  return self.get(record)
1099
1130
 
1100
1131
  def set_client(self, record, value, force_change=False):
1101
- _, filename = tempfile.mkstemp(prefix='tryton_')
1102
- data = value or b''
1103
- if isinstance(data, str):
1104
- data = data.encode('utf-8')
1105
- with open(filename, 'wb') as fp:
1106
- fp.write(data)
1107
- self.set(record, _FileCache(filename))
1132
+ self._set_file_cache(record, value or b'')
1108
1133
  self.sig_changed(record)
1109
1134
  record.validate(softvalidation=True)
1110
1135
  record.set_modified(self.name)
@@ -1128,15 +1153,20 @@ class BinaryField(Field):
1128
1153
  [record.id], [self.name], context=context)
1129
1154
  except RPCException:
1130
1155
  return b''
1131
- _, filename = tempfile.mkstemp(prefix='tryton_')
1132
- data = values[self.name] or b''
1133
- if isinstance(data, str):
1134
- data = data.encode('utf-8')
1135
- with open(filename, 'wb') as fp:
1136
- fp.write(data)
1137
- self.set(record, _FileCache(filename))
1156
+ self._set_file_cache(record, values[self.name] or b'')
1138
1157
  return self.get(record)
1139
1158
 
1159
+ def get_filename(self, record, suffix=None):
1160
+ data = self.get_data(record)
1161
+ file_cache = record.value.get(self.name)
1162
+ if not isinstance(file_cache, _FileCache):
1163
+ file_cache = self._set_file_cache(record, data)
1164
+ if suffix:
1165
+ filename = file_cache.with_suffix(suffix)
1166
+ else:
1167
+ filename = file_cache.path
1168
+ return filename
1169
+
1140
1170
 
1141
1171
  class DictField(Field):
1142
1172
 
@@ -1148,10 +1178,10 @@ class DictField(Field):
1148
1178
  self.keys = {}
1149
1179
 
1150
1180
  def get(self, record):
1151
- return super(DictField, self).get(record) or self._default
1181
+ return (super().get(record) or self._default).copy()
1152
1182
 
1153
1183
  def get_client(self, record):
1154
- return super(DictField, self).get_client(record) or self._default
1184
+ return super().get_client(record)
1155
1185
 
1156
1186
  def validation_domains(self, record, pre_validate=None):
1157
1187
  screen_domain, attr_domain = self.domains_get(record, pre_validate)
@@ -99,12 +99,14 @@ class Record:
99
99
  fields = ((fname, field)
100
100
  for fname, field in self.group.fields.items()
101
101
  if field.attrs.get('loading', 'eager') == 'eager')
102
+ views_operator = set.issubset
102
103
  else:
103
104
  fields = self.group.fields.items()
105
+ views_operator = set.intersection
104
106
 
105
107
  fnames = [fname for fname, field in fields
106
108
  if fname not in self._loaded
107
- and (not views or (views & field.views))]
109
+ and (not views or views_operator(views, field.views))]
108
110
  related_read_limit = 0
109
111
  for fname in list(fnames):
110
112
  f_attrs = self.group.fields[fname].attrs
@@ -63,17 +63,23 @@ class Calendar_(goocalendar.Calendar):
63
63
  return False
64
64
 
65
65
  def current_domain(self):
66
- first_datetime, last_datetime = \
67
- self.current_domain_period.get_dates(True)
66
+ start, end = self.current_domain_period.get_dates(True)
68
67
  dtstart = self.attrs['dtstart']
69
68
  dtend = self.attrs.get('dtend') or dtstart
70
- domain = ['OR',
71
- ['AND', (dtstart, '>=', first_datetime),
72
- (dtstart, '<', last_datetime)],
73
- ['AND', (dtend, '>=', first_datetime),
74
- (dtend, '<', last_datetime)],
75
- ['AND', (dtstart, '<', first_datetime),
76
- (dtend, '>', last_datetime)]]
69
+ fields = self.view_calendar.screen.group.fields
70
+ if fields[dtstart].attrs['type'] == 'date':
71
+ start = start.date()
72
+ if fields[dtend].attrs['type'] == 'date':
73
+ end = end.date()
74
+ domain = [
75
+ (dtstart, '!=', None),
76
+ (dtend, '!=', None),
77
+ ['OR',
78
+ ['AND', (dtstart, '>=', start), (dtstart, '<', end)],
79
+ ['AND', (dtend, '>=', start), (dtend, '<', end)],
80
+ ['AND', (dtstart, '<', start), (dtend, '>', end)],
81
+ ],
82
+ ]
77
83
  return domain
78
84
 
79
85
  def get_colors(self, record):
@@ -241,9 +241,10 @@ class DictMultiSelectionEntry(DictEntry):
241
241
  selection.handler_block_by_func(self._changed)
242
242
  try:
243
243
  selection.unselect_all()
244
- for v in value:
245
- if v in value2path:
246
- selection.select_path(value2path[v])
244
+ if value:
245
+ for v in value:
246
+ if v in value2path:
247
+ selection.select_path(value2path[v])
247
248
  finally:
248
249
  selection.handler_unblock_by_func(self._changed)
249
250
 
@@ -513,6 +514,7 @@ class DictWidget(Widget):
513
514
  self.send_modified()
514
515
  value = self.field.get_client(self.record)
515
516
  value.update({k: None for k in new_keys})
517
+ self.field.set_client(self.record, value)
516
518
  self.display()
517
519
 
518
520
  # Use idle add because it can be called from the callback
@@ -1,7 +1,6 @@
1
1
  # This file is part of Tryton. The COPYRIGHT file at the top level of
2
2
  # this repository contains the full copyright notices and license terms.
3
3
  from pathlib import Path
4
- from tempfile import NamedTemporaryFile
5
4
 
6
5
  from gi.repository import Gdk, GLib, Gtk
7
6
 
@@ -76,17 +75,17 @@ class Document(BinaryMixin, Widget):
76
75
  self.image.hide()
77
76
  if self.evince_view:
78
77
  self.evince_scroll.show()
78
+ suffix = None
79
79
  if self.filename_field:
80
- suffix = self.filename_field.get(self.record)
81
- else:
82
- suffix = None
80
+ filename = self.filename_field.get(self.record)
81
+ if filename:
82
+ suffix = Path(filename).suffix
83
+ filename = Path(self.field.get_filename(self.record, suffix))
83
84
  try:
84
- with NamedTemporaryFile(suffix=suffix) as fp:
85
- fp.write(data)
86
- path = Path(fp.name)
87
- document = (
88
- EvinceDocument.Document.factory_get_document(
89
- path.as_uri()))
85
+ document = (
86
+ EvinceDocument.Document.factory_get_document_full(
87
+ filename.as_uri(),
88
+ EvinceDocument.DocumentLoadFlags.NONE))
90
89
  model = EvinceView.DocumentModel()
91
90
  model.set_document(document)
92
91
  self.evince_view.set_model(model)
@@ -69,7 +69,7 @@ class WinForm(NoModal, InfoBar):
69
69
  self.accel_group = Gtk.AccelGroup()
70
70
  self.win.add_accel_group(self.accel_group)
71
71
 
72
- readonly = self.screen.readonly or self.screen.group.readonly
72
+ readonly = self.screen.group.readonly
73
73
 
74
74
  self.but_ok = None
75
75
  self.but_new = None
@@ -360,7 +360,7 @@ class WinForm(NoModal, InfoBar):
360
360
  deletable = True
361
361
  if self.screen.current_record:
362
362
  deletable = self.screen.current_record.deletable
363
- readonly = self.screen.readonly or self.screen.group.readonly
363
+ readonly = self.screen.group.readonly
364
364
  if position >= 1:
365
365
  name = str(position)
366
366
  if self.domain is not None:
@@ -373,9 +373,11 @@ class WinForm(NoModal, InfoBar):
373
373
  self.but_pre.set_sensitive(True)
374
374
  else:
375
375
  self.but_pre.set_sensitive(False)
376
- if access['delete'] and not readonly and deletable:
377
- self.but_del.set_sensitive(True)
378
- self.but_undel.set_sensitive(True)
376
+ self.but_del.set_sensitive(bool(
377
+ not readonly
378
+ and access['delete']
379
+ and deletable))
380
+ self.but_undel.set_sensitive(bool(not readonly))
379
381
  else:
380
382
  self.but_del.set_sensitive(False)
381
383
  self.but_undel.set_sensitive(False)
@@ -399,7 +401,7 @@ class WinForm(NoModal, InfoBar):
399
401
  cancel_responses = [
400
402
  Gtk.ResponseType.CANCEL, Gtk.ResponseType.DELETE_EVENT]
401
403
  self.screen.current_view.set_value()
402
- readonly = self.screen.readonly or self.screen.group.readonly
404
+ readonly = self.screen.group.readonly
403
405
  if (response_id not in cancel_responses
404
406
  and not readonly
405
407
  and self.screen.current_record is not None):
@@ -15,7 +15,8 @@ if hasattr(sys, 'frozen'):
15
15
  share = os.path.join(prefix, 'share')
16
16
  os.environ['GTK_EXE_PREFIX'] = prefix
17
17
  os.environ['GTK_DATA_PREFIX'] = prefix
18
- os.environ['EV_BACKENDS_DIR'] = prefix
18
+ os.environ['EV_BACKENDS_DIR'] = os.path.join(
19
+ prefix, 'lib', 'evince', '4', 'backends')
19
20
  os.environ['XDG_DATA_DIRS'] = share
20
21
  os.environ['GDK_PIXBUF_MODULE_FILE'] = os.path.join(
21
22
  share, 'gtk-3.0', 'gdk-pixbuf.loaders')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tryton
3
- Version: 7.2.2
3
+ Version: 7.2.4
4
4
  Summary: Tryton desktop client
5
5
  Home-page: http://www.tryton.org/
6
6
  Download-URL: http://downloads.tryton.org/7.2/
@@ -1,4 +1,4 @@
1
- tryton/__init__.py,sha256=zUnVw71Rg9XYl3GLnntbqr5VG3n7ERJMT8Un_KRP9I8,1926
1
+ tryton/__init__.py,sha256=Sfa8F0gvK5lDrpZ7NWPGLi7WIolwD28f-0xOnJnZsAM,1926
2
2
  tryton/bus.py,sha256=GM9nRfPH1vP8X7KnHkLy2eT-KY-Lw37hdHgh-v_wl10,2874
3
3
  tryton/cache.py,sha256=-xIh4ZQgAy_9nVEJ22yXsPwM4oFGI6j-EIlcqRAs6Go,990
4
4
  tryton/client.py,sha256=mSfOU4sj_XJbWpP92sjXhOXh2_SEZFzlEKEQhZxsGcA,3323
@@ -35,59 +35,59 @@ tryton/common/number_entry.py,sha256=Crii_9ZQ2KjAjtTAMMFdac5Fk5zcWkJUjp3pRSb6bgI
35
35
  tryton/common/popup_menu.py,sha256=IrTNvLJILSFl8Reotzull-RKlx-PugINYaQP7TIAjT8,5779
36
36
  tryton/common/richtext.py,sha256=5xKWgHDbNLnrzUSXm1SMY5mC_gFf4my8SWy-MkpsgX4,11247
37
37
  tryton/common/selection.py,sha256=gSREGXtc2J-LMy0vjHjByhCdW7CuYAo-bAiJobfiqu0,8538
38
- tryton/common/tempfile.py,sha256=K_oWkmDobKHb0ASaSM8TkfUoJ3SgyrPZxk6tHsqNdRs,766
38
+ tryton/common/tempfile.py,sha256=o2O7xw0QF0eBearaJ9TxMuvJQ4VB6kaF0fCNKAGzaZQ,785
39
39
  tryton/common/timedelta.py,sha256=z3EXjKUzssaYHNFhngUIcc2sVaeNUVp4urQjm3JFJUw,3180
40
40
  tryton/common/underline.py,sha256=dZpz7m4s7siS024v_gvJ6kWmYZSkl3XnRrJeY2pWfqA,714
41
41
  tryton/common/widget_style.py,sha256=YiS-FnCZm0Kesdw-vx9gWD7QKXMpasoUzHe-UPX2_e0,335
42
- tryton/data/locale/bg/LC_MESSAGES/tryton.mo,sha256=o_ko-_zHbgz10XHWoqLIHyvXED6AShnFsU02WsmhqiU,8720
42
+ tryton/data/locale/bg/LC_MESSAGES/tryton.mo,sha256=KcsG1PkuhUb6pvFqCLJ3fNt3mhbkWwNte8tcn-_ft1U,8720
43
43
  tryton/data/locale/bg/LC_MESSAGES/tryton.po,sha256=qq6il9QoHdIbb1VUbbc98NxrYLBzleSL6e1Jx48ZsVE,22353
44
- tryton/data/locale/ca/LC_MESSAGES/tryton.mo,sha256=F5DaJZWXM2pSqfAUpNTqGfAhSE2WMIchnAR1BmxLdVk,20327
44
+ tryton/data/locale/ca/LC_MESSAGES/tryton.mo,sha256=WIhG4ZiIS3RlYPfVeCWWbYPW3HwfIXZWvE_tVLlzWDU,20327
45
45
  tryton/data/locale/ca/LC_MESSAGES/tryton.po,sha256=ZYtY31AzNzz54eTFGZRumDMf6QtUU49WfopZ2ABMwOM,21574
46
- tryton/data/locale/cs/LC_MESSAGES/tryton.mo,sha256=yVmbEORpbiKdAZtUEQRjnImY8dp3Ricqso74nh_lcNA,4634
46
+ tryton/data/locale/cs/LC_MESSAGES/tryton.mo,sha256=VO0YaF0JtQHN_TJJ5wouYpaSU9oq6WszNlvKHZwK8FQ,4634
47
47
  tryton/data/locale/cs/LC_MESSAGES/tryton.po,sha256=q9oUTYtPhmM2B3qo9Z88SHs312SFQ27wQ_CHFteFZeo,18675
48
- tryton/data/locale/de/LC_MESSAGES/tryton.mo,sha256=jzxriYNgcgYk2nrB3oL5mokDPWIe7HemUyDrTAfsJ90,20876
48
+ tryton/data/locale/de/LC_MESSAGES/tryton.mo,sha256=PVQGpCPwNn_3Hdn6fhYyE1JQcs8TRYl7sZpZ9hDWb9I,20876
49
49
  tryton/data/locale/de/LC_MESSAGES/tryton.po,sha256=JYUc5h0KG8C07WNtY-B8edxtAEmMKIen9rNxiTdA6GI,22140
50
- tryton/data/locale/es/LC_MESSAGES/tryton.mo,sha256=JQI2Ko21pgkX0XFTfZSWxiXinANc061w-cEDSj-fZ2c,20586
50
+ tryton/data/locale/es/LC_MESSAGES/tryton.mo,sha256=cZcA0QjEw7Gf6d3w-XMcPmGG7T_oVvNKbxtibQFhx5o,20586
51
51
  tryton/data/locale/es/LC_MESSAGES/tryton.po,sha256=ieU2hAyeHPEMXso72F9kve3V1LgxDcr9JURwJFQbh3w,22042
52
- tryton/data/locale/es_419/LC_MESSAGES/tryton.mo,sha256=fhVELsCwWzfDlHr-jTCNbfYwhD1KCNVHnBrGYlz5SGk,7060
52
+ tryton/data/locale/es_419/LC_MESSAGES/tryton.mo,sha256=bO2CyPxSxrPcIzwxrlnd-D5FTU_M5WOUYATw1X_YmVc,7060
53
53
  tryton/data/locale/es_419/LC_MESSAGES/tryton.po,sha256=l1QvbBP_WckH1Qw9vstGqbcdBO9Z5s_3dt0ImDhIKFs,16784
54
- tryton/data/locale/et/LC_MESSAGES/tryton.mo,sha256=JPU0lW1uPHWFKzlTKZCU_7PaKf10vZJMlxv1KflqC2k,13450
54
+ tryton/data/locale/et/LC_MESSAGES/tryton.mo,sha256=bJ24eoHjNblPQV1fyo0CNdLxLcFisKbVdkD_VI4-5ic,13450
55
55
  tryton/data/locale/et/LC_MESSAGES/tryton.po,sha256=qeeaOgBaxwyG7POThk9wABDHY40yiqCPH-D3gMbOokM,19370
56
- tryton/data/locale/fa/LC_MESSAGES/tryton.mo,sha256=YbYgszwLmfZAMx-UPMXqTjNjjtT4e4LzxizmePTc648,16677
56
+ tryton/data/locale/fa/LC_MESSAGES/tryton.mo,sha256=5CuRIjuY5Fkce5AbUlCE5HmZsV-KGQBvlyoDJff5szg,16677
57
57
  tryton/data/locale/fa/LC_MESSAGES/tryton.po,sha256=qV7fEqe7uL77K1-2CBvphCbefj25LYL4T2Ng_q9PEbM,23271
58
- tryton/data/locale/fi/LC_MESSAGES/tryton.mo,sha256=BH8ndT77faM2OSwySlmAGktthKfbpb3gQmwOhg4Uj10,445
58
+ tryton/data/locale/fi/LC_MESSAGES/tryton.mo,sha256=UEl82ATGkt9tTvdg0UwCgsI2zlNxAAaJHFlRoUaC-nQ,445
59
59
  tryton/data/locale/fi/LC_MESSAGES/tryton.po,sha256=BkzvKHfLUGWlfR0s0r0XBrLmKTFVGQhV4RvbjQu1tFo,14424
60
- tryton/data/locale/fr/LC_MESSAGES/tryton.mo,sha256=hmcWdSwG3yCQ48sVz6o5c70jS2l7_TNxeMWYsXv7EeU,21119
60
+ tryton/data/locale/fr/LC_MESSAGES/tryton.mo,sha256=T8lwcTXuEDlzGvjm5Zv6XZpdZ4ks96GNtNoxmPW5SXc,21119
61
61
  tryton/data/locale/fr/LC_MESSAGES/tryton.po,sha256=7d6pXNGIWsulEkTSaQ6036RIGPOCo85yAs3P5QGjG1s,22315
62
- tryton/data/locale/hu/LC_MESSAGES/tryton.mo,sha256=8e74vFK3_gNmmyReYMF-JgcpVcO-_4AfUzVxYg1z9JI,17126
62
+ tryton/data/locale/hu/LC_MESSAGES/tryton.mo,sha256=L8_utzPxjnsUtLwirx2AZrBqviZmlMtQItSzkj7RCrM,17126
63
63
  tryton/data/locale/hu/LC_MESSAGES/tryton.po,sha256=RK81eKpbRJzRJ3yE9vx2nlpDBwtFxGd_5vcQvcjRBLw,21371
64
- tryton/data/locale/id/LC_MESSAGES/tryton.mo,sha256=eW4XdeW_a4OECZVcqXCWwTObuFwLnCx2z0exeFG7a5k,6983
64
+ tryton/data/locale/id/LC_MESSAGES/tryton.mo,sha256=L5GdNxLlsuH0cQFi71405EdKzCWMTlP5cXR0GLFFvKI,6983
65
65
  tryton/data/locale/id/LC_MESSAGES/tryton.po,sha256=NAjfNy1rU74psadAlT2c9_XJlvAjFDJJnR-EgSE9NuQ,16323
66
- tryton/data/locale/it/LC_MESSAGES/tryton.mo,sha256=oqup5lqfPz4bcVfBS6lk-_4venQGhzCrqFP4KGajwFE,15005
66
+ tryton/data/locale/it/LC_MESSAGES/tryton.mo,sha256=Me7m-irm8Qo91PaLrgCWCrt98S6uDOp9Dfb17ymHzyI,15005
67
67
  tryton/data/locale/it/LC_MESSAGES/tryton.po,sha256=4HInaacBQtJ_B7wYtfWopXRgE7me0rGoRkwqBX-5feE,20253
68
- tryton/data/locale/ja_JP/LC_MESSAGES/tryton.mo,sha256=95IDW87vnP6ugCqAYnjQIix2xvCqEvNmrRsife-IEWQ,7061
68
+ tryton/data/locale/ja_JP/LC_MESSAGES/tryton.mo,sha256=Ggky0JhKrHWKGnSpWqQ_-B5jma5FSthb5utYHfyiixM,7061
69
69
  tryton/data/locale/ja_JP/LC_MESSAGES/tryton.po,sha256=Ku2Rg_pOo3lzBZMzzSB-fsMMI6PGP-Gk6dF9zd8ktqQ,36736
70
- tryton/data/locale/lo/LC_MESSAGES/tryton.mo,sha256=IqcZNvprK3gJBbg4V5ejGfR65uy7I7wFBjYH7US-hRU,18359
70
+ tryton/data/locale/lo/LC_MESSAGES/tryton.mo,sha256=i5WdtLOZZwOWDhBpo784y6dpzJ6Tmv4-LASxYeHnGkg,18359
71
71
  tryton/data/locale/lo/LC_MESSAGES/tryton.po,sha256=ferjyzz0m5g9IaY5XADhKX9H1CbgUCJ7hvmiA-p3quM,27885
72
- tryton/data/locale/lt/LC_MESSAGES/tryton.mo,sha256=5_pWb_J6WFYrARaPx8epCoBE1hpRNZ5X7QJh1yPL-PY,16169
72
+ tryton/data/locale/lt/LC_MESSAGES/tryton.mo,sha256=0uQSUpSoGXfmva_ygirB1X9WhflTY7Yc5uCJYSGhSYs,16169
73
73
  tryton/data/locale/lt/LC_MESSAGES/tryton.po,sha256=4EBCbYWzWE8byLKzM-MBHZX5IpxSPA_pZXIIYa6_EuM,21377
74
- tryton/data/locale/nl/LC_MESSAGES/tryton.mo,sha256=eN_RZpphCfykKeVLXgYnB1TwkleFt62GYojcUd44EXk,20094
74
+ tryton/data/locale/nl/LC_MESSAGES/tryton.mo,sha256=CBjwUsCiQF_xycF7THIfF0fPDgb7okCCoJhQpzFPWIQ,20094
75
75
  tryton/data/locale/nl/LC_MESSAGES/tryton.po,sha256=0s3fF6Z-iFA2d0edwXbettt0DXT7ma1t85bIyx9GKcE,21267
76
- tryton/data/locale/pl/LC_MESSAGES/tryton.mo,sha256=Cbhf6mLt8jIs33SmC8jQlP4o4T9U3fytJXYHzOYAkHI,20027
76
+ tryton/data/locale/pl/LC_MESSAGES/tryton.mo,sha256=S6NGPlata7KfNbh1ey0Om8fRvxXrqzSMBa8F0iuA8lk,20027
77
77
  tryton/data/locale/pl/LC_MESSAGES/tryton.po,sha256=ZqML4BVEpjW--6em7avT6R3ozhZ6yujU__aCiN9ad5I,21139
78
- tryton/data/locale/pt/LC_MESSAGES/tryton.mo,sha256=3Jrr8s6jpFDv22eeaEnqWysMBZI-mvzxqXhcHN-fpqU,15086
78
+ tryton/data/locale/pt/LC_MESSAGES/tryton.mo,sha256=7Cy6b9XdDynHSgMDcTA1GbDqu45b3vpjxwpky7t8RMI,15086
79
79
  tryton/data/locale/pt/LC_MESSAGES/tryton.po,sha256=h-u2CKqxAH5wwaKVFpn01eGl4PVZh8TUc5XmUol07_Q,20852
80
- tryton/data/locale/ro/LC_MESSAGES/tryton.mo,sha256=XJwa8jsg1mamce-1-DvHvR6wnUYP0d2DznPO96_zqeY,19655
80
+ tryton/data/locale/ro/LC_MESSAGES/tryton.mo,sha256=t6s36TdjKrZevbX8Gw-j5xufx_7smK_4jbk8u0ThrIQ,19655
81
81
  tryton/data/locale/ro/LC_MESSAGES/tryton.po,sha256=5dBTi5a9Swv_nEE8kDgJLkMAcBecyRGz_0jJvAg_AQI,21203
82
- tryton/data/locale/ru/LC_MESSAGES/tryton.mo,sha256=rYXzKFOsDNTmoD1pejSBduD2QjCIjJtihUiW08lTylk,9949
82
+ tryton/data/locale/ru/LC_MESSAGES/tryton.mo,sha256=nxmxcwm6bDdmtGVE-CBLoEDyIC0Xzlv8eydtb_vuL3I,9949
83
83
  tryton/data/locale/ru/LC_MESSAGES/tryton.po,sha256=va6tGFexLon4K4jI58PONl0U7M8RSEuVpNHiw9LI010,22823
84
- tryton/data/locale/sl/LC_MESSAGES/tryton.mo,sha256=cWBcZ2VDjWDl1PtjwkVv06oXc6ZDUo43jFcQG8XUgm4,18877
84
+ tryton/data/locale/sl/LC_MESSAGES/tryton.mo,sha256=J-sLtrjCYEVNSdAlCGQmRwCnjH1fq-KMQKUD2gTLDac,18877
85
85
  tryton/data/locale/sl/LC_MESSAGES/tryton.po,sha256=CvpI-6Qeva9QvQimZdp8RtwMHeTxNemVkPce3ciXcNY,20622
86
- tryton/data/locale/tr/LC_MESSAGES/tryton.mo,sha256=RFzvxYmjClVCVRQckGnsDRMhe3iUeVS_9i5PJ3RXMgk,1696
86
+ tryton/data/locale/tr/LC_MESSAGES/tryton.mo,sha256=Q0OzxeEEIJFKqfz2ODPd8ri-Cr4DOYqNhudnlqLdIZQ,1696
87
87
  tryton/data/locale/tr/LC_MESSAGES/tryton.po,sha256=bieLzyuMmBcxKtaPY5aij8aj_0lJ1aGSjycARNdEVwc,14961
88
- tryton/data/locale/uk/LC_MESSAGES/tryton.mo,sha256=APZkOSJ5ixJ6AQgnR64TT8CLcHTVjNQEiTz9GroLc94,22925
88
+ tryton/data/locale/uk/LC_MESSAGES/tryton.mo,sha256=CzYWj2y8iefYVIQOw-0222l8Q7r59d5RUxT5CB1utDM,22925
89
89
  tryton/data/locale/uk/LC_MESSAGES/tryton.po,sha256=6DKNBLF41uca43PF7tIgDZTqCdgjulKlyNAGX2_f4HE,25664
90
- tryton/data/locale/zh_CN/LC_MESSAGES/tryton.mo,sha256=wUs9vjHzCRkgkl2OcehGeD0bUr0nmwyfu8G0e70zjUM,18082
90
+ tryton/data/locale/zh_CN/LC_MESSAGES/tryton.mo,sha256=ZFdUisljK8EKILi9ykSyKQGsxAcsCqdIU-cT98Kvlzw,18082
91
91
  tryton/data/locale/zh_CN/LC_MESSAGES/tryton.po,sha256=db_asTst_1FNASDEXSY41maPSK1Um8M_pORhABWjFyo,19854
92
92
  tryton/data/pixmaps/tryton/tryton-add.svg,sha256=qIk1ewmNjSHqD8vRqCv0kT7v6hbHnY0KNU-M1jrxb4s,185
93
93
  tryton/data/pixmaps/tryton/tryton-archive.svg,sha256=9MO4wyp1SyYh3-FuoIrHhKb-9ywyql2bExsnz0XX9x0,382
@@ -176,7 +176,7 @@ tryton/gui/window/revision.py,sha256=zmSgS3UojpHq1YnR3yDVCQcU6pA3J_i7OfTzxr4lqyk
176
176
  tryton/gui/window/tabcontent.py,sha256=qoXGBBDgMFKFzH4oe9i9fo7CaoUBenoahHyqdVwAWis,11187
177
177
  tryton/gui/window/win_csv.py,sha256=Gg60p7eOi46M9REZ-J1HFeYqd4j8WaLzQH_vsrl58Sk,13513
178
178
  tryton/gui/window/win_export.py,sha256=EumRbNWMOwYc1N9zSUIK86PTzEkmUunSWWZd4QUJNwY,21199
179
- tryton/gui/window/win_form.py,sha256=ujYaQ7J1J-fvOE-87Hf6ZkQJ5jvVSqrYt48zoaB51Lc,19456
179
+ tryton/gui/window/win_form.py,sha256=TbMHIh_oSOkvfJCEV5nNzjh81RPrah9OKtIx6iWMYPA,19436
180
180
  tryton/gui/window/win_import.py,sha256=Av5UMedBEv-Y1yHZd-Rysl1oabJ9GMY0QSfTWkcCI18,9601
181
181
  tryton/gui/window/win_search.py,sha256=QUwdtG-HUHDOPZ8wYQ9bM1f41TvPZn2P65W8vDJJdHE,5975
182
182
  tryton/gui/window/window.py,sha256=NhyZHGswMYWHS-dODfaCItpZY5UYh_7LSu8N5SOFY2w,1736
@@ -186,9 +186,9 @@ tryton/gui/window/view_board/action.py,sha256=9KNVIiL-_KHN_fLe0XLbFp_CrO5hvWCCPn
186
186
  tryton/gui/window/view_board/view_board.py,sha256=fTZyDUImgkq31mlPr7_nt9QfsMT3gzOC5t8fK2XuQNU,1810
187
187
  tryton/gui/window/view_form/__init__.py,sha256=KpO5XlSYKEB3rxVNiloUx1I9xYQr_VEGw-D915kX_Ho,185
188
188
  tryton/gui/window/view_form/model/__init__.py,sha256=-5OdjQ8rEVZvZALCT9wzhMNZf0ryRVaqgbkVmHOqmqE,144
189
- tryton/gui/window/view_form/model/field.py,sha256=3TJ96Zf_IAUap-ePUWUPgfvhiXJ0RBFXDXZdpCdWYJU,44900
189
+ tryton/gui/window/view_form/model/field.py,sha256=8YQsk78swbQsp39cfYq1gVlyR2nYJhrQPbPCicHiI4A,45750
190
190
  tryton/gui/window/view_form/model/group.py,sha256=Kt67oXkxdmfvikmqXTEZQV4K-VBi7KUeUEkiI1aOGs8,18391
191
- tryton/gui/window/view_form/model/record.py,sha256=TP9ClT-UhzYlH5edhzEpUGZCADK2NNvdD6ADX3RzJyE,28847
191
+ tryton/gui/window/view_form/model/record.py,sha256=AogQBqHzJ8BSn922RePBUrgAIOQMKdZGQ5-lRG-DtNs,28956
192
192
  tryton/gui/window/view_form/screen/__init__.py,sha256=ws2wA8SsyQoZDbIjDpQF9-zP-BiLgVQyUSDVq8pvovo,191
193
193
  tryton/gui/window/view_form/screen/screen.py,sha256=iG7CnzQ2G8JLVSNZY0mSQCtFtPV7R86SXGNr-q83XC4,53483
194
194
  tryton/gui/window/view_form/view/__init__.py,sha256=HtIDfj_3gBdiOJbDfUzRpgYgSRN0GyVkUTIbSUmJL70,4386
@@ -199,7 +199,7 @@ tryton/gui/window/view_form/view/list.py,sha256=HkXIPOdXdX6Tl-nCWsnynH40Ljg7EHfT
199
199
  tryton/gui/window/view_form/view/list_form.py,sha256=9IsSjpXIoBpT43rwWYxEF8yN2gi58mHZzMfTBhd8SnM,6984
200
200
  tryton/gui/window/view_form/view/screen_container.py,sha256=7_KkgkwmdXMy5AfCY1sHYVD1iI0GljNjUriLoDJJ920,25839
201
201
  tryton/gui/window/view_form/view/calendar_gtk/__init__.py,sha256=-5OdjQ8rEVZvZALCT9wzhMNZf0ryRVaqgbkVmHOqmqE,144
202
- tryton/gui/window/view_form/view/calendar_gtk/calendar_.py,sha256=QLirNOpgpOdQL93sMA0m9IemuQjna9u-koBsLgECYC4,5611
202
+ tryton/gui/window/view_form/view/calendar_gtk/calendar_.py,sha256=IGqLLn5zCFnDw6cGu7kLiRyhaYvhixFaumRrAkLuMCg,5820
203
203
  tryton/gui/window/view_form/view/calendar_gtk/dates_period.py,sha256=xwfOI9nX6VmtPaznlQrl3Z9SPUnLgb4_Jw2H6bSuuv0,926
204
204
  tryton/gui/window/view_form/view/calendar_gtk/toolbar.py,sha256=008OgPAbgvXv_T_xCQRAMGKeZiKH80D2Y0Q4rvs1emk,9781
205
205
  tryton/gui/window/view_form/view/form_gtk/__init__.py,sha256=-5OdjQ8rEVZvZALCT9wzhMNZf0ryRVaqgbkVmHOqmqE,144
@@ -207,8 +207,8 @@ tryton/gui/window/view_form/view/form_gtk/binary.py,sha256=1xB-MsPlSp9QmtmMzGI3w
207
207
  tryton/gui/window/view_form/view/form_gtk/calendar_.py,sha256=mggAieaRkRuqCrC28zjshzQX7qMxv-0zNxXVaWN-pic,5951
208
208
  tryton/gui/window/view_form/view/form_gtk/char.py,sha256=A2BVZ42dA5CinFJvYULcvaqO5xG29aWjC61xRFAr494,6525
209
209
  tryton/gui/window/view_form/view/form_gtk/checkbox.py,sha256=FEVsM3zTX1-SpHLK7Hr0IF0dW8B_nVkL8SX9KabZZgs,1229
210
- tryton/gui/window/view_form/view/form_gtk/dictionary.py,sha256=E4kHTNVsQ-iupA2cvoTkMnp6c6OZbQHUe8s8CxigYRc,22276
211
- tryton/gui/window/view_form/view/form_gtk/document.py,sha256=sqD3O1BvL61ygFLhxEi8B4qj0vF_cS6fMSYUjg7CsZA,3340
210
+ tryton/gui/window/view_form/view/form_gtk/dictionary.py,sha256=J4Eaw8xnuhU7MduBW97S2IlVFFvTxIE6qtT13Kczkls,22360
211
+ tryton/gui/window/view_form/view/form_gtk/document.py,sha256=RWF54wQq7oUbIUqXBXj_fCPMIUoAsiayYBYPxr5sVTs,3356
212
212
  tryton/gui/window/view_form/view/form_gtk/float.py,sha256=0gOvxyDTUrlFN3IbERxORjPpUkIQTxfX9GRbuuUQ9-E,733
213
213
  tryton/gui/window/view_form/view/form_gtk/image.py,sha256=eCOltUEA74Ne22wnLjLgcb_4mztClYq9_VGnRHs4msc,3984
214
214
  tryton/gui/window/view_form/view/form_gtk/integer.py,sha256=9z9tULFirqErjMCvwdwsumal14NXi4TmRggHNsieW-8,3088
@@ -242,9 +242,9 @@ tryton/tests/test_common.py,sha256=NDGLS7TzVX5D6GHLfQtb_Yxp2fIyQd6cBNfhjrHlvVQ,1
242
242
  tryton/tests/test_common_domain_parser.py,sha256=JCnLgowMgwEMTwmltB303DyPSu7yTvFeeqlkQDlavhk,43500
243
243
  tryton/tests/test_common_selection.py,sha256=1vvP7qfgCaqBhgADqbcCOI5ChXZghKSr7kzP99CGqtA,649
244
244
  tryton/tests/test_common_timedelta.py,sha256=IHzNvZrEimLDxTWLNk5K8VG4KZYaxxGGOdoOB8VefQw,3538
245
- tryton-7.2.2.data/scripts/tryton,sha256=k9_pB_17p8MbVMKi7xE_ntdTstXlNNVCIEpT4punQs0,2041
246
- tryton-7.2.2.dist-info/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
247
- tryton-7.2.2.dist-info/METADATA,sha256=Vo_qavKogD53vtE5jkerdlo14Xt1A8DdNkcPWf8i2FA,2549
248
- tryton-7.2.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
249
- tryton-7.2.2.dist-info/top_level.txt,sha256=7l30wN15bNakY7BPm2TEO79_XxvmYpkJONTGR_dTTOU,7
250
- tryton-7.2.2.dist-info/RECORD,,
245
+ tryton-7.2.4.data/scripts/tryton,sha256=nVzTlvIjRfxC9ZwrgPATVFOzMxrutjFeAS6CuU0g9Ds,2098
246
+ tryton-7.2.4.dist-info/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
247
+ tryton-7.2.4.dist-info/METADATA,sha256=yDp2bCRm5XWxLWq-M_7ojj1N2saBXfIltWQ5tRnghUA,2549
248
+ tryton-7.2.4.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
249
+ tryton-7.2.4.dist-info/top_level.txt,sha256=7l30wN15bNakY7BPm2TEO79_XxvmYpkJONTGR_dTTOU,7
250
+ tryton-7.2.4.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: setuptools (70.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5