tryton 6.0.39__tar.gz → 6.0.41__tar.gz

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 (274) hide show
  1. {tryton-6.0.39 → tryton-6.0.41}/CHANGELOG +10 -0
  2. {tryton-6.0.39 → tryton-6.0.41}/PKG-INFO +1 -1
  3. {tryton-6.0.39 → tryton-6.0.41}/bin/tryton +2 -1
  4. {tryton-6.0.39 → tryton-6.0.41}/tryton/__init__.py +1 -1
  5. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/bg/LC_MESSAGES/tryton.mo +0 -0
  6. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/ca/LC_MESSAGES/tryton.mo +0 -0
  7. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/cs/LC_MESSAGES/tryton.mo +0 -0
  8. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/de/LC_MESSAGES/tryton.mo +0 -0
  9. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/es/LC_MESSAGES/tryton.mo +0 -0
  10. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/es_419/LC_MESSAGES/tryton.mo +0 -0
  11. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/et/LC_MESSAGES/tryton.mo +0 -0
  12. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/fa/LC_MESSAGES/tryton.mo +0 -0
  13. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/fi/LC_MESSAGES/tryton.mo +0 -0
  14. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/fr/LC_MESSAGES/tryton.mo +0 -0
  15. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/hu/LC_MESSAGES/tryton.mo +0 -0
  16. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/id/LC_MESSAGES/tryton.mo +0 -0
  17. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/it/LC_MESSAGES/tryton.mo +0 -0
  18. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/ja_JP/LC_MESSAGES/tryton.mo +0 -0
  19. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/lo/LC_MESSAGES/tryton.mo +0 -0
  20. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/lt/LC_MESSAGES/tryton.mo +0 -0
  21. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/nl/LC_MESSAGES/tryton.mo +0 -0
  22. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/pl/LC_MESSAGES/tryton.mo +0 -0
  23. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/pt/LC_MESSAGES/tryton.mo +0 -0
  24. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/ro/LC_MESSAGES/tryton.mo +0 -0
  25. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/ru/LC_MESSAGES/tryton.mo +0 -0
  26. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/sl/LC_MESSAGES/tryton.mo +0 -0
  27. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/tr/LC_MESSAGES/tryton.mo +0 -0
  28. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/zh_CN/LC_MESSAGES/tryton.mo +0 -0
  29. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/model/field.py +50 -20
  30. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/calendar_gtk/calendar_.py +12 -7
  31. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/dictionary.py +4 -3
  32. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/document.py +9 -10
  33. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/win_form.py +8 -6
  34. {tryton-6.0.39 → tryton-6.0.41}/tryton.egg-info/PKG-INFO +1 -1
  35. {tryton-6.0.39 → tryton-6.0.41}/COPYRIGHT +0 -0
  36. {tryton-6.0.39 → tryton-6.0.41}/LICENSE +0 -0
  37. {tryton-6.0.39 → tryton-6.0.41}/MANIFEST.in +0 -0
  38. {tryton-6.0.39 → tryton-6.0.41}/README.rst +0 -0
  39. {tryton-6.0.39 → tryton-6.0.41}/catalan.nsh +0 -0
  40. {tryton-6.0.39 → tryton-6.0.41}/darwin/gtk-3.0/gdk-pixbuf.loaders +0 -0
  41. {tryton-6.0.39 → tryton-6.0.41}/darwin/gtk-3.0/gtk.immodules +0 -0
  42. {tryton-6.0.39 → tryton-6.0.41}/doc/conf.py +0 -0
  43. {tryton-6.0.39 → tryton-6.0.41}/doc/glossary.rst +0 -0
  44. {tryton-6.0.39 → tryton-6.0.41}/doc/index.rst +0 -0
  45. {tryton-6.0.39 → tryton-6.0.41}/doc/installation.rst +0 -0
  46. {tryton-6.0.39 → tryton-6.0.41}/doc/usage.rst +0 -0
  47. {tryton-6.0.39 → tryton-6.0.41}/english.nsh +0 -0
  48. {tryton-6.0.39 → tryton-6.0.41}/farsi.nsh +0 -0
  49. {tryton-6.0.39 → tryton-6.0.41}/french.nsh +0 -0
  50. {tryton-6.0.39 → tryton-6.0.41}/german.nsh +0 -0
  51. {tryton-6.0.39 → tryton-6.0.41}/make-darwin-installer.sh +0 -0
  52. {tryton-6.0.39 → tryton-6.0.41}/make-win32-installer.sh +0 -0
  53. {tryton-6.0.39 → tryton-6.0.41}/portuguese.nsh +0 -0
  54. {tryton-6.0.39 → tryton-6.0.41}/setup-freeze.py +0 -0
  55. {tryton-6.0.39 → tryton-6.0.41}/setup.cfg +0 -0
  56. {tryton-6.0.39 → tryton-6.0.41}/setup.nsi +0 -0
  57. {tryton-6.0.39 → tryton-6.0.41}/setup.py +0 -0
  58. {tryton-6.0.39 → tryton-6.0.41}/slovenian.nsh +0 -0
  59. {tryton-6.0.39 → tryton-6.0.41}/spanish.nsh +0 -0
  60. {tryton-6.0.39 → tryton-6.0.41}/tox.ini +0 -0
  61. {tryton-6.0.39 → tryton-6.0.41}/tryton/action/__init__.py +0 -0
  62. {tryton-6.0.39 → tryton-6.0.41}/tryton/action/main.py +0 -0
  63. {tryton-6.0.39 → tryton-6.0.41}/tryton/bus.py +0 -0
  64. {tryton-6.0.39 → tryton-6.0.41}/tryton/client.py +0 -0
  65. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/__init__.py +0 -0
  66. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/button.py +0 -0
  67. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/cellrendererbinary.py +0 -0
  68. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/cellrendererbutton.py +0 -0
  69. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/cellrendererclickablepixbuf.py +0 -0
  70. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/cellrenderercombo.py +0 -0
  71. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/cellrendererfloat.py +0 -0
  72. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/cellrendererinteger.py +0 -0
  73. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/cellrenderertext.py +0 -0
  74. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/cellrenderertoggle.py +0 -0
  75. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/common.py +0 -0
  76. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/completion.py +0 -0
  77. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/datetime_.py +0 -0
  78. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/domain_inversion.py +0 -0
  79. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/domain_parser.py +0 -0
  80. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/entry_position.py +0 -0
  81. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/environment.py +0 -0
  82. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/focus.py +0 -0
  83. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/htmltextbuffer.py +0 -0
  84. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/number_entry.py +0 -0
  85. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/popup_menu.py +0 -0
  86. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/richtext.py +0 -0
  87. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/selection.py +0 -0
  88. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/timedelta.py +0 -0
  89. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/treeviewcontrol.py +0 -0
  90. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/underline.py +0 -0
  91. {tryton-6.0.39 → tryton-6.0.41}/tryton/common/widget_style.py +0 -0
  92. {tryton-6.0.39 → tryton-6.0.41}/tryton/config.py +0 -0
  93. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/bg/LC_MESSAGES/tryton.po +0 -0
  94. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/ca/LC_MESSAGES/tryton.po +0 -0
  95. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/cs/LC_MESSAGES/tryton.po +0 -0
  96. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/de/LC_MESSAGES/tryton.po +0 -0
  97. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/es/LC_MESSAGES/tryton.po +0 -0
  98. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/es_419/LC_MESSAGES/tryton.po +0 -0
  99. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/et/LC_MESSAGES/tryton.po +0 -0
  100. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/fa/LC_MESSAGES/tryton.po +0 -0
  101. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/fi/LC_MESSAGES/tryton.po +0 -0
  102. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/fr/LC_MESSAGES/tryton.po +0 -0
  103. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/hu/LC_MESSAGES/tryton.po +0 -0
  104. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/id/LC_MESSAGES/tryton.po +0 -0
  105. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/it/LC_MESSAGES/tryton.po +0 -0
  106. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/ja_JP/LC_MESSAGES/tryton.po +0 -0
  107. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/lo/LC_MESSAGES/tryton.po +0 -0
  108. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/lt/LC_MESSAGES/tryton.po +0 -0
  109. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/nl/LC_MESSAGES/tryton.po +0 -0
  110. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/pl/LC_MESSAGES/tryton.po +0 -0
  111. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/pt/LC_MESSAGES/tryton.po +0 -0
  112. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/ro/LC_MESSAGES/tryton.po +0 -0
  113. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/ru/LC_MESSAGES/tryton.po +0 -0
  114. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/sl/LC_MESSAGES/tryton.po +0 -0
  115. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/tr/LC_MESSAGES/tryton.po +0 -0
  116. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/tryton.pot +0 -0
  117. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/locale/zh_CN/LC_MESSAGES/tryton.po +0 -0
  118. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/LICENSE +0 -0
  119. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-add.svg +0 -0
  120. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-archive.svg +0 -0
  121. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-arrow-down.svg +0 -0
  122. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-arrow-left.svg +0 -0
  123. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-arrow-right.svg +0 -0
  124. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-arrow-up.svg +0 -0
  125. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-attach.svg +0 -0
  126. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-back.svg +0 -0
  127. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-bookmark-border.svg +0 -0
  128. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-bookmark.svg +0 -0
  129. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-bookmarks.svg +0 -0
  130. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-cancel.svg +0 -0
  131. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-clear.svg +0 -0
  132. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-close.svg +0 -0
  133. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-copy.svg +0 -0
  134. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-create.svg +0 -0
  135. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-date.svg +0 -0
  136. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-delete.svg +0 -0
  137. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-drag.svg +0 -0
  138. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-email.svg +0 -0
  139. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-error.svg +0 -0
  140. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-exit.svg +0 -0
  141. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-export.svg +0 -0
  142. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-filter.svg +0 -0
  143. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-format-align-center.svg +0 -0
  144. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-format-align-justify.svg +0 -0
  145. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-format-align-left.svg +0 -0
  146. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-format-align-right.svg +0 -0
  147. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-format-bold.svg +0 -0
  148. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-format-color-text.svg +0 -0
  149. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-format-italic.svg +0 -0
  150. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-format-underline.svg +0 -0
  151. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-forward.svg +0 -0
  152. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-history.svg +0 -0
  153. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-icon.png +0 -0
  154. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-import.svg +0 -0
  155. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-info.svg +0 -0
  156. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-launch.svg +0 -0
  157. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-link.svg +0 -0
  158. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-log.svg +0 -0
  159. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-menu.svg +0 -0
  160. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-note.svg +0 -0
  161. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-ok.svg +0 -0
  162. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-open.svg +0 -0
  163. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-print.svg +0 -0
  164. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-public.svg +0 -0
  165. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-question.svg +0 -0
  166. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-refresh.svg +0 -0
  167. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-remove.svg +0 -0
  168. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-save.svg +0 -0
  169. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-search.svg +0 -0
  170. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-send.svg +0 -0
  171. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-star-border.svg +0 -0
  172. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-star.svg +0 -0
  173. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-switch.svg +0 -0
  174. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-translate.svg +0 -0
  175. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-unarchive.svg +0 -0
  176. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-undo.svg +0 -0
  177. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton-warning.svg +0 -0
  178. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton.icns +0 -0
  179. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton.ico +0 -0
  180. {tryton-6.0.39 → tryton-6.0.41}/tryton/data/pixmaps/tryton/tryton.svg +0 -0
  181. {tryton-6.0.39 → tryton-6.0.41}/tryton/device_cookie.py +0 -0
  182. {tryton-6.0.39 → tryton-6.0.41}/tryton/exceptions.py +0 -0
  183. {tryton-6.0.39 → tryton-6.0.41}/tryton/fingerprints.py +0 -0
  184. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/__init__.py +0 -0
  185. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/main.py +0 -0
  186. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/__init__.py +0 -0
  187. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/about.py +0 -0
  188. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/attachment.py +0 -0
  189. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/board.py +0 -0
  190. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/dblogin.py +0 -0
  191. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/email_.py +0 -0
  192. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/form.py +0 -0
  193. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/infobar.py +0 -0
  194. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/limit.py +0 -0
  195. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/nomodal.py +0 -0
  196. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/note.py +0 -0
  197. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/preference.py +0 -0
  198. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/revision.py +0 -0
  199. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/tabcontent.py +0 -0
  200. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_board/__init__.py +0 -0
  201. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_board/action.py +0 -0
  202. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_board/view_board.py +0 -0
  203. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/__init__.py +0 -0
  204. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/model/__init__.py +0 -0
  205. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/model/group.py +0 -0
  206. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/model/record.py +0 -0
  207. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/screen/__init__.py +0 -0
  208. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/screen/screen.py +0 -0
  209. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/__init__.py +0 -0
  210. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/calendar_.py +0 -0
  211. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/calendar_gtk/__init__.py +0 -0
  212. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/calendar_gtk/dates_period.py +0 -0
  213. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/calendar_gtk/toolbar.py +0 -0
  214. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form.py +0 -0
  215. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/__init__.py +0 -0
  216. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/binary.py +0 -0
  217. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/calendar_.py +0 -0
  218. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/char.py +0 -0
  219. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/checkbox.py +0 -0
  220. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/float.py +0 -0
  221. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/image.py +0 -0
  222. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/integer.py +0 -0
  223. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/many2many.py +0 -0
  224. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/many2one.py +0 -0
  225. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/multiselection.py +0 -0
  226. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/one2many.py +0 -0
  227. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/one2one.py +0 -0
  228. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/progressbar.py +0 -0
  229. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/pyson.py +0 -0
  230. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/reference.py +0 -0
  231. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/richtextbox.py +0 -0
  232. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/selection.py +0 -0
  233. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/state_widget.py +0 -0
  234. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/textbox.py +0 -0
  235. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/timedelta.py +0 -0
  236. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/url.py +0 -0
  237. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/form_gtk/widget.py +0 -0
  238. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/graph.py +0 -0
  239. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/graph_gtk/__init__.py +0 -0
  240. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/graph_gtk/bar.py +0 -0
  241. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/graph_gtk/graph.py +0 -0
  242. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/graph_gtk/line.py +0 -0
  243. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/graph_gtk/pie.py +0 -0
  244. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/list.py +0 -0
  245. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/list_form.py +0 -0
  246. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/list_gtk/__init__.py +0 -0
  247. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/list_gtk/editabletree.py +0 -0
  248. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/list_gtk/widget.py +0 -0
  249. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/view_form/view/screen_container.py +0 -0
  250. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/win_csv.py +0 -0
  251. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/win_export.py +0 -0
  252. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/win_import.py +0 -0
  253. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/win_search.py +0 -0
  254. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/window.py +0 -0
  255. {tryton-6.0.39 → tryton-6.0.41}/tryton/gui/window/wizard.py +0 -0
  256. {tryton-6.0.39 → tryton-6.0.41}/tryton/jsonrpc.py +0 -0
  257. {tryton-6.0.39 → tryton-6.0.41}/tryton/plugins/__init__.py +0 -0
  258. {tryton-6.0.39 → tryton-6.0.41}/tryton/plugins/translation/__init__.py +0 -0
  259. {tryton-6.0.39 → tryton-6.0.41}/tryton/pyson.py +0 -0
  260. {tryton-6.0.39 → tryton-6.0.41}/tryton/rpc.py +0 -0
  261. {tryton-6.0.39 → tryton-6.0.41}/tryton/signal_event.py +0 -0
  262. {tryton-6.0.39 → tryton-6.0.41}/tryton/tests/__init__.py +0 -0
  263. {tryton-6.0.39 → tryton-6.0.41}/tryton/tests/test_common_domain_parser.py +0 -0
  264. {tryton-6.0.39 → tryton-6.0.41}/tryton/tests/test_common_selection.py +0 -0
  265. {tryton-6.0.39 → tryton-6.0.41}/tryton/tests/test_common_timedelta.py +0 -0
  266. {tryton-6.0.39 → tryton-6.0.41}/tryton/translate.py +0 -0
  267. {tryton-6.0.39 → tryton-6.0.41}/tryton.desktop +0 -0
  268. {tryton-6.0.39 → tryton-6.0.41}/tryton.egg-info/SOURCES.txt +0 -0
  269. {tryton-6.0.39 → tryton-6.0.41}/tryton.egg-info/dependency_links.txt +0 -0
  270. {tryton-6.0.39 → tryton-6.0.41}/tryton.egg-info/not-zip-safe +0 -0
  271. {tryton-6.0.39 → tryton-6.0.41}/tryton.egg-info/requires.txt +0 -0
  272. {tryton-6.0.39 → tryton-6.0.41}/tryton.egg-info/top_level.txt +0 -0
  273. {tryton-6.0.39 → tryton-6.0.41}/win32/gtk-3.0/gdk-pixbuf.loaders +0 -0
  274. {tryton-6.0.39 → tryton-6.0.41}/win32/gtk-3.0/gtk.immodules +0 -0
@@ -1,4 +1,14 @@
1
1
 
2
+ Version 6.0.41 - 2024-08-01
3
+ ---------------------------
4
+ * Bug fixes (see mercurial logs for details)
5
+
6
+
7
+ Version 6.0.40 - 2024-07-01
8
+ ---------------------------
9
+ * Bug fixes (see mercurial logs for details)
10
+
11
+
2
12
  Version 6.0.39 - 2024-05-01
3
13
  ---------------------------
4
14
  * Bug fixes (see mercurial logs for details)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tryton
3
- Version: 6.0.39
3
+ Version: 6.0.41
4
4
  Summary: Tryton desktop client
5
5
  Home-page: http://www.tryton.org/
6
6
  Download-URL: http://downloads.tryton.org/6.0/
@@ -18,7 +18,8 @@ if hasattr(sys, 'frozen'):
18
18
  share = os.path.join(prefix, 'share')
19
19
  os.environ['GTK_EXE_PREFIX'] = prefix
20
20
  os.environ['GTK_DATA_PREFIX'] = prefix
21
- os.environ['EV_BACKENDS_DIR'] = prefix
21
+ os.environ['EV_BACKENDS_DIR'] = os.path.join(
22
+ prefix, 'lib', 'evince', '4', 'backends')
22
23
  os.environ['XDG_DATA_DIRS'] = share
23
24
  os.environ['GDK_PIXBUF_MODULE_FILE'] = os.path.join(
24
25
  share, 'gtk-3.0', 'gdk-pixbuf.loaders')
@@ -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__ = "6.0.39"
3
+ __version__ = "6.0.41"
4
4
  import gi
5
5
  import locale
6
6
 
@@ -15,6 +15,7 @@ import datetime
15
15
  import decimal
16
16
  from decimal import Decimal
17
17
  import math
18
+ from pathlib import Path
18
19
  from tryton.common import RPCExecute, RPCException
19
20
  from tryton.common.htmltextbuffer import guess_decode
20
21
  from tryton.pyson import PYSONDecoder
@@ -993,26 +994,56 @@ class ReferenceField(Field):
993
994
 
994
995
 
995
996
  class _FileCache(object):
996
- def __init__(self, path):
997
- self.path = path
997
+ def __init__(self, data=None):
998
+ _, filename = tempfile.mkstemp(prefix='tryton_')
999
+ self.path = Path(filename)
1000
+ self.suffixes = {}
1001
+ if data:
1002
+ with open(self.path, 'wb') as fp:
1003
+ fp.write(data)
1004
+
1005
+ @property
1006
+ def data(self):
1007
+ with open(self.path, 'rb') as fp:
1008
+ return fp.read()
998
1009
 
999
1010
  def __del__(self):
1000
1011
  try:
1001
1012
  os.remove(self.path)
1002
1013
  except IOError:
1003
1014
  pass
1015
+ for path in self.suffixes.values():
1016
+ try:
1017
+ os.remove(path)
1018
+ except IOError:
1019
+ pass
1020
+
1021
+ def with_suffix(self, suffix):
1022
+ if suffix in self.suffixes:
1023
+ return self.suffixes[suffix]
1024
+ _, filename = tempfile.mkstemp(prefix='tryton_', suffix=suffix)
1025
+ self.suffixes[suffix] = path = Path(filename)
1026
+ with open(path, 'wb') as fp:
1027
+ fp.write(self.data)
1028
+ return path
1004
1029
 
1005
1030
 
1006
1031
  class BinaryField(Field):
1007
1032
 
1008
1033
  _default = None
1009
1034
 
1035
+ def _set_file_cache(self, record, data):
1036
+ if isinstance(data, str):
1037
+ data = data.encode('utf-8')
1038
+ file_cache = _FileCache(data)
1039
+ self.set(record, file_cache)
1040
+ return file_cache
1041
+
1010
1042
  def get(self, record):
1011
1043
  result = record.value.get(self.name, self._default)
1012
1044
  if isinstance(result, _FileCache):
1013
1045
  try:
1014
- with open(result.path, 'rb') as fp:
1015
- result = fp.read()
1046
+ result = result.data
1016
1047
  except IOError:
1017
1048
  result = self.get_data(record)
1018
1049
  return result
@@ -1021,13 +1052,7 @@ class BinaryField(Field):
1021
1052
  return self.get(record)
1022
1053
 
1023
1054
  def set_client(self, record, value, force_change=False):
1024
- _, filename = tempfile.mkstemp(prefix='tryton_')
1025
- data = value or b''
1026
- if isinstance(data, str):
1027
- data = data.encode('utf-8')
1028
- with open(filename, 'wb') as fp:
1029
- fp.write(data)
1030
- self.set(record, _FileCache(filename))
1055
+ self._set_file_cache(record, value or b'')
1031
1056
  record.modified_fields.setdefault(self.name)
1032
1057
  record.signal('record-modified')
1033
1058
  self.sig_changed(record)
@@ -1053,15 +1078,20 @@ class BinaryField(Field):
1053
1078
  [record.id], [self.name], context=context)
1054
1079
  except RPCException:
1055
1080
  return b''
1056
- _, filename = tempfile.mkstemp(prefix='tryton_')
1057
- data = values[self.name] or b''
1058
- if isinstance(data, str):
1059
- data = data.encode('utf-8')
1060
- with open(filename, 'wb') as fp:
1061
- fp.write(data)
1062
- self.set(record, _FileCache(filename))
1081
+ self._set_file_cache(record, values[self.name] or b'')
1063
1082
  return self.get(record)
1064
1083
 
1084
+ def get_filename(self, record, suffix=None):
1085
+ data = self.get_data(record)
1086
+ file_cache = record.value.get(self.name)
1087
+ if not isinstance(file_cache, _FileCache):
1088
+ file_cache = self._set_file_cache(record, data)
1089
+ if suffix:
1090
+ filename = file_cache.with_suffix(suffix)
1091
+ else:
1092
+ filename = file_cache.path
1093
+ return filename
1094
+
1065
1095
 
1066
1096
  class DictField(Field):
1067
1097
 
@@ -1072,10 +1102,10 @@ class DictField(Field):
1072
1102
  self.keys = {}
1073
1103
 
1074
1104
  def get(self, record):
1075
- return super(DictField, self).get(record) or self._default
1105
+ return (super().get(record) or self._default).copy()
1076
1106
 
1077
1107
  def get_client(self, record):
1078
- return super(DictField, self).get_client(record) or self._default
1108
+ return super().get_client(record)
1079
1109
 
1080
1110
  def validation_domains(self, record, pre_validate=None):
1081
1111
  screen_domain, attr_domain = self.domains_get(record, pre_validate)
@@ -65,13 +65,18 @@ class Calendar_(goocalendar.Calendar):
65
65
  self.current_domain_period.get_dates(True)
66
66
  dtstart = self.attrs['dtstart']
67
67
  dtend = self.attrs.get('dtend') or dtstart
68
- domain = ['OR',
69
- ['AND', (dtstart, '>=', first_datetime),
70
- (dtstart, '<', last_datetime)],
71
- ['AND', (dtend, '>=', first_datetime),
72
- (dtend, '<', last_datetime)],
73
- ['AND', (dtstart, '<', first_datetime),
74
- (dtend, '>', last_datetime)]]
68
+ domain = [
69
+ (dtstart, '!=', None),
70
+ (dtend, '!=', None),
71
+ ['OR',
72
+ ['AND', (dtstart, '>=', first_datetime),
73
+ (dtstart, '<', last_datetime)],
74
+ ['AND', (dtend, '>=', first_datetime),
75
+ (dtend, '<', last_datetime)],
76
+ ['AND', (dtstart, '<', first_datetime),
77
+ (dtend, '>', last_datetime)],
78
+ ],
79
+ ]
75
80
  return domain
76
81
 
77
82
  def get_colors(self, record):
@@ -236,9 +236,10 @@ class DictMultiSelectionEntry(DictEntry):
236
236
  selection.handler_block_by_func(self._changed)
237
237
  try:
238
238
  selection.unselect_all()
239
- for v in value:
240
- if v in value2path:
241
- selection.select_path(value2path[v])
239
+ if value:
240
+ for v in value:
241
+ if v in value2path:
242
+ selection.select_path(value2path[v])
242
243
  finally:
243
244
  selection.handler_unblock_by_func(self._changed)
244
245
 
@@ -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 Gtk, Gdk, GLib
7
6
  try:
@@ -75,17 +74,17 @@ class Document(BinaryMixin, Widget):
75
74
  self.image.hide()
76
75
  if self.evince_view:
77
76
  self.evince_scroll.show()
77
+ suffix = None
78
78
  if self.filename_field:
79
- suffix = self.filename_field.get(self.record)
80
- else:
81
- suffix = None
79
+ filename = self.filename_field.get(self.record)
80
+ if filename:
81
+ suffix = Path(filename).suffix
82
+ filename = Path(self.field.get_filename(self.record, suffix))
82
83
  try:
83
- with NamedTemporaryFile(suffix=suffix) as fp:
84
- fp.write(data)
85
- path = Path(fp.name)
86
- document = (
87
- EvinceDocument.Document.factory_get_document(
88
- path.as_uri()))
84
+ document = (
85
+ EvinceDocument.Document.factory_get_document_full(
86
+ filename.as_uri(),
87
+ EvinceDocument.DocumentLoadFlags.NONE))
89
88
  model = EvinceView.DocumentModel()
90
89
  model.set_document(document)
91
90
  self.evince_view.set_model(model)
@@ -68,7 +68,7 @@ class WinForm(NoModal, InfoBar):
68
68
  self.accel_group = Gtk.AccelGroup()
69
69
  self.win.add_accel_group(self.accel_group)
70
70
 
71
- readonly = self.screen.readonly or self.screen.group.readonly
71
+ readonly = self.screen.group.readonly
72
72
 
73
73
  self.but_ok = None
74
74
  self.but_new = None
@@ -355,7 +355,7 @@ class WinForm(NoModal, InfoBar):
355
355
  deletable = True
356
356
  if screen.current_record:
357
357
  deletable = screen.current_record.deletable
358
- readonly = self.screen.readonly or self.screen.group.readonly
358
+ readonly = self.screen.group.readonly
359
359
  if signal_data[0] >= 1:
360
360
  name = str(signal_data[0])
361
361
  if self.domain is not None:
@@ -368,9 +368,11 @@ class WinForm(NoModal, InfoBar):
368
368
  self.but_pre.set_sensitive(True)
369
369
  else:
370
370
  self.but_pre.set_sensitive(False)
371
- if access['delete'] and not readonly and deletable:
372
- self.but_del.set_sensitive(True)
373
- self.but_undel.set_sensitive(True)
371
+ self.but_del.set_sensitive(bool(
372
+ not readonly
373
+ and access['delete']
374
+ and deletable))
375
+ self.but_undel.set_sensitive(bool(not readonly))
374
376
  else:
375
377
  self.but_del.set_sensitive(False)
376
378
  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):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tryton
3
- Version: 6.0.39
3
+ Version: 6.0.41
4
4
  Summary: Tryton desktop client
5
5
  Home-page: http://www.tryton.org/
6
6
  Download-URL: http://downloads.tryton.org/6.0/
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes