Hi Stefano...i cleared the trac cache and the message stopped showing.
however now we are getting this error when we try to update a ticket:
Trac detected an internal error:
AttributeError: 'Ticket' object has no attribute 'is_writeable_field'
Python Traceback
Most recent call last:
* File "/usr/local/lib/python2.6/dist-packages/Trac-0.12.2-
py2.6.egg/trac/web/main.py", line 511, in _dispatch_request
Code fragment:
Line
506 try:
507 if not env and env_error:
508 raise HTTPInternalError(env_error)
509 try:
510 dispatcher = RequestDispatcher(env)
511 dispatcher.dispatch(req)
512 except RequestDone:
513 pass
514 resp = req._response or []
515
516 except HTTPException, e:
Local variables:
Name Value
dispatcher <trac.web.main.RequestDispatcher object at
0xb9630e6c>
e AttributeError("'Ticket' object has no attribute
'is_writeable_field'",)
env <trac.env.Environment object at 0xb8e00f8c>
env_error None
req <Request "POST '/worklog'">
resp []
* File "/usr/local/lib/python2.6/dist-packages/Trac-0.12.2-
py2.6.egg/trac/web/main.py", line 237, in dispatch
Code fragment:
Line
232 msg = _('Do you have cookies enabled?')
233 raise HTTPBadRequest(_('Missing or invalid form token.'
234 ' %(msg)s', msg=msg))
235
236 # Process the request and render the template
237 resp = chosen_handler.process_request(req)
238 if resp:
239 if len(resp) == 2: # Clearsilver
240 chrome.populate_hdf(req)
241 template, content_type = \
242 self._post_process_request(req, *resp)
Local variables:
Name Value
chosen_handler <worklog.webui.WorkLogPage object at 0xb963002c>
chrome <trac.web.chrome.Chrome object at 0xb9630a6c>
ctype 'application/x-www-form-urlencoded'
err (<type 'exceptions.AttributeError'>,
AttributeError("'Ticket' object has ...
handler <worklog.webui.WorkLogPage object at 0xb963002c>
options {}
req <Request "POST '/worklog'">
self <trac.web.main.RequestDispatcher object at 0xb9630e6c>
* File "/usr/local/lib/python2.6/dist-packages/worklog-0.2-
py2.6.egg/worklog/webui.py", line 147, in process_request
Code fragment:
Line
142
143 comment = ''
144 if req.args.has_key('comment'):
145 comment = req.args['comment']
146
147 if not mgr.stop_work(stoptime, comment):
148 addMessage(mgr.get_explanation())
149 else:
150 addMessage('You have stopped working.')
151
152 req.redirect(req.args['source_url'])
Local variables:
Name Value
addMessage <function addMessage at 0xb968cf7c>
comment u''
match None
messages []
mgr <worklog.manager.WorkLogManager instance at 0xb962bb4c>
req <Request "POST '/worklog'">
self <worklog.webui.WorkLogPage object at 0xb963002c>
stoptime None
* File "/usr/local/lib/python2.6/dist-packages/worklog-0.2-
py2.6.egg/worklog/manager.py", line 218, in stop_work
Code fragment:
Line
213
214 tckt = Ticket(self.env, active['ticket'])
215
216 if plugtne:
217 tckt['hours'] = hours
218 self.save_ticket(tckt, message)
219 message = ''
220
221 if message:
222 tckt = Ticket(self.env, active['ticket'])
223 self.save_ticket(tckt, message)
Local variables:
Name Value
active {'comment': '', 'summary': u'install agilo for trac
plugin', 'lastchange': ...
comment u''
delta 1
do_log None
hours '0.01'
message 'Hours recorded automatically by the worklog plugin.'
plughrs False
plugtne u'text'
round_delta 1.0
self <worklog.manager.WorkLogManager instance at 0xb962bb4c>
stoptime 1317060667.0
tckt <trac.ticket.model.Ticket object at 0xb96a1f6c>
* File "/usr/local/lib/python2.6/dist-packages/worklog-0.2-
py2.6.egg/worklog/manager.py", line 77, in save_ticket
Code fragment:
Line
72 for change in tm.grouped_changelog_entries(tckt, None):
73 if change['permanent']:
74 cnum += 1
75 nowdt = self.now
76 nowdt = to_datetime(nowdt)
77 tckt.save_changes(self.authname, msg, nowdt, None, cnum+1)
78 ## Often the time overlaps and causes a db error,
79 ## especially when the trac integration post-commit hook is
used.
80 ## NOTE TO SELF. I DON'T THINK THIS IS NECESSARY RIGHT NOW...
81 #count = 0
82 #while count < 10:
Local variables:
Name Value
change {'comment': u'Hours recorded automatically by the
worklog plugin.', ...
cnum 3
msg 'Hours recorded automatically by the worklog plugin.'
nowdt datetime.datetime(2011, 9, 26, 18, 11, 8,
tzinfo=<LocalTimezone "UTC" ...
self <worklog.manager.WorkLogManager instance at 0xb962bb4c>
tckt <trac.ticket.model.Ticket object at 0xb96a1f6c>
tm <trac.ticket.web_ui.TicketModule object at 0xb9630aac>
* File "/usr/local/lib/python2.6/dist-packages/Trac-0.12.2-
py2.6.egg/trac/ticket/model.py", line 360, in save_changes
Code fragment:
Line
355 old_values = self._old
356 self._old = {}
357 self.values['changetime'] = when
358
359 for listener in TicketSystem(self.env).change_listeners:
360 listener.ticket_changed(self, comment, author, old_values)
361 return True
362
363 def get_changelog(self, when=None, db=None):
364 """Return the changelog as a list of tuples of the form
365 (time, author, field, oldvalue, newvalue, permanent).
Local variables:
Name Value
author u'admin'
cnum 4
comment 'Hours recorded automatically by the worklog plugin.'
db None
do_save None
listener
<agilo.scrum.burndown.changelistener.BurndownDataChangeListener object
at ...
old_values {'hours': u'0.0'}
self <trac.ticket.model.Ticket object at 0xb96a1f6c>
when datetime.datetime(2011, 9, 26, 18, 11, 8,
tzinfo=<LocalTimezone "UTC" ...
when_ts 1317060668000000L
* File "/usr/local/lib/python2.6/dist-packages/agilo-0.9.4-
py2.6.egg/agilo/scrum/burndown/changelistener.py", line 69, in
ticket_changed
Code fragment:
Line
64 # TICKET CHANGE
65 #
-------------------------------------------------------------------------
66
67 # ITicketChangeListener method
68 def ticket_changed(self, ticket, comment, author,
old_values):
69 current_sprint_name = self._current_sprint_name(ticket)
70 previous_sprint_name = self._previous_sprint_name(ticket,
old_values, current_sprint_name)
71 current_remaining_time = self._current_remaining_time(ticket)
72 previous_remaining_time =
self._previous_remaining_time(ticket, old_values,
current_remaining_time)
73 current_component = self._current_component(ticket)
74 previous_component = self._previous_component(ticket,
old_values, current_component)
Local variables:
Name Value
author u'admin'
comment 'Hours recorded automatically by the worklog plugin.'
old_values {'hours': u'0.0'}
self
<agilo.scrum.burndown.changelistener.BurndownDataChangeListener object
at ...
ticket <trac.ticket.model.Ticket object at 0xb96a1f6c>
* File "/usr/local/lib/python2.6/dist-packages/agilo-0.9.4-
py2.6.egg/agilo/scrum/burndown/changelistener.py", line 119, in
_current_sprint_name
Code fragment:
Line
114 BurndownDataChange.create_aggregation_skip_marker(self.env,
sprint_name).save()
115
116 def _current_sprint_name(self, ticket):
117 # Sprint name cannot be empty, because that would not be a
valid primary key
118 # and we prevent that in the sprint creation GUI
119 return self._current_value(Key.SPRINT, ticket) or None
120
121 def _current_remaining_time(self, ticket):
122 return float(self._current_value(Key.REMAINING_TIME, ticket)
or 0)
123
124 def _current_component(self, ticket):
Local variables:
Name Value
self
<agilo.scrum.burndown.changelistener.BurndownDataChangeListener object
at ...
ticket <trac.ticket.model.Ticket object at 0xb96a1f6c>
* File "/usr/local/lib/python2.6/dist-packages/agilo-0.9.4-
py2.6.egg/agilo/scrum/burndown/changelistener.py", line 128, in
_current_value
Code fragment:
Line
123
124 def _current_component(self, ticket):
125 return self._current_value(Key.COMPONENT, ticket)
126
127 def _current_value(self, fieldname, ticket):
128 if not ticket.is_writeable_field(fieldname) or not
ticket[fieldname]:
129 return None
130 return ticket[fieldname]
131
132 def _previous_sprint_name(self, ticket, old_values,
current_sprint_name):
133 # empty sprint_name is verboten
Local variables:
Name Value
fieldname 'sprint'
self
<agilo.scrum.burndown.changelistener.BurndownDataChangeListener object
at ...
ticket <trac.ticket.model.Ticket object at 0xb96a1f6c>
File "/usr/local/lib/python2.6/dist-packages/Trac-0.12.2-py2.6.egg/
trac/web/main.py", line 511, in _dispatch_request
dispatcher.dispatch(req)
File "/usr/local/lib/python2.6/dist-packages/Trac-0.12.2-py2.6.egg/
trac/web/main.py", line 237, in dispatch
resp = chosen_handler.process_request(req)
File "/usr/local/lib/python2.6/dist-packages/worklog-0.2-py2.6.egg/
worklog/webui.py", line 147, in process_request
if not mgr.stop_work(stoptime, comment):
File "/usr/local/lib/python2.6/dist-packages/worklog-0.2-py2.6.egg/
worklog/manager.py", line 218, in stop_work
self.save_ticket(tckt, message)
File "/usr/local/lib/python2.6/dist-packages/worklog-0.2-py2.6.egg/
worklog/manager.py", line 77, in save_ticket
tckt.save_changes(self.authname, msg, nowdt, None, cnum+1)
File "/usr/local/lib/python2.6/dist-packages/Trac-0.12.2-py2.6.egg/
trac/ticket/model.py", line 360, in save_changes
listener.ticket_changed(self, comment, author, old_values)
File "/usr/local/lib/python2.6/dist-packages/agilo-0.9.4-py2.6.egg/
agilo/scrum/burndown/changelistener.py", line 69, in ticket_changed
current_sprint_name = self._current_sprint_name(ticket)
File "/usr/local/lib/python2.6/dist-packages/agilo-0.9.4-py2.6.egg/
agilo/scrum/burndown/changelistener.py", line 119, in
_current_sprint_name
return self._current_value(Key.SPRINT, ticket) or None
File "/usr/local/lib/python2.6/dist-packages/agilo-0.9.4-py2.6.egg/
agilo/scrum/burndown/changelistener.py", line 128, in _current_value
if not ticket.is_writeable_field(fieldname) or not
ticket[fieldname]:
information about our trac setup:
System Information:
User Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:
1.9.2.22) Gecko/20110902 Firefox/3.6.22 ( .NET CLR 3.5.30729)
Trac 0.12.2
Agilo 0.9.4
Genshi 0.6
GIT 1.7.0.4
mod_wsgi 3.3 (WSGIProcessGroup WSGIApplicationGroup exergoit.se|/ecis/
exergo/external_tools/trac/ecis)
MySQL server: "5.1.41-3ubuntu12.10-log", client: "5.1.41", thread-
safe: 1
MySQLdb 1.2.3
Python 2.6.5 (r265:79063, Apr 16 2010, 13:28:26) [GCC 4.4.3]
RPC 1.1.2
setuptools 0.6
jQuery 1.4.2
Enabled Plugins:
agilo 0.9.4 /usr/local/lib/python2.6/dist-packages/agilo-0.9.4-
py2.6.egg
graphviz 0.6.11 /usr/local/lib/python2.6/dist-packages/
graphviz-0.6.11-py2.6.egg
GridModify 0.1.5 /usr/local/lib/python2.6/dist-packages/
GridModify-0.1.5-py2.6.egg
HudsonTrac 0.4 /usr/local/lib/python2.6/dist-packages/HudsonTrac-0.4-
py2.6.egg
IniAdmin 0.2 /usr/local/lib/python2.6/dist-packages/IniAdmin-0.2-
py2.6.egg
timingandestimationplugin 1.1.4 /usr/local/lib/python2.6/dist-
packages/timingandestimationplugin-1.1.4-py2.6.egg
TracAccountManager 0.3.1 /usr/local/lib/python2.6/dist-packages/
TracAccountManager-0.3.1-py2.6.egg
TracGit 0.12.0.5dev /usr/local/lib/python2.6/dist-packages/
TracGit-0.12.0.5dev-py2.6.egg
TracMasterTickets 3.0.2 /usr/local/lib/python2.6/dist-packages/
TracMasterTickets-3.0.2-py2.6.egg
TracXMLRPC 1.1.2 /mnt/public_html/process/httpdocs/external_tools/
trac/ecis/plugins/TracXMLRPC-1.1.2-py2.6.egg
worklog 0.2 /usr/local/lib/python2.6/dist-packages/worklog-0.2-
py2.6.egg
On Sep 9, 9:20 am, Stefano Rago <[email protected]>
wrote:
> Hi Nadir,
>
> On 06/09/11 05:02, Nadir Latif wrote:
>
> > Hello...after installing the open source agilo for scrum plugin, when
> > i try to edit a ticket i get an error saying "Warning: The action
> > "view" is not available.". also when i try to update a ticket's
> > remaining hours value, i get an error "Warning: The action "leave" is
> > not available.".
>
> Did you install Agilo on a fresh Trac instance? Do you have other third
> party
> plugins installed?
>
> Cheers
>
> --
> Stefano Rago
--
Follow Agilo on Twitter: http://twitter.com/agiloforscrum
Please support us by reviewing and voting on:
http://userstories.com/products/8-agilo-for-scrum
http://ohloh.net/p/agilo-scrum
http://freshmeat.net/projects/agiloforscrum
You have received this message because you are subscribed to
the "Agilo for Scrum" Google Group. This group is focused on
supporting Agilo for Scrum users and is moderated by
Agilo Software GmbH <http://www.agiloforscrum.com>.
To post to this group, send email to [email protected]
To unsubscribe from this group, send an email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/agilo