Poi Issue Tracker 1.2 (Sep 05, 2009)

Plone 3-only release. Cleanup. Replacing Archetypes PoiResponses with Zope 3 style light weight objects. 1.2.1: translation improvements. 1.2.2: alternative migration. 1.2.3: fix bugs in email sending. 1.2.4: new restricted state for trackers is available so anonymous (possibly spammers) cannot add issues or responses. 1.2.5: translation update, better dependency handling, fixed error when creating snapshot. 1.2.6: Allow translation of email subject. Make sure all tracker managers actually get the Manager role. Added tracker workflow state 'protected' that denies anonymous access.

For additional information about this project, please visit the overview page .

Available downloads

Poi 1.2.6 old style tarball

For all platforms (0 kB)

Poi 1.2.5 Old style tarball

For all platforms (0 kB)

Poi 1.2.4 Old style tarball

For all platforms (0 kB)

Poi 1.2.3 Old style tarball

For all platforms (0 kB)

Poi_1.2.2.tgz Old style tarball

For all platforms (0 kB)

Poi_1.2.1.tgz Old style tarball

For all platforms (0 kB)

Poi_1.2.tgz Old style tarball

For all platforms (0 kB)

Poi 1.2 rc 2 Old style tarball

For all platforms (0 kB)

Poi 1.2 rc 1 Old style tarball

For all platforms (0 kB)

Poi 1.2 beta 1 Old style tarball

For all platforms (0 kB)

Release Notes

Tested with Plone 3
State Final release
License GPL
Release Manager Maurits van Rees
Released 2009/02/23

Highlights of this release include:

  • Plone 3 only; Plone 2.5 is no longer supported.
  • Refactoring: moving some logic from the content types and python scripts (in the skin) into browser views and other adapters.
  • Eggification: Poi is now available as Products.Poi at the cheeseshop. An old-style download is still available here at plone.org.
  • Big refactoring: PoiResponses (Archetypes objects) are replaced with Zope 3 style light weight objects. This needs a migration: in the Zope Management Interface (ZMI) go to portal_setup, then the Upgrades tab and run any upgrade steps listed for Poi. First make a backup of your Data.fs for safety!
  • UI change: the responses refactoring made it possible to have a reaction form at the bottom of each issue instead of needing to create a PoiResponse.  So now you can see the issue and all responses when making your own response.
  • New restricted state for trackers is available so anonymous (possibly spammers) cannot add issues or responses.
  • New protected state for trackers so only members have access.

 

Change log

1.2.6 (2009-09-06)

  • Added upgrade step to make sure all the tracker manager actually have the Manager role. [maurits]
  • Added tracker workflow state 'protected'. Basically Readers can read, Editors can edit and Contributors can contribute. Anonymous cannot see anything. Implements http://plone.org/products/poi/issues/181 [maurits]
  • Issue workflow: acquire permission settings of 'Modify portal content' from higher level: when you can edit a tracker you can edit its issues as well. [maurits]
  • Protect the edit button of an issue with the 'Manage portal content' permission instead of the non-existing 'Manage Portal Content' with capital letters... [maurits]
  • Fixed bug where a text/html response added using kupu (needs a change in config.py) was not accepted. Fixes http://plone.org/products/poi/issues/224 [maurits]
  • When creating a tracker as non-manager you used to become only Owner and not Manager, which is not what we want. Fixed this and a few other possible errors (like loosing other local roles) in setting the managers. Fixes http://plone.org/products/poi/issues/218 [maurits]
  • Catch and log SMTPExceptions when sending an email fails. Fixes http://plone.org/products/poi/issues/223 [maurits]
  • Uploading a file in an issue could fail needlessly due to a translation error while validating. Fixes UnicodeDecodeError at http://plone.org/products/poi/issues/220 [maurits]
  • Allow translation of email's subject. Fixes http://plone.org/products/poi/issues/219 [kdeldycke]
  • Made the restricted state the initial state of a new tracker. [maurits]

1.2.5 (2009-07-08)

  • Register a basically empty content exporter for issues, as they can give unicode errors when making a snapshot in portal_setup. See http://plone.org/products/poi/issues/217 [maurits]
  • Added missing strings in german translation [jensens]
  • Explicitly depend on Products.DataGridField >= 1.6b3 as that is the first pypi release. That release has a GS profile (that we depend on in our metadata.xml) and it has the isDataGridFilled validator (that we now remove from Poi). Removed DataGridField from the quick installer dependencies as we indeed now list this dependency in metadata.xml. [maurits]
  • Added dependencies to metadata.xml in profile. [jensens]

1.2.4 (2009-05-30)

  • Deal with AttributeError in migration when called from the prefs_install_products_form (Plone 3.3) as we have no REQUEST object then. [maurits]
  • Registered a checker for one of the upgrade steps, so this step is always available when there are old style PoiResponses. [maurits]
  • Removed some event subscribers for old style responses, as they were not needed anymore and they might slow down the migration a bit. [maurits]
  • Added state 'restricted' to poi tracker workflow; in this state anonymous can view issues and responses, but only members can add them. Default stays the same: open for submissions from everyone. Fixes http://plone.org/products/poi/issues/214 [maurits]
  • Fixed the log page of an issue so the new style responses are shown. [maurits]
  • Indent the response details in the email so they are correctly interpreted as a literal block after the double colon behind the 'Response Details' header. Otherwise the html part of an email would be in a simple pre tag or possibly show a warning. Fixes http://plone.org/products/poi/issues/215 [maurits]
  • Get the response add and edit forms working with kupu and TinyMCE (when ISSUE_MIME_TYPES is changed manually in config.py). [maurits]

1.2.3 (2009-04-22)

  • The html version of the emails that are sent out could contain warnings from the restructured text parser. When that happens, we now simply put the text inside a pre tag. [maurits]
  • When email of user is not known, which can happen for example when this is an LDAP user, do not try to send this person an email Fixes http://plone.org/products/poi/issues/213 [maurits]
  • Remove stray div before DOCTYPE in add issue template. [elro]
  • Registered the Poi upgrade steps for an upgrade from Poi 1.1.9 instead of 1.1 so these steps are shown also when you upgrade from say Poi 1.1.2. [maurits]

1.2.2 (2009-03-26)

  • Fixed silly error in formatting an email address. [maurits]
  • Added alternative migration for old style responses that should have more chance to finish on a big site like plone.org. [maurits]
  • Fixed html validation error that has been around since Christmas 2005! Spotted by Bill Freeman. [maurits]
  • Update french translation. [kdeldycke]

1.2.1 (2009-03-09)

  • When sending an email about changes to an issue, translate those changes, as some of them are workflow changes, which can be translated. [maurits]
  • Use the global translation service to translate the text that is added as status message. [maurits]
  • Made it possible to translate the email messages. Fixes http://plone.org/products/poi/issues/209 [maurits]

1.2 (2009-02-23)

  • In the migration from old to new style responses, also migrate the attachments to the responses. [maurits]
  • Added default_methods for the area and issueType fields of an issue. If the vocabulary of the field has only one value, we select that one. See http://plone.org/products/poi/issues/202 [maurits]
  • Removed poi_email_* dtml pages from the skins directory, in favour of templates in events.py. Fixes http://plone.org/products/poi/issues/206 [maurits]
  • Fixed 'Field missing error' from kss (only visible in the logs). [maurits]
  • Fixed possible in rich text field widget by now giving the number of rows as an integer instead of a string. Fixes http://plone.org/products/poi/issues/203 [maurits]
  • Migrations: now doing intermediate transaction commits to give the migrations a chance to finish on big sites. [maurits]
  • Fixed UnicodeError in email sending. Fixes http://plone.org/products/poi/issues/198 Thanks to Derek Broughton for the first version of this fix. [maurits]
  • Added Portuguese translations by Nuno Cruz. Thanks! [maurits]
  • After creating a response, first check if emails need to be sent before figuring out the text to send. [maurits]
  • In migrations guard against outdated catalog items that have no existing object associated with them anymore. [maurits]
  • End-of-lines and svn:ignores set all over the place. [maurits]

1.2rc3 (2008-09-28)

  • Added profiles/default/metadata.xml: version 1.2. [maurits]
  • Do not show (part of) the Add response form when no responses can be added. Show a discreet message instead. [maurits]
  • Migrate old style responses in PoiPscTrackers as well. [maurits]
  • Code cleanup with pyflakes and pep8. Only syntactic changes, no behaviour changes. [maurits]

1.2 rc 2 (25 September 2008)

  • Using Products.CMFPlone.utils.safe_unicode to avoid UnicodeDecodeErrors. [maurits]

1.2 rc 1 (12 September 2008)

  • Added migration step to migrate workflow changes (in the responses) from ids to titles. [maurits]
  • Only show the add response form when the user is allowed to add a response. [maurits]
  • Fixed the login button displayed with the login suggestion so it actually redirects to the login_form. [maurits]
  • Translation updates. [maurits]

Poi 1.2 beta 1 - (12 July 2008)

  • Merged r68220 and r68223 from branches/1.1: Fixed typo that messed up a few translations. And fixed untranslatable login suggestion. Fixes http://plone.org/products/poi/issues/191 [maurits]
  • When getting information from the parent tracker of an issue, guard against having a temporary folder (from the portal factory) as a direct parent. Fixes errors like this: "Value ... is not allowed for vocabulary of element ${label}." Fixes http://plone.org/products/poi/issues/180 [maurits]
  • Made PoiTracker translatable with LinguaPlone. Does not make sense for the other content types. (Change merged from 1.1) Fixes http://plone.org/products/poi/issues/177 [maurits]

Poi 1.2 alpha 1 - (17 June 2008)

  • Handle target release better -- there was some confusion between values and labels. [maurits]

  • Made sure that just an issue state change or an attachment upload is also accepted as a change. [maurits]

  • Only show the target release option when there is more than one option (as None is always an option). [maurits]

  • Adapted the tests to use new style responses everywhere, except in the tests for migrating from old to new style responses.

  • Made Poi migrations available with a form at migrate-poi.html. [maurits]

  • Removed skins/Poi/poi_response_update_issue.cpy and related code. [maurits]

  • Add i18n to browser/response.pt [maurits]

  • Removed button for adding old style response to issue. [maurits]

  • Removed skins/Poi/determineResponseType.py [maurits]

  • Send email when response is added. [maurits]

  • Update SearchableText of issue when response is added. [maurits]

  • Add handling for the target releases field (available only when using the PSC tracker). [maurits]

  • Only show options like changing state when the user has permission to use them. [maurits]

  • Allow adding and downloading an attachment in a response. [maurits]

  • Store rendered html on the response; remove that after editing. Makes views faster. Basically a memoize variant. [maurits]

  • In the creation view, test that a response is valid before adding it. [maurits]

  • Let unit tests pass on Plone 3.1 by providing an IWorkflowChain adapter. [maurits]

  • Add migration step for making sure that the Description of all PoiIssues in the portal_catalog is of type unicode instead of string, just like the real objects. [maurits]

  • For the Description of a PoiIssue always return unicode. [maurits]

  • Use PersistentList instead of the combination of PersistentMapping and self.highest in ResponseContainer. Works just as well and feels easier. [maurits]

  • Add first tests for migration of individual issue. [maurits]

  • Add migration (GenericSetup upgrade step) from old to new style responses. [maurits]

  • Use the text of new style responses too for the SearchableText of an issue. [maurits]

  • No __parent__ and __name__ for PoiIssue anymore. Instead pass the issue as descriptions argument when firing the ObjectModifiedEvent for a response. Works fine and needs no migration. [maurits]

  • Use __parent__ and __name__ for responses. [maurits]

  • Add "self.__parent__ = self.__name__ = None" to __init__() of PoiIssue. Needs migration. Not sure if that is the best solution to the problem that in the event handler for modified responses the issue has no acquisition context.

  • Fire ObjectRemovedEvent when deleting a response and ObjectModifiedEvent when modifying it. [maurits]

  • When adding something to an issue check that it really is an IResponse. [maurits]

  • Add buttons and browser views for deleting and editing responses. [maurits]

  • Add PoiMessageFactory. [maurits]

  • Add method delete(id) for deleting responses. [maurits]

  • In response adapter rename total to highest. [maurits]

  • When FCKeditor is installed and an anonymous visitor adds a response, make sure this works by using the default html text area then. Same change as in the FCKeditor code itself in r59427. [maurits]

  • When in config.py DEFAULT_ISSUE_MIME_TYPE is set to text/html, use a wysiwyg field in the add response form. Tested with kupu. Haul the responses through portal_transforms and through linkDetection. [maurits]

  • Give responses a type additional/clarification/reply. [maurits]

  • Add browser test for adding a tracker, issue and response. [maurits]

  • Unit test the response browser views. [maurits]

  • Use aq_inner.aq_parent to get the parent of an issue. [maurits]

  • Add unit tests for browser.response.voc2dict. [maurits]

  • Add unit tests for the adapters. [maurits]

  • Show border around responses, like in the original layout. [maurits]

  • Check that the changes within a response are allowed (new severity in available_severities, etc). [maurits]

  • Make difference between available_transitions and transitions_for_display; also for the other response options. [maurits]

  • Add methods sorted_keys/values/items for the ResponseContainer. Show the sorted items in the view (so 1, ..., 9, 10 instead of 1, 10, ..., 9). [maurits]

  • Store OOBTree and total in a PersistentMapping instead of only the OOBTree directly in the annotations. [maurits]

  • Check radio buttons of response based on current status for all options. Rename options to be in line with the fields of the parent Task. [maurits]

  • Store creator and creation date of response. [maurits]

  • Use an OOBtree instead of a PersistentMapping to store the responses. [maurits]

  • Use zope.app.container.sample.SampleContainer as base class for ResponseContainer. Store a PersistentMapping in it. Show the sorted responses. [maurits]

  • Start creating zope 3 style lightweight responses instead of big fat Archetypes objects. [maurits]

  • Add provider:poi.response.add that gives you a form for adding a response when viewing an issue. [maurits]

  • Add browser view @@create_response that creates a response in the current issue, based on the request form. [maurits]

  • List Products.AddRemoveWidget and Products.DataGridField as dependencies in setup.py. [maurits]

  • Use event handlers for keeping the SearchableText of an issue in sync with its responses. This comes in place of the updateResponses method of an issue that was called by poi_response_update_issue.cpy. [maurits]

  • Eggification: Poi/trunk has been moved to Products.Poi/trunk/Products/Poi [maurits]

  • Modernization of trackers:

    • Add browser view @@issuefolder that handles the part of PoiTrackerthat involves being just a folder with issues.
    • Move getFilteredIssues, getIssueSearchQueryString and buildIssueSearchQuery from PoiTracker to browser view.
    • Remove skins/Poi/getOrphanedIssues.py and skins/Poi/getMyIssues.py. Put equivalents in the browser view.

    [maurits]

  • Move getNumberFromString, linkBugs and linkSvn from content/PoiTracker.py into new utils.py as they need no context. [maurits]

  • Memoize the getTagged* values for intelligenttext fields in PoiIssue and PoiResponse; clear them when setting those fields. This speeds up viewing an issue or response. [maurits]

  • Modernize code: - Cleanup imports with pyflakes. - use logging instead of zLOG. [maurits]

  • Do not try to apply a CustomizationPolicy. [maurits]

  • Remove backwards compatibility code for old CMFCore permissions. [maurits]

  • Remove references to contentmigration, as this was only needed for migrations from 1.0 beta 2 to 1.0 rc 1. [maurits]

  • Remove UML model as we do not use that anymore. [maurits]