Modify

Opened 7 years ago

Closed 7 years ago

#2976 closed defect (fixed)

AttributeError: 'NoneType' object has no attribute 'process_discussion'

Reported by: JasonWinnebeck Owned by: Blackhex
Priority: normal Component: DiscussionPlugin
Severity: normal Keywords:
Cc: Trac Release: 0.11

Description

This error occurs when trying to use the DiscussionPlugin on a new environment with Trac 0.11rc1 and the 0.11 branch of DiscussionPlugin. The same error also occurs when trying to use the "trunk" branch.

exception and version details for me:

File "/home/jpwasp/trac/0.11/trac-0.11/trac/web/main.py", line 417, in _dispatch_request
  dispatcher.dispatch(req)
File "/home/jpwasp/trac/0.11/trac-0.11/trac/web/main.py", line 197, in dispatch
  resp = chosen_handler.process_request(req)
File "build/bdist.linux-i686/egg/tracdiscussion/core.py", line 77, in process_request

System Information:

User Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13
Trac: 	0.11dev-r6941
Python: 	2.4.3 (#2, Oct 6 2006, 07:52:30) [GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)]
setuptools: 	0.6c7
SQLite: 	3.2.8
pysqlite: 	2.0.5
Genshi: 	0.4.4
Pygments: 	0.9
Subversion: 	1.3.1 (r19032)
jQuery:	1.2.3

Attachments (0)

Change History (4)

comment:1 Changed 7 years ago by Blackhex

  • Status changed from new to assigned

Do you have DiscussionApi component enabled?

Show me trac.ini and trac.log with debug level DEBUG if you do, please.

comment:2 Changed 7 years ago by JasonWinnebeck

I didn't enable or disable any components. Right now in my trac.ini the components section is blank. Also, at first the discussion section was not present but after it failed I tried copying the default. I installed the plugin by copying the egg into the plugins directory of a 0.11 test environment.

What I noticed is in WebAdmin console all components show as checked except for the DiscussionApi. Output from tracd:

09:15:54 AM Trac[loader] DEBUG: Adding plugin TracDiscussion 0.6 from /home/jpwasp/trac/0.11/testenv/plugins/TracDiscussion-0.6-py2.4.egg
...
09:15:54 AM Trac[loader] DEBUG: Loading tracwysiwyg from /home/jpwasp/trac/0.11/testenv/plugins/TracWysiwyg-0.2_r3414-py2.4.egg
09:15:54 AM Trac[loader] DEBUG: Loading TracDiscussion.core from /home/jpwasp/trac/0.11/testenv/plugins/TracDiscussion-0.6-py2.4.egg
09:15:54 AM Trac[loader] DEBUG: Loading TracDiscussion.init from /home/jpwasp/trac/0.11/testenv/plugins/TracDiscussion-0.6-py2.4.egg
09:15:54 AM Trac[loader] DEBUG: Loading TracDiscussion.search from /home/jpwasp/trac/0.11/testenv/plugins/TracDiscussion-0.6-py2.4.egg
09:15:54 AM Trac[loader] DEBUG: Loading TracDiscussion.timeline from /home/jpwasp/trac/0.11/testenv/plugins/TracDiscussion-0.6-py2.4.egg
09:15:54 AM Trac[loader] DEBUG: Loading TracDiscussion.wiki from /home/jpwasp/trac/0.11/testenv/plugins/TracDiscussion-0.6-py2.4.egg
09:15:54 AM Trac[loader] DEBUG: Loading TracDiscussion.admin from /home/jpwasp/trac/0.11/testenv/plugins/TracDiscussion-0.6-py2.4.egg
09:15:54 AM Trac[loader] DEBUG: Loading TracDiscussion.notification from /home/jpwasp/trac/0.11/testenv/plugins/TracDiscussion-0.6-py2.4.egg
09:15:54 AM Trac[loader] DEBUG: Loading TracXMLRPC from /home/jpwasp/trac/0.11/testenv/plugins/TracXMLRPC-1.0.0-py2.4.egg
...

If I go into WebAdmin and check the box for the api, then the discussion plugin works with an empty forum, as it writes out explicit "enabled" statements.

What I saw that is different about that component from the others is that it is enabled differently:

tracdiscussion.admin.* = enabled
tracdiscussion.api.discussionapi = enabled
tracdiscussion.core.* = enabled
tracdiscussion.init.* = enabled
tracdiscussion.notification.* = enabled
tracdiscussion.search.* = enabled
tracdiscussion.timeline.* = enabled
tracdiscussion.wiki.* = enabled

Maybe Trac doesn't autodetect the discussionapi because the structure is different?

When I tried to add a forum, I got the following crash:

09:24:07 AM Trac[session] DEBUG: Retrieving session for ID u'jpwasp'
09:24:07 AM Trac[main] ERROR: 'DiscussionApi' object has no attribute 'get_item'
Traceback (most recent call last):
  File "/home/jpwasp/trac/0.11/trac-0.11/trac/web/main.py", line 417, in _dispatch_request
    dispatcher.dispatch(req)
  File "/home/jpwasp/trac/0.11/trac-0.11/trac/web/main.py", line 197, in dispatch
    resp = chosen_handler.process_request(req)
  File "build/bdist.linux-i686/egg/tracdiscussion/core.py", line 77, in process_request
  File "build/bdist.linux-i686/egg/tracdiscussion/api.py", line 85, in process_discussion
  File "build/bdist.linux-i686/egg/tracdiscussion/api.py", line 174, in _get_context
  File "build/bdist.linux-i686/egg/tracdiscussion/api.py", line 889, in get_group
AttributeError: 'DiscussionApi' object has no attribute 'get_item'

I am using the trunk code; I'll try switching to the 0.11 branch and see if it makes a difference.

More environment details: I am running tracd in a python "virtualenv" so that I can run Trac 0.11 on a 0.10 system, where I easy_install'd Genshi and Pygments. TracDiscussionPlugin is not in the main site-packages.

comment:3 Changed 7 years ago by JasonWinnebeck

The 0.11 branch appears to be working fine, so I will stick with that instead of trunk. The wiki DiscussionPlugin advises this anyway.

comment:4 Changed 7 years ago by Blackhex

  • Resolution set to fixed
  • Status changed from assigned to closed

Right, I forgot to mention Api component in setup.py. It's now fixed. You can't use trunk branch of a plugin since it contains unfinished code.

Add Comment

Modify Ticket

Action
as closed The owner will remain Blackhex.
The resolution will be deleted. Next status will be 'reopened'.
Author


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

 
Note: See TracTickets for help on using tickets.