#10918 closed defect (fixed)
Version and Roadmap views shows error when version has at least one defined milestone associated
Reported by: | Dawuid | Owned by: | Ryan J Ollos |
---|---|---|---|
Priority: | normal | Component: | ExtendedVersionPlugin |
Severity: | normal | Keywords: | |
Cc: | Trac Release: | 1.0 |
Description
Environment:
- Trac: 1.0.1
- ExtendedVersion: revision 12688
- Milestone associated with a version
Steps to reproduce:
- If there is no milestone associated with a version:
- Assure ExtendedVersion has property
roadmap_navigation
infalse
(this is only to assure to get a binding relationship between milestone and version due to Admin View not having capability to do that binding). - In Roadmap View select a Milestone
- Select edit and in Milestone Edit View, associate the milestone with a available version
- Assure ExtendedVersion has property
- Go to Versions view -> crash with pile:
XXXX-XX-XX XX:XX:XX,XXX Trac[main] ERROR: Internal Server Error: Traceback (most recent call last): File "XXX\Trac-1.0.1-py2.7-win32.egg.tmp\trac\web\main.py", line 497, in _dispatch_request dispatcher.dispatch(req) File "XXX\Trac-1.0.1-py2.7-win32.egg.tmp\trac\web\main.py", line 214, in dispatch resp = chosen_handler.process_request(req) File "XXX\site-packages\extendedversiontracplugin-0.1dev-py2.7.egg\extendedversion\version.py", line 147, in process_request return self._render_view(req, db, version) File "XXX\site-packages\extendedversiontracplugin-0.1dev-py2.7.egg\extendedversion\version.py", line 315, in _render_view milestone._from_database(row) AttributeError: 'Milestone' object has no attribute '_from_database'
I think the problem comes for last changes in 1.0.1 version of Trac (ticket 10879). Revisions related with that ticket (especially changeset 11523) changes Milestone class (from 1.1.x branch).
ExtendedVersion plugin uses Milestone in the old way (<= 1.0), with _from_database
method. With this changes of 1.1.x in 1.0.x, MilestoneCache must be used (fecth
or factory
) to make ExtendedVersion plugin work. Also due and complete fields of milestone has to be converted with from_utimestamp
method if they are recovered directly from database.
The patch attached to ticket is a simple solution, not the best approach, but it's working.
Attachments (2)
Change History (8)
Changed 12 years ago by
Attachment: | patch.patch added |
---|
Changed 12 years ago by
Attachment: | patch.2.patch added |
---|
Patch to change use of Milestone to MilestoneCache (corrected)
comment:1 Changed 12 years ago by
Patch patch.patch was ill defined. patch.2.patch is the valid patch. Sorry.
comment:2 Changed 12 years ago by
Owner: | changed from Malcolm Studd to Ryan J Ollos |
---|---|
Status: | new → assigned |
Thank you for the patch!
comment:3 Changed 12 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:4 Changed 12 years ago by
Replying to dawuid@gmail.com:
ExtendedVersion plugin uses Milestone in the old way (<= 1.0), with
_from_database
method. With this changes of 1.1.x in 1.0.x, MilestoneCache must be used (fecth
orfactory
) to make ExtendedVersion plugin work. Also due and complete fields of milestone has to be converted withfrom_utimestamp
method if they are recovered directly from database.
The plugin shouldn't have been accessing the private member _from_database
. The milestone object can be fully populated by passing the name
parameter to the constructor, which prevents us from needing to directly access a MilestoneCache
object that was added in 1.0.1, and avoid any backward compatibility issues for the ExtendedVersionPlugin codebase.
comment:5 Changed 12 years ago by
Thank you for your quick response and for a perfect patch! Installed and working :-)
comment:6 Changed 12 years ago by
Summary: | Version and Roadmap views shows error in when almoste one defined version has a milestone associated → Version and Roadmap views shows error when version has at least one defined milestone associated |
---|
Patch to change use of Milestone to MilestoneCache