Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package tryton for openSUSE:Factory checked in at 2024-07-02 18:19:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/tryton (Old) and /work/SRC/openSUSE:Factory/.tryton.new.18349 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tryton" Tue Jul 2 18:19:18 2024 rev:24 rq:1184806 version:6.0.40 Changes: -------- --- /work/SRC/openSUSE:Factory/tryton/tryton.changes 2024-05-07 18:03:51.751507845 +0200 +++ /work/SRC/openSUSE:Factory/.tryton.new.18349/tryton.changes 2024-07-02 18:19:22.961858685 +0200 @@ -1,0 +2,5 @@ +Tue Jul 2 09:11:38 UTC 2024 - Axel Braun <axel.br...@gmx.de> + +- Version 6.0.40 - Bugfix Release + +------------------------------------------------------------------- Old: ---- tryton-6.0.39.tar.gz New: ---- tryton-6.0.40.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ tryton.spec ++++++ --- /var/tmp/diff_new_pack.BBrdZ3/_old 2024-07-02 18:19:24.161902593 +0200 +++ /var/tmp/diff_new_pack.BBrdZ3/_new 2024-07-02 18:19:24.161902593 +0200 @@ -30,7 +30,7 @@ Name: tryton -Version: %{majorver}.39 +Version: %{majorver}.40 Release: 0 Summary: The client of the Tryton application platform License: GPL-3.0-or-later ++++++ tryton-6.0.39.tar.gz -> tryton-6.0.40.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tryton-6.0.39/CHANGELOG new/tryton-6.0.40/CHANGELOG --- old/tryton-6.0.39/CHANGELOG 2024-05-01 11:18:44.000000000 +0200 +++ new/tryton-6.0.40/CHANGELOG 2024-07-01 18:03:18.000000000 +0200 @@ -1,4 +1,9 @@ +Version 6.0.40 - 2024-07-01 +--------------------------- +* Bug fixes (see mercurial logs for details) + + Version 6.0.39 - 2024-05-01 --------------------------- * Bug fixes (see mercurial logs for details) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tryton-6.0.39/PKG-INFO new/tryton-6.0.40/PKG-INFO --- old/tryton-6.0.39/PKG-INFO 2024-05-01 11:18:48.061577800 +0200 +++ new/tryton-6.0.40/PKG-INFO 2024-07-01 18:03:22.196179400 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: tryton -Version: 6.0.39 +Version: 6.0.40 Summary: Tryton desktop client Home-page: http://www.tryton.org/ Download-URL: http://downloads.tryton.org/6.0/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tryton-6.0.39/bin/tryton new/tryton-6.0.40/bin/tryton --- old/tryton-6.0.39/bin/tryton 2024-03-28 17:16:57.000000000 +0100 +++ new/tryton-6.0.40/bin/tryton 2024-06-27 18:59:40.000000000 +0200 @@ -18,7 +18,8 @@ share = os.path.join(prefix, 'share') os.environ['GTK_EXE_PREFIX'] = prefix os.environ['GTK_DATA_PREFIX'] = prefix - os.environ['EV_BACKENDS_DIR'] = prefix + os.environ['EV_BACKENDS_DIR'] = os.path.join( + prefix, 'lib', 'evince', '4', 'backends') os.environ['XDG_DATA_DIRS'] = share os.environ['GDK_PIXBUF_MODULE_FILE'] = os.path.join( share, 'gtk-3.0', 'gdk-pixbuf.loaders') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tryton-6.0.39/tryton/__init__.py new/tryton-6.0.40/tryton/__init__.py --- old/tryton-6.0.39/tryton/__init__.py 2024-04-17 12:30:46.000000000 +0200 +++ new/tryton-6.0.40/tryton/__init__.py 2024-05-01 11:19:00.000000000 +0200 @@ -1,6 +1,6 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -__version__ = "6.0.39" +__version__ = "6.0.40" import gi import locale Binary files old/tryton-6.0.39/tryton/data/locale/bg/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/bg/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/ca/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/ca/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/cs/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/cs/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/de/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/de/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/es/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/es/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/es_419/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/es_419/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/et/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/et/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/fa/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/fa/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/fi/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/fi/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/fr/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/fr/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/hu/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/hu/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/id/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/id/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/it/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/it/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/ja_JP/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/ja_JP/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/lo/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/lo/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/lt/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/lt/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/nl/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/nl/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/pl/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/pl/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/pt/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/pt/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/ro/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/ro/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/ru/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/ru/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/sl/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/sl/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/tr/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/tr/LC_MESSAGES/tryton.mo differ Binary files old/tryton-6.0.39/tryton/data/locale/zh_CN/LC_MESSAGES/tryton.mo and new/tryton-6.0.40/tryton/data/locale/zh_CN/LC_MESSAGES/tryton.mo differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tryton-6.0.39/tryton/gui/window/view_form/model/field.py new/tryton-6.0.40/tryton/gui/window/view_form/model/field.py --- old/tryton-6.0.39/tryton/gui/window/view_form/model/field.py 2024-01-08 11:49:20.000000000 +0100 +++ new/tryton-6.0.40/tryton/gui/window/view_form/model/field.py 2024-06-27 18:58:48.000000000 +0200 @@ -15,6 +15,7 @@ import decimal from decimal import Decimal import math +from pathlib import Path from tryton.common import RPCExecute, RPCException from tryton.common.htmltextbuffer import guess_decode from tryton.pyson import PYSONDecoder @@ -993,26 +994,56 @@ class _FileCache(object): - def __init__(self, path): - self.path = path + def __init__(self, data=None): + _, filename = tempfile.mkstemp(prefix='tryton_') + self.path = Path(filename) + self.suffixes = {} + if data: + with open(self.path, 'wb') as fp: + fp.write(data) + + @property + def data(self): + with open(self.path, 'rb') as fp: + return fp.read() def __del__(self): try: os.remove(self.path) except IOError: pass + for path in self.suffixes.values(): + try: + os.remove(path) + except IOError: + pass + + def with_suffix(self, suffix): + if suffix in self.suffixes: + return self.suffixes[suffix] + _, filename = tempfile.mkstemp(prefix='tryton_', suffix=suffix) + self.suffixes[suffix] = path = Path(filename) + with open(path, 'wb') as fp: + fp.write(self.data) + return path class BinaryField(Field): _default = None + def _set_file_cache(self, record, data): + if isinstance(data, str): + data = data.encode('utf-8') + file_cache = _FileCache(data) + self.set(record, file_cache) + return file_cache + def get(self, record): result = record.value.get(self.name, self._default) if isinstance(result, _FileCache): try: - with open(result.path, 'rb') as fp: - result = fp.read() + result = result.data except IOError: result = self.get_data(record) return result @@ -1021,13 +1052,7 @@ return self.get(record) def set_client(self, record, value, force_change=False): - _, filename = tempfile.mkstemp(prefix='tryton_') - data = value or b'' - if isinstance(data, str): - data = data.encode('utf-8') - with open(filename, 'wb') as fp: - fp.write(data) - self.set(record, _FileCache(filename)) + self._set_file_cache(record, value or b'') record.modified_fields.setdefault(self.name) record.signal('record-modified') self.sig_changed(record) @@ -1053,15 +1078,20 @@ [record.id], [self.name], context=context) except RPCException: return b'' - _, filename = tempfile.mkstemp(prefix='tryton_') - data = values[self.name] or b'' - if isinstance(data, str): - data = data.encode('utf-8') - with open(filename, 'wb') as fp: - fp.write(data) - self.set(record, _FileCache(filename)) + self._set_file_cache(record, values[self.name] or b'') return self.get(record) + def get_filename(self, record, suffix=None): + data = self.get_data(record) + file_cache = record.value.get(self.name) + if not isinstance(file_cache, _FileCache): + file_cache = self._set_file_cache(record, data) + if suffix: + filename = file_cache.with_suffix(suffix) + else: + filename = file_cache.path + return filename + class DictField(Field): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tryton-6.0.39/tryton/gui/window/view_form/view/calendar_gtk/calendar_.py new/tryton-6.0.40/tryton/gui/window/view_form/view/calendar_gtk/calendar_.py --- old/tryton-6.0.39/tryton/gui/window/view_form/view/calendar_gtk/calendar_.py 2023-05-17 23:03:30.000000000 +0200 +++ new/tryton-6.0.40/tryton/gui/window/view_form/view/calendar_gtk/calendar_.py 2024-06-27 18:49:48.000000000 +0200 @@ -65,13 +65,18 @@ self.current_domain_period.get_dates(True) dtstart = self.attrs['dtstart'] dtend = self.attrs.get('dtend') or dtstart - domain = ['OR', - ['AND', (dtstart, '>=', first_datetime), - (dtstart, '<', last_datetime)], - ['AND', (dtend, '>=', first_datetime), - (dtend, '<', last_datetime)], - ['AND', (dtstart, '<', first_datetime), - (dtend, '>', last_datetime)]] + domain = [ + (dtstart, '!=', None), + (dtend, '!=', None), + ['OR', + ['AND', (dtstart, '>=', first_datetime), + (dtstart, '<', last_datetime)], + ['AND', (dtend, '>=', first_datetime), + (dtend, '<', last_datetime)], + ['AND', (dtstart, '<', first_datetime), + (dtend, '>', last_datetime)], + ], + ] return domain def get_colors(self, record): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tryton-6.0.39/tryton/gui/window/view_form/view/form_gtk/document.py new/tryton-6.0.40/tryton/gui/window/view_form/view/form_gtk/document.py --- old/tryton-6.0.39/tryton/gui/window/view_form/view/form_gtk/document.py 2023-05-17 23:03:30.000000000 +0200 +++ new/tryton-6.0.40/tryton/gui/window/view_form/view/form_gtk/document.py 2024-06-27 18:56:30.000000000 +0200 @@ -1,7 +1,6 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. from pathlib import Path -from tempfile import NamedTemporaryFile from gi.repository import Gtk, Gdk, GLib try: @@ -75,17 +74,17 @@ self.image.hide() if self.evince_view: self.evince_scroll.show() + suffix = None if self.filename_field: - suffix = self.filename_field.get(self.record) - else: - suffix = None + filename = self.filename_field.get(self.record) + if filename: + suffix = Path(filename).suffix + filename = Path(self.field.get_filename(self.record, suffix)) try: - with NamedTemporaryFile(suffix=suffix) as fp: - fp.write(data) - path = Path(fp.name) - document = ( - EvinceDocument.Document.factory_get_document( - path.as_uri())) + document = ( + EvinceDocument.Document.factory_get_document_full( + filename.as_uri(), + EvinceDocument.DocumentLoadFlags.NONE)) model = EvinceView.DocumentModel() model.set_document(document) self.evince_view.set_model(model) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tryton-6.0.39/tryton/gui/window/win_form.py new/tryton-6.0.40/tryton/gui/window/win_form.py --- old/tryton-6.0.39/tryton/gui/window/win_form.py 2024-04-13 00:41:05.000000000 +0200 +++ new/tryton-6.0.40/tryton/gui/window/win_form.py 2024-06-27 19:07:40.000000000 +0200 @@ -68,7 +68,7 @@ self.accel_group = Gtk.AccelGroup() self.win.add_accel_group(self.accel_group) - readonly = self.screen.readonly or self.screen.group.readonly + readonly = self.screen.group.readonly self.but_ok = None self.but_new = None @@ -355,7 +355,7 @@ deletable = True if screen.current_record: deletable = screen.current_record.deletable - readonly = self.screen.readonly or self.screen.group.readonly + readonly = self.screen.group.readonly if signal_data[0] >= 1: name = str(signal_data[0]) if self.domain is not None: @@ -368,9 +368,11 @@ self.but_pre.set_sensitive(True) else: self.but_pre.set_sensitive(False) - if access['delete'] and not readonly and deletable: - self.but_del.set_sensitive(True) - self.but_undel.set_sensitive(True) + self.but_del.set_sensitive(bool( + not readonly + and access['delete'] + and deletable)) + self.but_undel.set_sensitive(bool(not readonly)) else: self.but_del.set_sensitive(False) self.but_undel.set_sensitive(False) @@ -399,7 +401,7 @@ cancel_responses = [ Gtk.ResponseType.CANCEL, Gtk.ResponseType.DELETE_EVENT] self.screen.current_view.set_value() - readonly = self.screen.readonly or self.screen.group.readonly + readonly = self.screen.group.readonly if (response_id not in cancel_responses and not readonly and self.screen.current_record is not None): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tryton-6.0.39/tryton.egg-info/PKG-INFO new/tryton-6.0.40/tryton.egg-info/PKG-INFO --- old/tryton-6.0.39/tryton.egg-info/PKG-INFO 2024-05-01 11:18:47.000000000 +0200 +++ new/tryton-6.0.40/tryton.egg-info/PKG-INFO 2024-07-01 18:03:21.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: tryton -Version: 6.0.39 +Version: 6.0.40 Summary: Tryton desktop client Home-page: http://www.tryton.org/ Download-URL: http://downloads.tryton.org/6.0/