tryton 7.2.16__tar.gz → 7.2.18__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 (286) hide show
  1. {tryton-7.2.16 → tryton-7.2.18}/CHANGELOG +10 -0
  2. {tryton-7.2.16 → tryton-7.2.18}/COPYRIGHT +1 -1
  3. {tryton-7.2.16 → tryton-7.2.18}/PKG-INFO +4 -3
  4. {tryton-7.2.16 → tryton-7.2.18}/setup.py +1 -1
  5. {tryton-7.2.16 → tryton-7.2.18}/tryton/__init__.py +1 -1
  6. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/domain_parser.py +8 -6
  7. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/bg/LC_MESSAGES/tryton.mo +0 -0
  8. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/ca/LC_MESSAGES/tryton.mo +0 -0
  9. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/cs/LC_MESSAGES/tryton.mo +0 -0
  10. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/de/LC_MESSAGES/tryton.mo +0 -0
  11. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/es/LC_MESSAGES/tryton.mo +0 -0
  12. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/es_419/LC_MESSAGES/tryton.mo +0 -0
  13. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/et/LC_MESSAGES/tryton.mo +0 -0
  14. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/fa/LC_MESSAGES/tryton.mo +0 -0
  15. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/fi/LC_MESSAGES/tryton.mo +0 -0
  16. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/fr/LC_MESSAGES/tryton.mo +0 -0
  17. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/hu/LC_MESSAGES/tryton.mo +0 -0
  18. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/id/LC_MESSAGES/tryton.mo +0 -0
  19. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/it/LC_MESSAGES/tryton.mo +0 -0
  20. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/ja_JP/LC_MESSAGES/tryton.mo +0 -0
  21. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/lo/LC_MESSAGES/tryton.mo +0 -0
  22. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/lt/LC_MESSAGES/tryton.mo +0 -0
  23. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/nl/LC_MESSAGES/tryton.mo +0 -0
  24. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/pl/LC_MESSAGES/tryton.mo +0 -0
  25. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/pt/LC_MESSAGES/tryton.mo +0 -0
  26. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/ro/LC_MESSAGES/tryton.mo +0 -0
  27. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/ru/LC_MESSAGES/tryton.mo +0 -0
  28. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/sl/LC_MESSAGES/tryton.mo +0 -0
  29. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/tr/LC_MESSAGES/tryton.mo +0 -0
  30. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/uk/LC_MESSAGES/tryton.mo +0 -0
  31. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/zh_CN/LC_MESSAGES/tryton.mo +0 -0
  32. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/form.py +4 -1
  33. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/model/field.py +5 -1
  34. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/screen/screen.py +10 -3
  35. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/list.py +4 -1
  36. tryton-7.2.18/tryton/gui/window/view_form/view/list_gtk/generictreemodel.py +426 -0
  37. {tryton-7.2.16 → tryton-7.2.18}/tryton.egg-info/PKG-INFO +4 -3
  38. {tryton-7.2.16 → tryton-7.2.18}/tryton.egg-info/SOURCES.txt +1 -0
  39. {tryton-7.2.16 → tryton-7.2.18}/tryton.egg-info/requires.txt +1 -1
  40. {tryton-7.2.16 → tryton-7.2.18}/LICENSE +0 -0
  41. {tryton-7.2.16 → tryton-7.2.18}/MANIFEST.in +0 -0
  42. {tryton-7.2.16 → tryton-7.2.18}/README.rst +0 -0
  43. {tryton-7.2.16 → tryton-7.2.18}/bin/tryton +0 -0
  44. {tryton-7.2.16 → tryton-7.2.18}/catalan.nsh +0 -0
  45. {tryton-7.2.16 → tryton-7.2.18}/doc/conf.py +0 -0
  46. {tryton-7.2.16 → tryton-7.2.18}/doc/glossary.rst +0 -0
  47. {tryton-7.2.16 → tryton-7.2.18}/doc/index.rst +0 -0
  48. {tryton-7.2.16 → tryton-7.2.18}/doc/installation.rst +0 -0
  49. {tryton-7.2.16 → tryton-7.2.18}/doc/releases.rst +0 -0
  50. {tryton-7.2.16 → tryton-7.2.18}/doc/requirements-doc.txt +0 -0
  51. {tryton-7.2.16 → tryton-7.2.18}/doc/usage.rst +0 -0
  52. {tryton-7.2.16 → tryton-7.2.18}/english.nsh +0 -0
  53. {tryton-7.2.16 → tryton-7.2.18}/farsi.nsh +0 -0
  54. {tryton-7.2.16 → tryton-7.2.18}/french.nsh +0 -0
  55. {tryton-7.2.16 → tryton-7.2.18}/german.nsh +0 -0
  56. {tryton-7.2.16 → tryton-7.2.18}/make-darwin-installer.sh +0 -0
  57. {tryton-7.2.16 → tryton-7.2.18}/make-win32-installer.sh +0 -0
  58. {tryton-7.2.16 → tryton-7.2.18}/portuguese.nsh +0 -0
  59. {tryton-7.2.16 → tryton-7.2.18}/setup-freeze.py +0 -0
  60. {tryton-7.2.16 → tryton-7.2.18}/setup.cfg +0 -0
  61. {tryton-7.2.16 → tryton-7.2.18}/setup.nsi +0 -0
  62. {tryton-7.2.16 → tryton-7.2.18}/slovenian.nsh +0 -0
  63. {tryton-7.2.16 → tryton-7.2.18}/spanish.nsh +0 -0
  64. {tryton-7.2.16 → tryton-7.2.18}/tox.ini +0 -0
  65. {tryton-7.2.16 → tryton-7.2.18}/tryton/action/__init__.py +0 -0
  66. {tryton-7.2.16 → tryton-7.2.18}/tryton/action/main.py +0 -0
  67. {tryton-7.2.16 → tryton-7.2.18}/tryton/bus.py +0 -0
  68. {tryton-7.2.16 → tryton-7.2.18}/tryton/cache.py +0 -0
  69. {tryton-7.2.16 → tryton-7.2.18}/tryton/client.py +0 -0
  70. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/__init__.py +0 -0
  71. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/button.py +0 -0
  72. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/cellrendererbinary.py +0 -0
  73. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/cellrendererbutton.py +0 -0
  74. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/cellrendererclickablepixbuf.py +0 -0
  75. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/cellrenderercombo.py +0 -0
  76. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/cellrendererfloat.py +0 -0
  77. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/cellrendererinteger.py +0 -0
  78. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/cellrenderertext.py +0 -0
  79. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/cellrenderertoggle.py +0 -0
  80. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/common.py +0 -0
  81. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/completion.py +0 -0
  82. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/datetime_.py +0 -0
  83. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/domain_inversion.py +0 -0
  84. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/entry_position.py +0 -0
  85. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/environment.py +0 -0
  86. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/focus.py +0 -0
  87. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/htmltextbuffer.py +0 -0
  88. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/number_entry.py +0 -0
  89. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/popup_menu.py +0 -0
  90. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/richtext.py +0 -0
  91. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/selection.py +0 -0
  92. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/tempfile.py +0 -0
  93. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/timedelta.py +0 -0
  94. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/underline.py +0 -0
  95. {tryton-7.2.16 → tryton-7.2.18}/tryton/common/widget_style.py +0 -0
  96. {tryton-7.2.16 → tryton-7.2.18}/tryton/config.py +0 -0
  97. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/bg/LC_MESSAGES/tryton.po +0 -0
  98. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/ca/LC_MESSAGES/tryton.po +0 -0
  99. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/cs/LC_MESSAGES/tryton.po +0 -0
  100. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/de/LC_MESSAGES/tryton.po +0 -0
  101. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/es/LC_MESSAGES/tryton.po +0 -0
  102. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/es_419/LC_MESSAGES/tryton.po +0 -0
  103. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/et/LC_MESSAGES/tryton.po +0 -0
  104. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/fa/LC_MESSAGES/tryton.po +0 -0
  105. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/fi/LC_MESSAGES/tryton.po +0 -0
  106. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/fr/LC_MESSAGES/tryton.po +0 -0
  107. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/hu/LC_MESSAGES/tryton.po +0 -0
  108. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/id/LC_MESSAGES/tryton.po +0 -0
  109. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/it/LC_MESSAGES/tryton.po +0 -0
  110. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/ja_JP/LC_MESSAGES/tryton.po +0 -0
  111. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/lo/LC_MESSAGES/tryton.po +0 -0
  112. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/lt/LC_MESSAGES/tryton.po +0 -0
  113. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/nl/LC_MESSAGES/tryton.po +0 -0
  114. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/pl/LC_MESSAGES/tryton.po +0 -0
  115. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/pt/LC_MESSAGES/tryton.po +0 -0
  116. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/ro/LC_MESSAGES/tryton.po +0 -0
  117. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/ru/LC_MESSAGES/tryton.po +0 -0
  118. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/sl/LC_MESSAGES/tryton.po +0 -0
  119. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/tr/LC_MESSAGES/tryton.po +0 -0
  120. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/tryton.pot +0 -0
  121. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/uk/LC_MESSAGES/tryton.po +0 -0
  122. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/locale/zh_CN/LC_MESSAGES/tryton.po +0 -0
  123. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/LICENSE +0 -0
  124. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-add.svg +0 -0
  125. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-archive.svg +0 -0
  126. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-arrow-down.svg +0 -0
  127. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-arrow-left.svg +0 -0
  128. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-arrow-right.svg +0 -0
  129. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-arrow-up.svg +0 -0
  130. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-attach.svg +0 -0
  131. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-back.svg +0 -0
  132. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-barcode-scanner.svg +0 -0
  133. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-bookmark-border.svg +0 -0
  134. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-bookmark.svg +0 -0
  135. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-bookmarks.svg +0 -0
  136. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-cancel.svg +0 -0
  137. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-clear.svg +0 -0
  138. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-close.svg +0 -0
  139. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-copy.svg +0 -0
  140. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-create.svg +0 -0
  141. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-date.svg +0 -0
  142. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-delete.svg +0 -0
  143. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-download.svg +0 -0
  144. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-drag.svg +0 -0
  145. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-email.svg +0 -0
  146. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-error.svg +0 -0
  147. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-exit.svg +0 -0
  148. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-export.svg +0 -0
  149. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-filter.svg +0 -0
  150. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-format-align-center.svg +0 -0
  151. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-format-align-justify.svg +0 -0
  152. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-format-align-left.svg +0 -0
  153. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-format-align-right.svg +0 -0
  154. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-format-bold.svg +0 -0
  155. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-format-color-text.svg +0 -0
  156. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-format-italic.svg +0 -0
  157. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-format-underline.svg +0 -0
  158. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-forward.svg +0 -0
  159. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-history.svg +0 -0
  160. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-icon.png +0 -0
  161. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-icon.svg +0 -0
  162. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-import.svg +0 -0
  163. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-info.svg +0 -0
  164. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-launch.svg +0 -0
  165. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-link.svg +0 -0
  166. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-log.svg +0 -0
  167. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-menu.svg +0 -0
  168. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-note.svg +0 -0
  169. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-ok.svg +0 -0
  170. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-open.svg +0 -0
  171. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-print.svg +0 -0
  172. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-public.svg +0 -0
  173. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-question.svg +0 -0
  174. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-refresh.svg +0 -0
  175. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-remove.svg +0 -0
  176. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-save.svg +0 -0
  177. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-search.svg +0 -0
  178. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-send.svg +0 -0
  179. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-sound-off.svg +0 -0
  180. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-sound-on.svg +0 -0
  181. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-star-border.svg +0 -0
  182. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-star.svg +0 -0
  183. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-switch.svg +0 -0
  184. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-translate.svg +0 -0
  185. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-unarchive.svg +0 -0
  186. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-undo.svg +0 -0
  187. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton-warning.svg +0 -0
  188. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton.icns +0 -0
  189. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton.ico +0 -0
  190. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/pixmaps/tryton/tryton.svg +0 -0
  191. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/sounds/LICENSE +0 -0
  192. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/sounds/danger.wav +0 -0
  193. {tryton-7.2.16 → tryton-7.2.18}/tryton/data/sounds/success.wav +0 -0
  194. {tryton-7.2.16 → tryton-7.2.18}/tryton/device_cookie.py +0 -0
  195. {tryton-7.2.16 → tryton-7.2.18}/tryton/exceptions.py +0 -0
  196. {tryton-7.2.16 → tryton-7.2.18}/tryton/fingerprints.py +0 -0
  197. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/__init__.py +0 -0
  198. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/main.py +0 -0
  199. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/__init__.py +0 -0
  200. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/about.py +0 -0
  201. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/attachment.py +0 -0
  202. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/board.py +0 -0
  203. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/code_scanner.py +0 -0
  204. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/dblogin.py +0 -0
  205. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/email_.py +0 -0
  206. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/infobar.py +0 -0
  207. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/limit.py +0 -0
  208. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/log.py +0 -0
  209. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/nomodal.py +0 -0
  210. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/note.py +0 -0
  211. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/preference.py +0 -0
  212. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/revision.py +0 -0
  213. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/tabcontent.py +0 -0
  214. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_board/__init__.py +0 -0
  215. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_board/action.py +0 -0
  216. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_board/view_board.py +0 -0
  217. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/__init__.py +0 -0
  218. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/model/__init__.py +0 -0
  219. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/model/group.py +0 -0
  220. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/model/record.py +0 -0
  221. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/screen/__init__.py +0 -0
  222. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/__init__.py +0 -0
  223. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/calendar_.py +0 -0
  224. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/calendar_gtk/__init__.py +0 -0
  225. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/calendar_gtk/calendar_.py +0 -0
  226. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/calendar_gtk/dates_period.py +0 -0
  227. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/calendar_gtk/toolbar.py +0 -0
  228. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form.py +0 -0
  229. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/__init__.py +0 -0
  230. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/binary.py +0 -0
  231. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/calendar_.py +0 -0
  232. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/char.py +0 -0
  233. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/checkbox.py +0 -0
  234. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/dictionary.py +0 -0
  235. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/document.py +0 -0
  236. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/float.py +0 -0
  237. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/image.py +0 -0
  238. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/integer.py +0 -0
  239. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/many2many.py +0 -0
  240. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/many2one.py +0 -0
  241. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/multiselection.py +0 -0
  242. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/one2many.py +0 -0
  243. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/one2one.py +0 -0
  244. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/progressbar.py +0 -0
  245. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/pyson.py +0 -0
  246. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/reference.py +0 -0
  247. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/richtextbox.py +0 -0
  248. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/selection.py +0 -0
  249. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/state_widget.py +0 -0
  250. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/textbox.py +0 -0
  251. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/timedelta.py +0 -0
  252. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/url.py +0 -0
  253. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/form_gtk/widget.py +0 -0
  254. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/graph.py +0 -0
  255. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/graph_gtk/__init__.py +0 -0
  256. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/graph_gtk/bar.py +0 -0
  257. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/graph_gtk/graph.py +0 -0
  258. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/graph_gtk/line.py +0 -0
  259. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/graph_gtk/pie.py +0 -0
  260. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/list_form.py +0 -0
  261. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/list_gtk/__init__.py +0 -0
  262. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/list_gtk/editabletree.py +0 -0
  263. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/list_gtk/widget.py +0 -0
  264. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/view_form/view/screen_container.py +0 -0
  265. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/win_csv.py +0 -0
  266. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/win_export.py +0 -0
  267. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/win_form.py +0 -0
  268. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/win_import.py +0 -0
  269. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/win_search.py +0 -0
  270. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/window.py +0 -0
  271. {tryton-7.2.16 → tryton-7.2.18}/tryton/gui/window/wizard.py +0 -0
  272. {tryton-7.2.16 → tryton-7.2.18}/tryton/jsonrpc.py +0 -0
  273. {tryton-7.2.16 → tryton-7.2.18}/tryton/plugins/__init__.py +0 -0
  274. {tryton-7.2.16 → tryton-7.2.18}/tryton/plugins/translation/__init__.py +0 -0
  275. {tryton-7.2.16 → tryton-7.2.18}/tryton/pyson.py +0 -0
  276. {tryton-7.2.16 → tryton-7.2.18}/tryton/rpc.py +0 -0
  277. {tryton-7.2.16 → tryton-7.2.18}/tryton/tests/__init__.py +0 -0
  278. {tryton-7.2.16 → tryton-7.2.18}/tryton/tests/test_common.py +0 -0
  279. {tryton-7.2.16 → tryton-7.2.18}/tryton/tests/test_common_domain_parser.py +0 -0
  280. {tryton-7.2.16 → tryton-7.2.18}/tryton/tests/test_common_selection.py +0 -0
  281. {tryton-7.2.16 → tryton-7.2.18}/tryton/tests/test_common_timedelta.py +0 -0
  282. {tryton-7.2.16 → tryton-7.2.18}/tryton/translate.py +0 -0
  283. {tryton-7.2.16 → tryton-7.2.18}/tryton.desktop +0 -0
  284. {tryton-7.2.16 → tryton-7.2.18}/tryton.egg-info/dependency_links.txt +0 -0
  285. {tryton-7.2.16 → tryton-7.2.18}/tryton.egg-info/not-zip-safe +0 -0
  286. {tryton-7.2.16 → tryton-7.2.18}/tryton.egg-info/top_level.txt +0 -0
@@ -1,4 +1,14 @@
1
1
 
2
+ Version 7.2.18 - 2025-05-02
3
+ ---------------------------
4
+ * Bug fixes (see mercurial logs for details)
5
+
6
+
7
+ Version 7.2.17 - 2025-04-26
8
+ ---------------------------
9
+ * Bug fixes (see mercurial logs for details)
10
+
11
+
2
12
  Version 7.2.16 - 2025-04-02
3
13
  ---------------------------
4
14
  * Bug fixes (see mercurial logs for details)
@@ -5,7 +5,7 @@ Copyright (C) 2007-2025 Cédric Krier.
5
5
  Copyright (C) 2008-2011 Udo Spallek.
6
6
  Copyright (C) 2008-2011 virtual things - Preisler & Spallek GbR.
7
7
  Copyright (C) 2008-2025 B2CK SPRL.
8
- Copyright (C) 2010-2024 Nicolas Évrard.
8
+ Copyright (C) 2010-2025 Nicolas Évrard.
9
9
  Copyright (C) 2011-2012 Rodrigo Hübner.
10
10
  Copyright (C) 2012-2013 Antoine Smolders.
11
11
  Copyright (C) 2020-2021 Maxime Richez
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: tryton
3
- Version: 7.2.16
3
+ Version: 7.2.18
4
4
  Summary: Tryton desktop client
5
5
  Home-page: http://www.tryton.org/
6
6
  Download-URL: http://downloads.tryton.org/7.2/
@@ -52,7 +52,7 @@ Requires-Python: >=3.8
52
52
  License-File: LICENSE
53
53
  Requires-Dist: pycairo
54
54
  Requires-Dist: python-dateutil
55
- Requires-Dist: PyGObject<3.51,>=3.19
55
+ Requires-Dist: PyGObject>=3.19
56
56
  Provides-Extra: calendar
57
57
  Requires-Dist: GooCalendar>=0.7; extra == "calendar"
58
58
  Provides-Extra: sound
@@ -65,6 +65,7 @@ Dynamic: download-url
65
65
  Dynamic: home-page
66
66
  Dynamic: keywords
67
67
  Dynamic: license
68
+ Dynamic: license-file
68
69
  Dynamic: platform
69
70
  Dynamic: project-url
70
71
  Dynamic: provides-extra
@@ -137,7 +137,7 @@ dist = setup(name=name,
137
137
  install_requires=[
138
138
  'pycairo',
139
139
  "python-dateutil",
140
- 'PyGObject>=3.19,<3.51',
140
+ 'PyGObject>=3.19',
141
141
  ],
142
142
  extras_require={
143
143
  'calendar': ['GooCalendar>=0.7'],
@@ -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.16"
3
+ __version__ = "7.2.18"
4
4
  import locale
5
5
 
6
6
  import gi
@@ -5,6 +5,7 @@ import decimal
5
5
  import gettext
6
6
  import io
7
7
  import locale
8
+ import math
8
9
  from collections import OrderedDict
9
10
  from decimal import Decimal
10
11
  from shlex import shlex
@@ -336,17 +337,18 @@ def format_value(field, value, target=None, context=None, _quote_empty=False):
336
337
  or isinstance(value, bool))):
337
338
  return ''
338
339
  digit = 0
339
- if isinstance(value, Decimal):
340
- cast = Decimal
341
- else:
342
- cast = float
343
- factor = cast(field.get('factor', 1))
344
- string_ = str(value * factor)
340
+ string_ = str(value)
345
341
  if 'e' in string_:
346
342
  string_, exp = string_.split('e')
347
343
  digit -= int(exp)
348
344
  if '.' in string_:
349
345
  digit += len(string_.rstrip('0').split('.')[1])
346
+ if isinstance(value, Decimal):
347
+ cast = Decimal
348
+ else:
349
+ cast = float
350
+ factor = cast(field.get('factor', 1))
351
+ digit -= round(math.log10(factor))
350
352
  return locale.localize(
351
353
  '{0:.{1}f}'.format(value * factor or 0, digit), True)
352
354
 
@@ -579,6 +579,7 @@ class Form(TabContent):
579
579
  name = str(position) if position else '_'
580
580
  selected = len(self.screen.selected_records)
581
581
  view_type = self.screen.current_view.view_type
582
+ next_view_type = self.screen.next_view_type
582
583
  has_views = self.screen.number_of_views > 1
583
584
  if selected > 1:
584
585
  name += '#%i' % selected
@@ -594,7 +595,9 @@ class Form(TabContent):
594
595
  for b in self.screen.get_buttons())
595
596
  set_sensitive(button_id, bool(position) and can_be_sensitive)
596
597
  set_sensitive(
597
- 'switch', (position or view_type == 'form') and has_views)
598
+ 'switch',
599
+ (position or view_type == 'form' or next_view_type != 'form')
600
+ and has_views)
598
601
  set_sensitive('remove', self.screen.deletable)
599
602
  set_sensitive('previous', self.screen.has_prev())
600
603
  set_sensitive('next', self.screen.has_next())
@@ -855,6 +855,7 @@ class O2MField(Field):
855
855
  force_remove=False)
856
856
 
857
857
  if value and (value.get('add') or value.get('update', [])):
858
+ vals_to_set = {}
858
859
  # First set already added fields to prevent triggering a
859
860
  # second on_change call
860
861
  for vals in value.get('update', []):
@@ -882,7 +883,10 @@ class O2MField(Field):
882
883
  continue
883
884
  record2 = group.get(vals['id'])
884
885
  if record2 is not None:
885
- record2.set_on_change(vals)
886
+ to_set = {
887
+ k: v for k, v in vals.items
888
+ if k not in vals_to_set}
889
+ record2.set_on_change(to_set)
886
890
 
887
891
  def validation_domains(self, record, pre_validate=None):
888
892
  screen_domain, attr_domain = self.domains_get(record, pre_validate)
@@ -485,8 +485,6 @@ class Screen:
485
485
  return self.__current_record
486
486
 
487
487
  def __set_current_record(self, record):
488
- if self.__current_record == record and record:
489
- return
490
488
  self.__current_record = record
491
489
  if record:
492
490
  try:
@@ -541,6 +539,15 @@ class Screen:
541
539
  def view_index(self):
542
540
  return self.__current_view
543
541
 
542
+ @property
543
+ def next_view_type(self):
544
+ views = self.views + self.view_to_load
545
+ next_view_index = (self.view_index + 1) % len(views)
546
+ next_view = views[next_view_index]
547
+ if not isinstance(next_view, str):
548
+ next_view = next_view.view_type
549
+ return next_view
550
+
544
551
  def switch_view(
545
552
  self, view_type=None, view_id=None, creatable=None, display=True):
546
553
  if view_id is not None:
@@ -884,7 +891,7 @@ class Screen:
884
891
  view.expand_nodes(expanded_nodes)
885
892
  view.select_nodes(selected_nodes)
886
893
  else:
887
- if selected_nodes:
894
+ if selected_nodes and not self.current_record:
888
895
  record = None
889
896
  for node in selected_nodes[0]:
890
897
  new_record = self.group.get(node)
@@ -9,7 +9,6 @@ from functools import wraps
9
9
  from io import StringIO
10
10
 
11
11
  from gi.repository import Gdk, GLib, GObject, Gtk
12
- from pygtkcompat.generictreemodel import GenericTreeModel
13
12
 
14
13
  import tryton.common as common
15
14
  from tryton.common import (
@@ -23,6 +22,7 @@ from tryton.pyson import PYSONDecoder
23
22
 
24
23
  from . import View, XMLViewParser
25
24
  from .list_gtk.editabletree import EditableTreeView, TreeView
25
+ from .list_gtk.generictreemodel import GenericTreeModel
26
26
  from .list_gtk.widget import (
27
27
  M2M, M2O, O2M, O2O, URL, Affix, Binary, Boolean, Button, Char, Date, Dict,
28
28
  Float, Image, Int, MultiSelection, ProgressBar, Reference, Selection, Text,
@@ -1073,6 +1073,9 @@ class ViewTree(View):
1073
1073
  records.append(model.get_value(iter_, 0))
1074
1074
  if self.record not in records:
1075
1075
  self.record = records[0]
1076
+ else:
1077
+ # Force record_message
1078
+ self.record = self.record
1076
1079
  else:
1077
1080
  self.record = None
1078
1081