22 :description:
33 How to customize and extend the Roundup Issue
44 Tracker. Includes many cookbook and how-to
5- examples. Reference for the design and internals
6- needed to understand and extend the examples to meet
7- new needs.
5+ examples.
86
97:tocdepth: 2
108
@@ -80,17 +78,17 @@ caches the schema).
8078
81791. Modify the ``schema.py``::
8280
83- issue = IssueClass(db, "issue",
81+ issue = IssueClass(db, "issue",
8482 assignedto=Link("user"), keyword=Multilink("keyword"),
8583 priority=Link("priority"), status=Link("status"),
8684 due_date=Date())
8785
88862. Add an edit field to the ``issue.item.html`` template::
8987
90- <tr>
91- <th>Due Date</th>
92- <td tal:content="structure context/due_date/field" />
93- </tr>
88+ <tr>
89+ <th>Due Date</th>
90+ <td tal:content="structure context/due_date/field" />
91+ </tr>
9492
9593 If you want to show only the date part of due_date then do this instead::
9694
@@ -2123,10 +2121,10 @@ The value "silent_change" in the button specification must match the
21232121string in the nosy reaction function.
21242122
21252123Changing How the Core Code Works
2126- ================================
2124+ --------------------------------
21272125
2128- Example: Changing Cache-Control headers
2129- ---------------------------------------
2126+ Changing Cache-Control Headers
2127+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
21302128
21312129The Client class in cgi/client.py has a lookup table that is used to
21322130set the Cache-Control headers for static files. The entries in this
@@ -2152,8 +2150,8 @@ path in the tracker's `config.ini`. In the example above:
21522150Note that a file name match overrides the mime type settings.
21532151
21542152
2155- Example: Implement password complexity checking
2156- -----------------------------------------------
2153+ Implement Password Complexity Checking
2154+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
21572155
21582156.. index:: tracker; lib directory (example)
21592157
@@ -2190,8 +2188,8 @@ it replaces the setPassword method in the Password class. The new
21902188version validates that the password is sufficiently complex. Then it
21912189passes off the setting of password to the original method.
21922190
2193- Example: Enhance time intervals
2194- -------------------------------
2191+ Enhance Time Intervals Forms
2192+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
21952193
21962194To make the user interface easier to use, you may want to support
21972195other forms for intervals. For example you can support an interval
@@ -2237,8 +2235,8 @@ hyperdb.py with::
22372235any call to convert an interval from raw form now has two simpler
22382236(and more friendly) ways to specify common time intervals.
22392237
2240- Example: Modifying the mail gateway
2241- -----------------------------------
2238+ Modifying the Mail Gateway
2239+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
22422240
22432241One site receives email on a main gateway. The virtual alias delivery
22442242table on the postfix server is configured with::
@@ -2364,17 +2362,23 @@ of the more complex subsystems in Roundup, and modifying it is not
23642362trivial.
23652363
23662364Other Examples
2367- --------------
2365+ ==============
23682366
23692367See the `rest interface documentation`_ for instructions on how to add
23702368new rest endpoints or `change the rate limiting method`_ using interfaces.py.
23712369
2370+ The `reference document`_ also has examples:
2371+
2372+ * `Extending the configuration file
2373+ <reference.html#extending-the-configuration-file>`_.
2374+ * `Adding a new Permission <reference.html#adding-a-new-permission>`_
2375+
23722376Examples on the Wiki
23732377====================
23742378
23752379Even more examples of customization have been contributed by
23762380users. They can be found on the `wiki
2377- <https://wiki.roundup-tracker.org>`_.
2381+ <https://wiki.roundup-tracker.org/CustomisationExamples >`_.
23782382
23792383.. _`design documentation`: design.html
23802384.. _`developer's guide`: developers.html
0 commit comments