Modify

Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#13033 closed defect (fixed)

TypeError: pages() takes exactly 2 arguments (1 given)

Reported by: Massimo Owned by: Ryan J Ollos
Priority: normal Component: FieldTooltipPlugin
Severity: blocker Keywords:
Cc: Trac Release: 1.2

Description

Since update to Trac 1.2 I get the following error with the latest revision of FieldToolTip:

 Trac detected an internal error:

TypeError: pages() takes exactly 2 arguments (1 given)
2017-01-09 09:16:57,747 Trac[main] ERROR: Internal Server Error: <RequestWithSession "GET '/ticket/271'">, referrer 'http://project-pq/trac-pqp/ticket/271'
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/trac/web/main.py", line 613, in _dispatch_request
    dispatcher.dispatch(req)
  File "/usr/lib64/python2.7/site-packages/trac/web/main.py", line 273, in dispatch
    iterable=chrome.use_chunked_encoding)
  File "/usr/lib64/python2.7/site-packages/trac/web/chrome.py", line 1159, in render_template
    encoding='utf-8')
  File "/usr/lib64/python2.7/site-packages/genshi/core.py", line 184, in render
    return encode(generator, method=method, encoding=encoding, out=out)
  File "/usr/lib64/python2.7/site-packages/genshi/output.py", line 58, in encode
    for chunk in iterator:
  File "/usr/lib64/python2.7/site-packages/genshi/output.py", line 350, in __call__
    for kind, data, pos in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/output.py", line 829, in __call__
    for kind, data, pos in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/output.py", line 669, in __call__
    for kind, data, pos in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/output.py", line 774, in __call__
    for kind, data, pos in chain(stream, [(None, None, None)]):
  File "/usr/lib64/python2.7/site-packages/genshi/output.py", line 594, in __call__
    for ev in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/core.py", line 289, in _ensure
    for event in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/core.py", line 289, in _ensure
    for event in stream:
  File "/usr/lib64/python2.7/site-packages/trac/web/chrome.py", line 1426, in _strip_accesskeys
    for kind, data, pos in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/core.py", line 289, in _ensure
    for event in stream:
  File "/usr/lib64/python2.7/site-packages/trac/web/chrome.py", line 1415, in _generate
    for kind, data, pos in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/core.py", line 289, in _ensure
    for event in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/core.py", line 289, in _ensure
    for event in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/filters/transform.py", line 706, in _unmark
    for mark, event in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/filters/transform.py", line 1168, in __call__
    for mark, event in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/filters/transform.py", line 746, in __call__
    mark, subevent = next()
  File "/usr/lib64/python2.7/site-packages/genshi/filters/transform.py", line 702, in _mark
    for event in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/core.py", line 289, in _ensure
    for event in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/filters/transform.py", line 706, in _unmark
    for mark, event in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/filters/transform.py", line 1076, in __call__
    for mark, event in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/filters/transform.py", line 118, in __iter__
    event = self.stream.next()
  File "/usr/lib64/python2.7/site-packages/genshi/filters/transform.py", line 734, in __call__
    for mark, event in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/filters/transform.py", line 702, in _mark
    for event in stream:
  File "/usr/lib64/python2.7/site-packages/genshi/core.py", line 289, in _ensure
    for event in stream:
  File "build/bdist.linux-x86_64/egg/fieldtooltip/fieldtooltip.py", line 194, in __call__
    data = self._add_title(data, 'th', 'id', 'h_', after_stream, depth)
  File "build/bdist.linux-x86_64/egg/fieldtooltip/fieldtooltip.py", line 227, in _add_title
    text = self.parent.pages.get(attr_value_locale,
  File "/usr/lib64/python2.7/site-packages/trac/cache.py", line 73, in __get__
    return CacheManager(instance.env).get(id, self.retriever, instance)
  File "/usr/lib64/python2.7/site-packages/trac/cache.py", line 242, in get
    data = retriever(instance)
TypeError: pages() takes exactly 2 arguments (1 given)

Attachments (1)

t13033.patch (11.8 KB) - added by Ryan J Ollos 7 years ago.

Download all attachments as: .zip

Change History (18)

comment:1 Changed 7 years ago by Ryan J Ollos

You'll probably need to remove the db argument from pages. For backward compatibility you could try using db=None and removing the optional db argument from WikiPage: fieldtooltipplugin/0.12/fieldtooltip/fieldtooltip.py@14215:99,101#L94.

Untested patch:

  • 0.12/fieldtooltip/fieldtooltip.py

     
    9292        pass
    9393
    9494    @cached
    95     def pages(self, db):
     95    def pages(self, db=None):
    9696        # retrieve wiki contents for field help
    9797        pages = {}
    9898        prefix_len = len(FieldTooltip._wiki_prefix)
    9999        wiki_pages = WikiSystem(self.env).get_pages(FieldTooltip._wiki_prefix)
    100100        for page in wiki_pages:
    101             text = WikiPage(self.env, page, db=db).text
     101            text = WikiPage(self.env, page).text
    102102            pages[page[prefix_len:]] = text[0:text.find('----')]
    103103        return pages
    104104

Or you could just make a new branch for Trac 1.2 and drop both db arguments.

comment:2 Changed 7 years ago by Massimo

I tried that patch. /newticket loads without error now, but tooltips are not working.

Changed 7 years ago by Ryan J Ollos

Attachment: t13033.patch added

comment:3 Changed 7 years ago by Ryan J Ollos

Please try t13033.patch.

comment:4 Changed 7 years ago by Ryan J Ollos

The patch could probably be made backward-compatible with Trac 0.12 by using def pages(self, db=None): and testing the arity of WikiPage.__init__ before deciding whether to pass the db argument. Let me know if you'd like me to rework the patch to incorporate those changes.

comment:5 Changed 7 years ago by Ryan J Ollos

Owner: changed from matobaa to Ryan J Ollos
Status: newaccepted

Okay, I tested with 0.12, 1.0 and 1.2. I will commit, which I hope is okay.

comment:6 Changed 7 years ago by Ryan J Ollos

Resolution: fixed
Status: acceptedclosed

In 16405:

FieldTooltip 0.7: Make compatible with Trac 1.2

The plugin is still compatible with Trac 0.12 and 1.0.

Fixes #13033.

comment:7 Changed 7 years ago by Massimo

Resolution: fixed
Status: closedreopened

I have built r16405, but I can't see any Tooltips eventhough I still have the old wikis for the tooltips.

The only tooltip is on the Cc input field but this looks different from the FieldTooltipPlugin. Where is this one defined?

comment:8 Changed 7 years ago by Massimo

According to /about it is loaded:

FieldTooltip 	0.7 	/mnt/data/trac/projects/trac-ppp/plugins/FieldTooltip-0.7-py2.7.egg

I don't see an error in the log.

comment:9 Changed 7 years ago by Ryan J Ollos

Do a hard refresh of the page and then check the browser console.

comment:10 in reply to:  7 Changed 7 years ago by Ryan J Ollos

Replying to Massimo:

The only tooltip is on the Cc input field but this looks different from the FieldTooltipPlugin. Where is this one defined?

If you haven't defined help/cc: fieldtooltipplugin/0.12/fieldtooltip/fieldtooltip.py@16423:39#L26.

Version 0, edited 7 years ago by Ryan J Ollos (next)

comment:11 in reply to:  9 Changed 7 years ago by Massimo

Replying to Ryan J Ollos:

Do a hard refresh of the page and then check the browser console.

14:20:41.799 TypeError: a.browser is undefined1 jquery.tools.min.js:11:629 This browser is Palemoon-27.2.1 on Linux amd64 arch.

comment:12 Changed 7 years ago by Ryan J Ollos

The plugin uses jQuery migrate now, and you should see a message on the console indicating this. From the error message it looks like the library isn't loaded in your browser. You may need to redeploy static resources.

comment:13 Changed 7 years ago by Ryan J Ollos

In 16427:

FieldTooltip 0.7.1: Fix jQuery migrate not included in package

Refs #13033.

comment:14 Changed 7 years ago by Ryan J Ollos

comment:8 issue should be fixed in r16427, but comment:12 still applies.

comment:15 Changed 7 years ago by Ryan J Ollos

In 16428:

FieldTooltip 0.7.2: Replace use of deprecated Context

Refs #13033.

comment:16 Changed 7 years ago by Ryan J Ollos

Resolution: fixed
Status: reopenedclosed

comment:17 in reply to:  14 Changed 7 years ago by anonymous

Replying to Ryan J Ollos:

comment:8 issue should be fixed in r16427, but comment:12 still applies.

Fixed and working. Thanks.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Ryan J Ollos.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.