Documentation
- Features
- How Tos
- Custom Fields
- Installing the IssueTrackerProduct
- Upgrading
- User management
- CheckoutableTemplates
- slimmer
Installing the IssueTrackerProduct
To be able to run the IssueTrackerProduct you will first need to have a running Zope. To install Zope, please go to
www.zope.org/Products and download the latest Zope version for your operating
system. Once installed you should be able reach your running Zope server on http://localhost:8080/.
It has to be Zope 2. IssueTrackerProduct does not work with Zope 3.
Download the latest issuetracker from the Download section to your computer. Once downloaded, you unpack the archive and extract it
to your Zope's Products directory. (e.g. /home/me/zope/Products). Go to http://localhost:8080/Control_Panel/manage and restart Zope. Once installed it should appear in the Products list in
the Zope Control Panel at http://localhost:8080/Control_Panel/Products/manage.
Now you can start creating instance of the IssueTrackerProduct anywhere inside Zope. You log in to the
Zope management interface on http://localhost:8080/manage and from the drop down list in the
right hand corner you select Issue Tracker. It is recommended that you go through the Properties
Wizard so that you get the correct settings that suit you. Take your time with the options and alternatives.
Upgrading
Usually upgrading is as easy as installing. The latest version you're intending to install might have special precautionary notes that you should look out for and read. Generally, all new versions of the IssueTrackerProduct are backwards compatible.
What you should do is to visit the Management tab of your issuetracker on
http://localhost:8080/myissuetracker/manage_ManagementForm and press the big Update Everything button. This will make sure your instance is up to date. It can be, for example, that the
version you're installing requires some new attributes on the
"instanciated" objects, then this script
will take care of that. It will also make sure the ZCatalog (installed as ICatalog) instance
is up to date with the correct indexes.
User management
By default, an IssueTrackerProduct instance allows anonymous people to get access to almost everything.
They will be able to add issues, list issues and post followups to issues. Only users with the Manager role will be able to change the status or delete issues. If you look in the Properties tab of your
IssueTrackerProduct instance you will notice there's a lines type property for which roles means "Manager".
If you have other roles assigned to Zope users (e.g. Supervisor) you can add that to this
property and then people with the Supervisor role will be able to changes status and delete issues too.
If you want to switch off the anonymous access you can disable the View permission for the
Anonymous User in Zope's Security tab. You can also go to the Management tab of the
IssueTrackerProduct instance and click the Users sub-tab and there you'll find a button to
"Disallow anonymous access". Under this sub-tab you will also find the
options for Issue Assignment.
If you want to use Issue Assignment, you have to have at least one user defined in an
Issue Tracker User Folder which you have to set up either inside your IssueTrackerProduct instance
or somewhere in it's parent acquisition path. From the Management->Users tab you will be able to "black list"
those users who should not be assignable. This could happen if a team of people are using an IssueTrackerProduct instance but you want only the developers to be assignable.
Since the 0.6.1 version, when you install the IssueTrackerProduct you also get an object type called
Issue Tracker User Folder. It works like the default Zope User Folder except that
it has some more features. It also stores the full name and email.
CheckoutableTemplates
CheckoutableTemplates is another Zope Product like the IssueTrackerProduct. The IssueTrackerProduct is not dependent on CheckoutableTemplates but if you want to be able to change the look and feel of an IssueTrackerProduct instance you have to have CheckoutableTemplates installed in your Zope. Once installed it allows you to - surprisingly - check out individual templates that the issue tracker uses. Since the IssueTrackerProduct holds its templates on the filesystem, they can't be edited through the Zope management interface (ZMI) which is quite inconvenient; plus that if you change the templates on the filesystem it affects all instances of the product. That's the problem. CheckoutableTemplates is the solution.
If you install CheckoutableTemplates (like any other Zope product)
and you have an IssueTrackerProduct instance running on
http://localhost:8080/myissuetracker/ then all you have
to is to visit
http://localhost:8080/myissuetracker/showCheckoutableTemplates.
From there you will be able to select a certain template and
make a local copy of it in the ZODB (thus accessible in the ZMI). The
name of this newly created object will be the same as it was defined
as but with an extension added at the end. The changes you make there
is what will be shown nomatter what the state of the filesystem is.
slimmer
slimmer is a pure Python module that optimises whitespace in HTML, XHTML, CSS and JavaScripts. It's got very little to do with the IssueTrackerProduct but CheckoutableTemplates is able to use in and since the IssueTrackerProduct can use CheckoutableTemplates it can use slimmer to optimise it's output.
By default, if you install CheckoutableTemplates and slimmer and run a new IssueTracker it will optimise all the output that the IssueTrackerProduct produces. The IssueTrackerProduct's output is already heavily optimised but slimmer helps to reduce your total download size by 20-30% to make usage faster and snappier.
slimmer is built to be an on-the-fly optimiser meaning that it's built to be very fast so you can use it for every generated page. There are lots of competing whitespace optimisers on the net (some that you have to pay for) but almost all of them are built for static optimising which makes it difficult to deploy with dynamic webpages. There are of course lots of more things slimmer could do to reduce the size of what it works on but some of those ideas have had to be discarded in favor of speed.
>>> from slimmer import css_slimmer, xhtml_slimmer, js_slimmer
>>> css_slimmer('''/* Page heading */
... div#header {
... width : 100%;
... }''')
'div#header{width:100%}'
>>> xhtml_slimmer('''<!-- comment -->
... <a href="x"
... width="100%" border='0'>Pointless extra
...
... space</a>''')
'<a href="x" width="100%" border=\'0\'>Pointless extra\n \nspace</a>'
>>> js_slimmer('''function foobar(x,y) {
... var element1 = document.getElementById('something'); // alert(element1);
... alert(element1); // this can be removed
... } // end of function;
... ''')
"function foobar(x,y){var element1=document.getElementById('something');alert(element1);}"
>>>
Credits to: Baruch Even for his patches with improvements.
You can test
drive it here and read more about how to
integrate with Zope here (but there are better ways)