Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Saving changes works only erratically

uhheyden
2009-08-22
2013-05-14
  • uhheyden
    uhheyden
    2009-08-22

    I run GRM 14.10.01 on Ubuntu Jaunty (Gnome), locale=German. I like the program, especially the web import and the search parameters.
    But trying to change a recipe afterwards is no fun at all!
    I found no way to open a recipe from the list directly in edit mode. I have to open the recipe card and edit from there. But if I do that, changes won't be saved although I am asked repeatedly whether I want to save the changes and press "save" every time. (It would also be better if the focus where on "save", not on "cancel" in that window.)
    The only way to get my changes saved is to close the recipe card manually as soon as I have the editing window open (and before I enter anything there!), then make my changes and use Ctrl+S to save.
    The "save" icon button only works once in a while with me, usually only the first time I use it after opening the program.
    Batch edit also doesn't seem to work reliably. Very often, especially when I have made changes in other recipes before, the Batch Edit window opens, I enter my changes and press OK , then the notification window opens and I press OK. Then the notification window closes, but the Batch Edit window stays open, and the changes are not done.

    I hope you know a solution to these problems (could be just my  error), as I really like the program and would like to go on using it.

    Best regards
    Ulrike

     
    • tom
      tom
      2009-08-23

      I hope it's obvious that I didn't design the "Save" button to behave randomly -- you're encountering some bug that's breaking saving. If you run from the terminal, you'll likely get some information printed out about errors when you try to save that might be useful.

      Given your German locale, my guess is that your bug is related to the i18n bug that I fixed shortly after 0.14.10 was released. I'll be pushing out a new release that you can try soon and see if that fixes the issue. You can also try running Gourmet in English to see whether in fact the bug is i18n related.

       
      • uhheyden
        uhheyden
        2009-08-28

        Hi Thomas,

        I just ran gourmet from the terminal and from the output it looks like there is some problem with the database text_factory (whatever that is). Also some  commands are flagged as deprecated.

        -------------------------------------------------------------------------------------------------------------------------

        ... Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.'} id_col= id
        Traceback (most recent call last):
          File "/usr/share/gourmet/gourmet/reccard.py", line 985, in save_cb
            self.current_rec = self.rg.rd.modify_rec(self.current_rec,newdict)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1041, in modify_rec
            retval = self.do_modify_rec(rec,dic)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1298, in do_modify_rec
            return self.do_modify(self.recipe_table,rec,dic)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1307, in do_modify
            qr = table.update(getattr(table.c,id_col)==getattr(row,id_col)).execute(**d)
          File "/var/lib/python-support/python2.6/sqlalchemy/sql/expression.py", line 1087, in execute
            return e.execute_clauseelement(self, multiparams, params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 1219, in execute_clauseelement
            return connection.execute_clauseelement(elem, multiparams, params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 895, in execute_clauseelement
            return self._execute_compiled(elem.compile(dialect=self.dialect, column_keys=keys, inline=len(params) > 1), distilled_params=params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 907, in _execute_compiled
            self.__execute_raw(context)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 916, in __execute_raw
            self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 960, in _cursor_execute
            self._handle_dbapi_exception(e, statement, parameters, cursor)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 942, in _handle_dbapi_exception
            raise exceptions.DBAPIError.instance(statement, parameters, e, connection_invalidated=is_disconnect)
        sqlalchemy.exceptions.ProgrammingError: (ProgrammingError) You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings. u'UPDATE recipe SET id=?, title=?, instructions=?, modifications=?, cuisine=?, rating=?, source=?, preptime=?, cooktime=?, yields=?, yield_unit=?, link=?, last_modified=? WHERE recipe.id = ?' [188, 'Pasta mit Meeresfr\xc3\xbcchten', u'Rezept f\xfcr zwei Chili-Anf\xe4nger\n \nF\xfcr das milde Chili-Pesto alle Zutaten in einem Mixer fein p\xfcrieren und so viel Oliven\xf6l dazugeben, dass eine s\xe4mige Konsistenz entsteht.\n \n\nTipp: Das Pesto h\xe4lt sich im K\xfchlschrank problemlos 1-2 Wochen, wenn es mit Oliven\xf6l an der Oberfl\xe4che aufgegossen und gut verschlossen wird. Da lohnt es sich, gleich die doppelte Menge herzustellen.\n\n \nF\xfcr die Pasta Salzwasser zum Kochen bringen. Linguine reinlegen und bissfest kochen. Gleichzeitig in einer gro\xdfen Pfanne Oliven\xf6l erhitzen und die Meeresfr\xfcchte 2-3 Minuten darin braten. Temperatur auf kleinste Stufe stellen und das Pesto mit den Meeresfr\xfcchten vermischen. Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.', u'', 'italienisch', 0, '', 600.0, 600.0, 2.0, 'servings', 'http://www.buntcooking.com/?p=1003', 1251499982.237479, 188]
        do_modify failed with args
        table= recipe row= (188, u'Pasta mit Meeresfr\xfcchten', u'Rezept f\xfcr zwei Chili-Anf\xe4nger\n \nF\xfcr das milde Chili-Pesto alle Zutaten in einem Mixer fein p\xfcrieren und so viel Oliven\xf6l dazugeben, dass eine s\xe4mige Konsistenz entsteht.\n \n\nTipp: Das Pesto h\xe4lt sich im K\xfchlschrank problemlos 1-2 Wochen, wenn es mit Oliven\xf6l an der Oberfl\xe4che aufgegossen und gut verschlossen wird. Da lohnt es sich, gleich die doppelte Menge herzustellen.\n\n \nF\xfcr die Pasta Salzwasser zum Kochen bringen. Linguine reinlegen und bissfest kochen. Gleichzeitig in einer gro\xdfen Pfanne Oliven\xf6l erhitzen und die Meeresfr\xfcchte 2-3 Minuten darin braten. Temperatur auf kleinste Stufe stellen und das Pesto mit den Meeresfr\xfcchten vermischen. Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.', None, u'italienisch', None, None, None, 600, 600, None, 2, u'servings', <read-write buffer ptr 0xc54c160, size 27868 at 0xc54c140>, <read-write buffer ptr 0xc3ff2f8, size 1868 at 0xc3ff2d8>, False, u'767c0bba8e5b9e9cf22a7ae2998d7323', u'1f1e5a02b22e222722a718375dbbcd36', u'http://www.buntcooking.com/?p=1003', 1251499894.893852)
        d= {'cuisine': 'italienisch', 'modifications': u'', 'rating': 0, 'title': 'Pasta mit Meeresfr\xc3\xbcchten', 'cooktime': 600.0, 'source': '', 'last_modified': 1251499982.809953, 'link': 'http://www.buntcooking.com/?p=1003', 'preptime': 600.0, 'yields': '2', 'id': 188, 'yield_unit': 'servings', 'instructions': u'Rezept f\xfcr zwei Chili-Anf\xe4nger\n \nF\xfcr das milde Chili-Pesto alle Zutaten in einem Mixer fein p\xfcrieren und so viel Oliven\xf6l dazugeben, dass eine s\xe4mige Konsistenz entsteht.\n \n\nTipp: Das Pesto h\xe4lt sich im K\xfchlschrank problemlos 1-2 Wochen, wenn es mit Oliven\xf6l an der Oberfl\xe4che aufgegossen und gut verschlossen wird. Da lohnt es sich, gleich die doppelte Menge herzustellen.\n\n \nF\xfcr die Pasta Salzwasser zum Kochen bringen. Linguine reinlegen und bissfest kochen. Gleichzeitig in einer gro\xdfen Pfanne Oliven\xf6l erhitzen und die Meeresfr\xfcchte 2-3 Minuten darin braten. Temperatur auf kleinste Stufe stellen und das Pesto mit den Meeresfr\xfcchten vermischen. Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.'} id_col= id
        Traceback (most recent call last):
          File "/usr/share/gourmet/gourmet/reccard.py", line 985, in save_cb
            self.current_rec = self.rg.rd.modify_rec(self.current_rec,newdict)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1041, in modify_rec
            retval = self.do_modify_rec(rec,dic)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1298, in do_modify_rec
            return self.do_modify(self.recipe_table,rec,dic)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1307, in do_modify
            qr = table.update(getattr(table.c,id_col)==getattr(row,id_col)).execute(**d)
          File "/var/lib/python-support/python2.6/sqlalchemy/sql/expression.py", line 1087, in execute
            return e.execute_clauseelement(self, multiparams, params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 1219, in execute_clauseelement
            return connection.execute_clauseelement(elem, multiparams, params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 895, in execute_clauseelement
            return self._execute_compiled(elem.compile(dialect=self.dialect, column_keys=keys, inline=len(params) > 1), distilled_params=params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 907, in _execute_compiled
            self.__execute_raw(context)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 916, in __execute_raw
            self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 960, in _cursor_execute
            self._handle_dbapi_exception(e, statement, parameters, cursor)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 942, in _handle_dbapi_exception
            raise exceptions.DBAPIError.instance(statement, parameters, e, connection_invalidated=is_disconnect)
        sqlalchemy.exceptions.ProgrammingError: (ProgrammingError) You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings. u'UPDATE recipe SET id=?, title=?, instructions=?, modifications=?, cuisine=?, rating=?, source=?, preptime=?, cooktime=?, yields=?, yield_unit=?, link=?, last_modified=? WHERE recipe.id = ?' [188, 'Pasta mit Meeresfr\xc3\xbcchten', u'Rezept f\xfcr zwei Chili-Anf\xe4nger\n \nF\xfcr das milde Chili-Pesto alle Zutaten in einem Mixer fein p\xfcrieren und so viel Oliven\xf6l dazugeben, dass eine s\xe4mige Konsistenz entsteht.\n \n\nTipp: Das Pesto h\xe4lt sich im K\xfchlschrank problemlos 1-2 Wochen, wenn es mit Oliven\xf6l an der Oberfl\xe4che aufgegossen und gut verschlossen wird. Da lohnt es sich, gleich die doppelte Menge herzustellen.\n\n \nF\xfcr die Pasta Salzwasser zum Kochen bringen. Linguine reinlegen und bissfest kochen. Gleichzeitig in einer gro\xdfen Pfanne Oliven\xf6l erhitzen und die Meeresfr\xfcchte 2-3 Minuten darin braten. Temperatur auf kleinste Stufe stellen und das Pesto mit den Meeresfr\xfcchten vermischen. Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.', u'', 'italienisch', 0, '', 600.0, 600.0, 2.0, 'servings', 'http://www.buntcooking.com/?p=1003', 1251499982.809953, 188]
        do_modify failed with args
        table= recipe row= (188, u'Pasta mit Meeresfr\xfcchten', u'Rezept f\xfcr zwei Chili-Anf\xe4nger\n \nF\xfcr das milde Chili-Pesto alle Zutaten in einem Mixer fein p\xfcrieren und so viel Oliven\xf6l dazugeben, dass eine s\xe4mige Konsistenz entsteht.\n \n\nTipp: Das Pesto h\xe4lt sich im K\xfchlschrank problemlos 1-2 Wochen, wenn es mit Oliven\xf6l an der Oberfl\xe4che aufgegossen und gut verschlossen wird. Da lohnt es sich, gleich die doppelte Menge herzustellen.\n\n \nF\xfcr die Pasta Salzwasser zum Kochen bringen. Linguine reinlegen und bissfest kochen. Gleichzeitig in einer gro\xdfen Pfanne Oliven\xf6l erhitzen und die Meeresfr\xfcchte 2-3 Minuten darin braten. Temperatur auf kleinste Stufe stellen und das Pesto mit den Meeresfr\xfcchten vermischen. Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.', None, u'italienisch', None, None, None, 600, 600, None, 2, u'servings', <read-write buffer ptr 0xc54c160, size 27868 at 0xc54c140>, <read-write buffer ptr 0xc3ff2f8, size 1868 at 0xc3ff2d8>, False, u'767c0bba8e5b9e9cf22a7ae2998d7323', u'1f1e5a02b22e222722a718375dbbcd36', u'http://www.buntcooking.com/?p=1003', 1251499894.893852)
        d= {'cuisine': 'italienisch', 'modifications': u'', 'rating': 0, 'title': 'Pasta mit Meeresfr\xc3\xbcchten', 'cooktime': 600.0, 'source': '', 'last_modified': 1251499983.468019, 'link': 'http://www.buntcooking.com/?p=1003', 'preptime': 600.0, 'yields': '2', 'id': 188, 'yield_unit': 'servings', 'instructions': u'Rezept f\xfcr zwei Chili-Anf\xe4nger\n \nF\xfcr das milde Chili-Pesto alle Zutaten in einem Mixer fein p\xfcrieren und so viel Oliven\xf6l dazugeben, dass eine s\xe4mige Konsistenz entsteht.\n \n\nTipp: Das Pesto h\xe4lt sich im K\xfchlschrank problemlos 1-2 Wochen, wenn es mit Oliven\xf6l an der Oberfl\xe4che aufgegossen und gut verschlossen wird. Da lohnt es sich, gleich die doppelte Menge herzustellen.\n\n \nF\xfcr die Pasta Salzwasser zum Kochen bringen. Linguine reinlegen und bissfest kochen. Gleichzeitig in einer gro\xdfen Pfanne Oliven\xf6l erhitzen und die Meeresfr\xfcchte 2-3 Minuten darin braten. Temperatur auf kleinste Stufe stellen und das Pesto mit den Meeresfr\xfcchten vermischen. Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.'} id_col= id
        Traceback (most recent call last):
          File "/usr/share/gourmet/gourmet/reccard.py", line 985, in save_cb
            self.current_rec = self.rg.rd.modify_rec(self.current_rec,newdict)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1041, in modify_rec
            retval = self.do_modify_rec(rec,dic)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1298, in do_modify_rec
            return self.do_modify(self.recipe_table,rec,dic)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1307, in do_modify
            qr = table.update(getattr(table.c,id_col)==getattr(row,id_col)).execute(**d)
          File "/var/lib/python-support/python2.6/sqlalchemy/sql/expression.py", line 1087, in execute
            return e.execute_clauseelement(self, multiparams, params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 1219, in execute_clauseelement
            return connection.execute_clauseelement(elem, multiparams, params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 895, in execute_clauseelement
            return self._execute_compiled(elem.compile(dialect=self.dialect, column_keys=keys, inline=len(params) > 1), distilled_params=params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 907, in _execute_compiled
            self.__execute_raw(context)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 916, in __execute_raw
            self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 960, in _cursor_execute
            self._handle_dbapi_exception(e, statement, parameters, cursor)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 942, in _handle_dbapi_exception
            raise exceptions.DBAPIError.instance(statement, parameters, e, connection_invalidated=is_disconnect)
        sqlalchemy.exceptions.ProgrammingError: (ProgrammingError) You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings. u'UPDATE recipe SET id=?, title=?, instructions=?, modifications=?, cuisine=?, rating=?, source=?, preptime=?, cooktime=?, yields=?, yield_unit=?, link=?, last_modified=? WHERE recipe.id = ?' [188, 'Pasta mit Meeresfr\xc3\xbcchten', u'Rezept f\xfcr zwei Chili-Anf\xe4nger\n \nF\xfcr das milde Chili-Pesto alle Zutaten in einem Mixer fein p\xfcrieren und so viel Oliven\xf6l dazugeben, dass eine s\xe4mige Konsistenz entsteht.\n \n\nTipp: Das Pesto h\xe4lt sich im K\xfchlschrank problemlos 1-2 Wochen, wenn es mit Oliven\xf6l an der Oberfl\xe4che aufgegossen und gut verschlossen wird. Da lohnt es sich, gleich die doppelte Menge herzustellen.\n\n \nF\xfcr die Pasta Salzwasser zum Kochen bringen. Linguine reinlegen und bissfest kochen. Gleichzeitig in einer gro\xdfen Pfanne Oliven\xf6l erhitzen und die Meeresfr\xfcchte 2-3 Minuten darin braten. Temperatur auf kleinste Stufe stellen und das Pesto mit den Meeresfr\xfcchten vermischen. Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.', u'', 'italienisch', 0, '', 600.0, 600.0, 2.0, 'servings', 'http://www.buntcooking.com/?p=1003', 1251499983.468019, 188]
        do_modify failed with args
        table= recipe row= (188, u'Pasta mit Meeresfr\xfcchten', u'Rezept f\xfcr zwei Chili-Anf\xe4nger\n \nF\xfcr das milde Chili-Pesto alle Zutaten in einem Mixer fein p\xfcrieren und so viel Oliven\xf6l dazugeben, dass eine s\xe4mige Konsistenz entsteht.\n \n\nTipp: Das Pesto h\xe4lt sich im K\xfchlschrank problemlos 1-2 Wochen, wenn es mit Oliven\xf6l an der Oberfl\xe4che aufgegossen und gut verschlossen wird. Da lohnt es sich, gleich die doppelte Menge herzustellen.\n\n \nF\xfcr die Pasta Salzwasser zum Kochen bringen. Linguine reinlegen und bissfest kochen. Gleichzeitig in einer gro\xdfen Pfanne Oliven\xf6l erhitzen und die Meeresfr\xfcchte 2-3 Minuten darin braten. Temperatur auf kleinste Stufe stellen und das Pesto mit den Meeresfr\xfcchten vermischen. Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.', None, u'italienisch', None, None, None, 600, 600, None, 2, u'servings', <read-write buffer ptr 0xc54c160, size 27868 at 0xc54c140>, <read-write buffer ptr 0xc3ff2f8, size 1868 at 0xc3ff2d8>, False, u'767c0bba8e5b9e9cf22a7ae2998d7323', u'1f1e5a02b22e222722a718375dbbcd36', u'http://www.buntcooking.com/?p=1003', 1251499894.893852)
        d= {'cuisine': 'italienisch', 'modifications': u'', 'rating': 0, 'title': 'Pasta mit Meeresfr\xc3\xbcchten', 'cooktime': 600.0, 'source': '', 'last_modified': 1251499983.980999, 'link': 'http://www.buntcooking.com/?p=1003', 'preptime': 600.0, 'yields': '2', 'id': 188, 'yield_unit': 'servings', 'instructions': u'Rezept f\xfcr zwei Chili-Anf\xe4nger\n \nF\xfcr das milde Chili-Pesto alle Zutaten in einem Mixer fein p\xfcrieren und so viel Oliven\xf6l dazugeben, dass eine s\xe4mige Konsistenz entsteht.\n \n\nTipp: Das Pesto h\xe4lt sich im K\xfchlschrank problemlos 1-2 Wochen, wenn es mit Oliven\xf6l an der Oberfl\xe4che aufgegossen und gut verschlossen wird. Da lohnt es sich, gleich die doppelte Menge herzustellen.\n\n \nF\xfcr die Pasta Salzwasser zum Kochen bringen. Linguine reinlegen und bissfest kochen. Gleichzeitig in einer gro\xdfen Pfanne Oliven\xf6l erhitzen und die Meeresfr\xfcchte 2-3 Minuten darin braten. Temperatur auf kleinste Stufe stellen und das Pesto mit den Meeresfr\xfcchten vermischen. Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.'} id_col= id
        Traceback (most recent call last):
          File "/usr/share/gourmet/gourmet/reccard.py", line 985, in save_cb
            self.current_rec = self.rg.rd.modify_rec(self.current_rec,newdict)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1041, in modify_rec
            retval = self.do_modify_rec(rec,dic)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1298, in do_modify_rec
            return self.do_modify(self.recipe_table,rec,dic)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1307, in do_modify
            qr = table.update(getattr(table.c,id_col)==getattr(row,id_col)).execute(**d)
          File "/var/lib/python-support/python2.6/sqlalchemy/sql/expression.py", line 1087, in execute
            return e.execute_clauseelement(self, multiparams, params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 1219, in execute_clauseelement
            return connection.execute_clauseelement(elem, multiparams, params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 895, in execute_clauseelement
            return self._execute_compiled(elem.compile(dialect=self.dialect, column_keys=keys, inline=len(params) > 1), distilled_params=params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 907, in _execute_compiled
            self.__execute_raw(context)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 916, in __execute_raw
            self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 960, in _cursor_execute
            self._handle_dbapi_exception(e, statement, parameters, cursor)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 942, in _handle_dbapi_exception
            raise exceptions.DBAPIError.instance(statement, parameters, e, connection_invalidated=is_disconnect)
        sqlalchemy.exceptions.ProgrammingError: (ProgrammingError) You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings. u'UPDATE recipe SET id=?, title=?, instructions=?, modifications=?, cuisine=?, rating=?, source=?, preptime=?, cooktime=?, yields=?, yield_unit=?, link=?, last_modified=? WHERE recipe.id = ?' [188, 'Pasta mit Meeresfr\xc3\xbcchten', u'Rezept f\xfcr zwei Chili-Anf\xe4nger\n \nF\xfcr das milde Chili-Pesto alle Zutaten in einem Mixer fein p\xfcrieren und so viel Oliven\xf6l dazugeben, dass eine s\xe4mige Konsistenz entsteht.\n \n\nTipp: Das Pesto h\xe4lt sich im K\xfchlschrank problemlos 1-2 Wochen, wenn es mit Oliven\xf6l an der Oberfl\xe4che aufgegossen und gut verschlossen wird. Da lohnt es sich, gleich die doppelte Menge herzustellen.\n\n \nF\xfcr die Pasta Salzwasser zum Kochen bringen. Linguine reinlegen und bissfest kochen. Gleichzeitig in einer gro\xdfen Pfanne Oliven\xf6l erhitzen und die Meeresfr\xfcchte 2-3 Minuten darin braten. Temperatur auf kleinste Stufe stellen und das Pesto mit den Meeresfr\xfcchten vermischen. Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.', u'', 'italienisch', 0, '', 600.0, 600.0, 2.0, 'servings', 'http://www.buntcooking.com/?p=1003', 1251499983.980999, 188]
        do_modify failed with args
        table= recipe row= (188, u'Pasta mit Meeresfr\xfcchten', u'Rezept f\xfcr zwei Chili-Anf\xe4nger\n \nF\xfcr das milde Chili-Pesto alle Zutaten in einem Mixer fein p\xfcrieren und so viel Oliven\xf6l dazugeben, dass eine s\xe4mige Konsistenz entsteht.\n \n\nTipp: Das Pesto h\xe4lt sich im K\xfchlschrank problemlos 1-2 Wochen, wenn es mit Oliven\xf6l an der Oberfl\xe4che aufgegossen und gut verschlossen wird. Da lohnt es sich, gleich die doppelte Menge herzustellen.\n\n \nF\xfcr die Pasta Salzwasser zum Kochen bringen. Linguine reinlegen und bissfest kochen. Gleichzeitig in einer gro\xdfen Pfanne Oliven\xf6l erhitzen und die Meeresfr\xfcchte 2-3 Minuten darin braten. Temperatur auf kleinste Stufe stellen und das Pesto mit den Meeresfr\xfcchten vermischen. Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.', None, u'italienisch', None, None, None, 600, 600, None, 2, u'servings', <read-write buffer ptr 0xc54c160, size 27868 at 0xc54c140>, <read-write buffer ptr 0xc3ff2f8, size 1868 at 0xc3ff2d8>, False, u'767c0bba8e5b9e9cf22a7ae2998d7323', u'1f1e5a02b22e222722a718375dbbcd36', u'http://www.buntcooking.com/?p=1003', 1251499894.893852)
        d= {'cuisine': 'italienisch', 'modifications': u'', 'rating': 0, 'title': 'Pasta mit Meeresfr\xc3\xbcchten', 'cooktime': 600.0, 'source': '', 'last_modified': 1251499984.448144, 'link': 'http://www.buntcooking.com/?p=1003', 'preptime': 600.0, 'yields': '2', 'id': 188, 'yield_unit': 'servings', 'instructions': u'Rezept f\xfcr zwei Chili-Anf\xe4nger\n \nF\xfcr das milde Chili-Pesto alle Zutaten in einem Mixer fein p\xfcrieren und so viel Oliven\xf6l dazugeben, dass eine s\xe4mige Konsistenz entsteht.\n \n\nTipp: Das Pesto h\xe4lt sich im K\xfchlschrank problemlos 1-2 Wochen, wenn es mit Oliven\xf6l an der Oberfl\xe4che aufgegossen und gut verschlossen wird. Da lohnt es sich, gleich die doppelte Menge herzustellen.\n\n \nF\xfcr die Pasta Salzwasser zum Kochen bringen. Linguine reinlegen und bissfest kochen. Gleichzeitig in einer gro\xdfen Pfanne Oliven\xf6l erhitzen und die Meeresfr\xfcchte 2-3 Minuten darin braten. Temperatur auf kleinste Stufe stellen und das Pesto mit den Meeresfr\xfcchten vermischen. Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.'} id_col= id
        Traceback (most recent call last):
          File "/usr/share/gourmet/gourmet/reccard.py", line 985, in save_cb
            self.current_rec = self.rg.rd.modify_rec(self.current_rec,newdict)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1041, in modify_rec
            retval = self.do_modify_rec(rec,dic)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1298, in do_modify_rec
            return self.do_modify(self.recipe_table,rec,dic)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1307, in do_modify
            qr = table.update(getattr(table.c,id_col)==getattr(row,id_col)).execute(**d)
          File "/var/lib/python-support/python2.6/sqlalchemy/sql/expression.py", line 1087, in execute
            return e.execute_clauseelement(self, multiparams, params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 1219, in execute_clauseelement
            return connection.execute_clauseelement(elem, multiparams, params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 895, in execute_clauseelement
            return self._execute_compiled(elem.compile(dialect=self.dialect, column_keys=keys, inline=len(params) > 1), distilled_params=params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 907, in _execute_compiled
            self.__execute_raw(context)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 916, in __execute_raw
            self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 960, in _cursor_execute
            self._handle_dbapi_exception(e, statement, parameters, cursor)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 942, in _handle_dbapi_exception
            raise exceptions.DBAPIError.instance(statement, parameters, e, connection_invalidated=is_disconnect)
        sqlalchemy.exceptions.ProgrammingError: (ProgrammingError) You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings. u'UPDATE recipe SET id=?, title=?, instructions=?, modifications=?, cuisine=?, rating=?, source=?, preptime=?, cooktime=?, yields=?, yield_unit=?, link=?, last_modified=? WHERE recipe.id = ?' [188, 'Pasta mit Meeresfr\xc3\xbcchten', u'Rezept f\xfcr zwei Chili-Anf\xe4nger\n \nF\xfcr das milde Chili-Pesto alle Zutaten in einem Mixer fein p\xfcrieren und so viel Oliven\xf6l dazugeben, dass eine s\xe4mige Konsistenz entsteht.\n \n\nTipp: Das Pesto h\xe4lt sich im K\xfchlschrank problemlos 1-2 Wochen, wenn es mit Oliven\xf6l an der Oberfl\xe4che aufgegossen und gut verschlossen wird. Da lohnt es sich, gleich die doppelte Menge herzustellen.\n\n \nF\xfcr die Pasta Salzwasser zum Kochen bringen. Linguine reinlegen und bissfest kochen. Gleichzeitig in einer gro\xdfen Pfanne Oliven\xf6l erhitzen und die Meeresfr\xfcchte 2-3 Minuten darin braten. Temperatur auf kleinste Stufe stellen und das Pesto mit den Meeresfr\xfcchten vermischen. Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.', u'', 'italienisch', 0, '', 600.0, 600.0, 2.0, 'servings', 'http://www.buntcooking.com/?p=1003', 1251499984.448144, 188]
        do_modify failed with args
        table= recipe row= (188, u'Pasta mit Meeresfr\xfcchten', u'Rezept f\xfcr zwei Chili-Anf\xe4nger\n \nF\xfcr das milde Chili-Pesto alle Zutaten in einem Mixer fein p\xfcrieren und so viel Oliven\xf6l dazugeben, dass eine s\xe4mige Konsistenz entsteht.\n \n\nTipp: Das Pesto h\xe4lt sich im K\xfchlschrank problemlos 1-2 Wochen, wenn es mit Oliven\xf6l an der Oberfl\xe4che aufgegossen und gut verschlossen wird. Da lohnt es sich, gleich die doppelte Menge herzustellen.\n\n \nF\xfcr die Pasta Salzwasser zum Kochen bringen. Linguine reinlegen und bissfest kochen. Gleichzeitig in einer gro\xdfen Pfanne Oliven\xf6l erhitzen und die Meeresfr\xfcchte 2-3 Minuten darin braten. Temperatur auf kleinste Stufe stellen und das Pesto mit den Meeresfr\xfcchten vermischen. Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.', None, u'italienisch', None, None, None, 600, 600, None, 2, u'servings', <read-write buffer ptr 0xc54c160, size 27868 at 0xc54c140>, <read-write buffer ptr 0xc3ff2f8, size 1868 at 0xc3ff2d8>, False, u'767c0bba8e5b9e9cf22a7ae2998d7323', u'1f1e5a02b22e222722a718375dbbcd36', u'http://www.buntcooking.com/?p=1003', 1251499894.893852)
        d= {'cuisine': 'italienisch', 'modifications': u'', 'rating': 0, 'title': 'Pasta mit Meeresfr\xc3\xbcchten', 'cooktime': 600.0, 'source': '', 'last_modified': 1251500006.5786541, 'link': 'http://www.buntcooking.com/?p=1003', 'preptime': 600.0, 'yields': '2', 'id': 188, 'yield_unit': 'servings', 'instructions': u'Rezept f\xfcr zwei Chili-Anf\xe4nger\n \nF\xfcr das milde Chili-Pesto alle Zutaten in einem Mixer fein p\xfcrieren und so viel Oliven\xf6l dazugeben, dass eine s\xe4mige Konsistenz entsteht.\n \n\nTipp: Das Pesto h\xe4lt sich im K\xfchlschrank problemlos 1-2 Wochen, wenn es mit Oliven\xf6l an der Oberfl\xe4che aufgegossen und gut verschlossen wird. Da lohnt es sich, gleich die doppelte Menge herzustellen.\n\n \nF\xfcr die Pasta Salzwasser zum Kochen bringen. Linguine reinlegen und bissfest kochen. Gleichzeitig in einer gro\xdfen Pfanne Oliven\xf6l erhitzen und die Meeresfr\xfcchte 2-3 Minuten darin braten. Temperatur auf kleinste Stufe stellen und das Pesto mit den Meeresfr\xfcchten vermischen. Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.'} id_col= id
        Traceback (most recent call last):
          File "/usr/share/gourmet/gourmet/reccard.py", line 1014, in close_cb
            self.save_cb()
          File "/usr/share/gourmet/gourmet/reccard.py", line 985, in save_cb
            self.current_rec = self.rg.rd.modify_rec(self.current_rec,newdict)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1041, in modify_rec
            retval = self.do_modify_rec(rec,dic)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1298, in do_modify_rec
            return self.do_modify(self.recipe_table,rec,dic)
          File "/usr/share/gourmet/gourmet/backends/db.py", line 1307, in do_modify
            qr = table.update(getattr(table.c,id_col)==getattr(row,id_col)).execute(**d)
          File "/var/lib/python-support/python2.6/sqlalchemy/sql/expression.py", line 1087, in execute
            return e.execute_clauseelement(self, multiparams, params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 1219, in execute_clauseelement
            return connection.execute_clauseelement(elem, multiparams, params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 895, in execute_clauseelement
            return self._execute_compiled(elem.compile(dialect=self.dialect, column_keys=keys, inline=len(params) > 1), distilled_params=params)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 907, in _execute_compiled
            self.__execute_raw(context)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 916, in __execute_raw
            self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 960, in _cursor_execute
            self._handle_dbapi_exception(e, statement, parameters, cursor)
          File "/var/lib/python-support/python2.6/sqlalchemy/engine/base.py", line 942, in _handle_dbapi_exception
            raise exceptions.DBAPIError.instance(statement, parameters, e, connection_invalidated=is_disconnect)
        sqlalchemy.exceptions.ProgrammingError: (ProgrammingError) You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings. u'UPDATE recipe SET id=?, title=?, instructions=?, modifications=?, cuisine=?, rating=?, source=?, preptime=?, cooktime=?, yields=?, yield_unit=?, link=?, last_modified=? WHERE recipe.id = ?' [188, 'Pasta mit Meeresfr\xc3\xbcchten', u'Rezept f\xfcr zwei Chili-Anf\xe4nger\n \nF\xfcr das milde Chili-Pesto alle Zutaten in einem Mixer fein p\xfcrieren und so viel Oliven\xf6l dazugeben, dass eine s\xe4mige Konsistenz entsteht.\n \n\nTipp: Das Pesto h\xe4lt sich im K\xfchlschrank problemlos 1-2 Wochen, wenn es mit Oliven\xf6l an der Oberfl\xe4che aufgegossen und gut verschlossen wird. Da lohnt es sich, gleich die doppelte Menge herzustellen.\n\n \nF\xfcr die Pasta Salzwasser zum Kochen bringen. Linguine reinlegen und bissfest kochen. Gleichzeitig in einer gro\xdfen Pfanne Oliven\xf6l erhitzen und die Meeresfr\xfcchte 2-3 Minuten darin braten. Temperatur auf kleinste Stufe stellen und das Pesto mit den Meeresfr\xfcchten vermischen. Die fertigen Linguine in der Pfanne mit der Meeresfr\xfcchte-So\xdfe vermischen. Mit einer Gabel die Pasta zu Nestern aufdrehen und auf Tellern anrichten. Restliche So\xdfe und Meeresfr\xfcchte auf den Linguine-Nestern verteilen.', u'', 'italienisch', 0, '', 600.0, 600.0, 2.0, 'servings', 'http://www.buntcooking.com/?p=1003', 1251500006.5786541, 188]
        Traceback (most recent call last):
          File "/usr/share/gourmet/gourmet/GourmetRecipeManager.py", line 1369, in quit
            GourmetApplication.quit(self)
          File "/usr/share/gourmet/gourmet/GourmetRecipeManager.py", line 466, in quit
            r.recipe_editor.save_cb()
          File "/usr/share/gourmet/gourmet/reccard.py", line 984, in save_cb
            newdict = m.save(newdict)
          File "/usr/share/gourmet/gourmet/reccard.py", line 1590, in save
            recdic[self.prop] = self.tv.get_buffer().get_text()
        TypeError: Required argument 'start' (pos 1) not found
        ----------------------------------------------------------------------------------------------------------------------------

        Sorry but I don't know how to join a file to this message.

        regards
        Ulrike

         
        • tom
          tom
          2009-08-29

          Have you upgraded to the latest version (0.15.0)?

           
          • uhheyden
            uhheyden
            2009-08-29

            I hadn't seen last night that the new release was there already. Just updated and now the save is stable and the "10 times" bug is gone as well!

            Thanks a lot for your work on this nice program! It really is my favourite among the recipe programs, as it has this versatile web and file import and  nutrition section. I especially like the shopping list  with the storage cupboard function, it makes planning for a whole week so easy!

            best regards
            Ulrike

             
    • DITTO on the thanks for awesomeness.