Code

added search_checkboxes as an option for the search form
[roundup.git] / doc / customizing.txt
index af6335cf87c51cb74ed9c24693e893af1388df90..ddcd33ea6edf65df6d13d654fcdf924c41e65f1e 100644 (file)
@@ -2,7 +2,7 @@
 Customising Roundup
 ===================
 
-:Version: $Revision: 1.130 $
+:Version: $Revision: 1.133 $
 
 .. This document borrows from the ZopeBook section on ZPT. The original is at:
    http://www.zope.org/Documentation/Books/ZopeBook/current/ZPT.stx
@@ -585,6 +585,9 @@ interface for detectors.
 
 __ design.html
 
+Additional Detectors Ready For Use
+----------------------------------
+
 Sample additional detectors that have been found useful will appear in
 the ``'detectors'`` directory of the Roundup distribution. If you want
 to use one, copy it to the ``'detectors'`` of your tracker instance:
@@ -594,28 +597,18 @@ to use one, copy it to the ``'detectors'`` of your tracker instance:
   created. The address is hard-coded into the detector, so edit it
   before you use it (look for the text 'team@team.host') or you'll get
   email errors!
-
-  The detector code::
-
-    from roundup import roundupdb
-
-    def newissuecopy(db, cl, nodeid, oldvalues):
-        ''' Copy a message about new issues to a team address.
-        '''
-        # so use all the messages in the create
-        change_note = cl.generateCreateNote(nodeid)
-
-        # send a copy to the nosy list
-        for msgid in cl.get(nodeid, 'messages'):
-            try:
-                # note: last arg must be a list
-                cl.send_message(nodeid, msgid, change_note,
-                    ['team@team.host'])
-            except roundupdb.MessageSendError, message:
-                raise roundupdb.DetectorError, message
-
-    def init(db):
-        db.issue.react('create', newissuecopy)
+**creator_resolution.py**
+  Catch attempts to set the status to "resolved" - if the assignedto
+  user isn't the creator, then set the status to "confirm-done". Note that
+  "classic" Roundup doesn't have that status, so you'll have to add it. If
+  you don't want to though, it'll just use "in-progress" instead.
+**email_auditor.py**
+  If a file added to an issue is of type message/rfc822, we tack on the
+  extension .eml.
+  The reason for this is that Microsoft Internet Explorer will not open
+  things with a .eml attachment, as they deem it 'unsafe'. Worse yet,
+  they'll just give you an incomprehensible error message. For more 
+  information, see the detector code - it has a length explanation.
 
 
 Auditor or Reactor?
@@ -1602,6 +1595,8 @@ hasPermission   specific to the "user" class - determine whether the
 is_edit_ok      is the user allowed to Edit the current item?
 is_view_ok      is the user allowed to View the current item?
 is_retired      is the item retired?
+download_url    generates a url-quoted link for download of FileClass
+                item contents (ie. file<id>/<name>)
 =============== ========================================================
 
 Note that if you have a property of the same name as one of the above
@@ -1713,6 +1708,7 @@ menu        only on Link and Multilink properties - render a form select
             list for this property
 reverse     only on Multilink properties - produce a list of the linked
             items in reverse order
+isset       returns True if the property has been set to a value
 =========== ================================================================
 
 All of the above functions perform checks for permissions required to
@@ -1862,6 +1858,8 @@ as described below.
 Method          Description
 =============== ========================================================
 Batch           return a batch object using the supplied list
+url_quote       quote some text as safe for a URL (ie. space, %, ...)
+html_quote      quote some text as safe in HTML (ie. <, >, ...)
 =============== ========================================================
 
 You may add additional utility methods by writing them in your tracker
@@ -2884,6 +2882,11 @@ some security declarations::
 You would then (as an "admin" user) edit the details of the appropriate
 users, and add "SysAdmin" to their Roles list.
 
+Alternatively, you might want to change the Edit/View permissions granted
+for the "issue" class so that it's only available to users with the "System"
+or "Developer" Role, and then the new class you're adding is available to
+all with the "User" Role.
+
 
 Using External User Databases
 -----------------------------