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/

Reply via email to