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

Reply via email to