Mercurial > p > roundup > code
annotate doc/customizing.txt @ 5973:fe334430ca07
issue2550919 - Anti-bot signup using 4 second delay
Took the code by erik forsberg and massaged it into the core.
So this is no longer needed in the tracker.
Updated devel and responsive trackers to remove timestamp.py and
update input field name.
Docs, changes and tests complete. Hopefully these tracker changes
won't cause an issue for other tests.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 09 Nov 2019 00:30:37 -0500 |
| parents | 45c691a81f75 |
| children | 54d0080769f9 |
| rev | line source |
|---|---|
|
4033
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
3968
diff
changeset
|
1 :tocdepth: 2 |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
3968
diff
changeset
|
2 |
|
1215
f83efa574177
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1214
diff
changeset
|
3 =================== |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
4 Customising Roundup |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
5 =================== |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
6 |
|
1070
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
7 .. This document borrows from the ZopeBook section on ZPT. The original is at: |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
8 http://www.zope.org/Documentation/Books/ZopeBook/current/ZPT.stx |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
684
diff
changeset
|
9 |
|
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
684
diff
changeset
|
10 .. contents:: |
|
4888
b07014d6a7aa
docs: Fix table of contents on customizing page
anatoly techtonik <techtonik@gmail.com>
parents:
4880
diff
changeset
|
11 :depth: 2 |
|
b07014d6a7aa
docs: Fix table of contents on customizing page
anatoly techtonik <techtonik@gmail.com>
parents:
4880
diff
changeset
|
12 :local: |
|
686
c52122f38c9b
Documentation cleanup, added info for potential (and current) developers
Richard Jones <richard@users.sourceforge.net>
parents:
684
diff
changeset
|
13 |
|
898
5ffac75a7f2e
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
798
diff
changeset
|
14 What You Can Do |
| 1098 | 15 =============== |
|
898
5ffac75a7f2e
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
798
diff
changeset
|
16 |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
17 Before you get too far, it's probably worth having a quick read of the Roundup |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
18 `design documentation`_. |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
19 |
|
1850
6e80f8f760a4
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1832
diff
changeset
|
20 Customisation of Roundup can take one of six forms: |
|
898
5ffac75a7f2e
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
798
diff
changeset
|
21 |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
22 1. `tracker configuration`_ changes |
|
1089
43ab730ee194
instance -> tracker, node -> item
Richard Jones <richard@users.sourceforge.net>
parents:
1083
diff
changeset
|
23 2. database, or `tracker schema`_ changes |
|
898
5ffac75a7f2e
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
798
diff
changeset
|
24 3. "definition" class `database content`_ changes |
|
4921
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
25 4. behavioural changes, through detectors_ and extensions_ |
|
2003
a291bf753037
maintenance -> admin guide
Richard Jones <richard@users.sourceforge.net>
parents:
1998
diff
changeset
|
26 5. `security / access controls`_ |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
27 6. change the `web interface`_ |
|
898
5ffac75a7f2e
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
798
diff
changeset
|
28 |
|
5ffac75a7f2e
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
798
diff
changeset
|
29 The third case is special because it takes two distinctly different forms |
|
1089
43ab730ee194
instance -> tracker, node -> item
Richard Jones <richard@users.sourceforge.net>
parents:
1083
diff
changeset
|
30 depending upon whether the tracker has been initialised or not. The other two |
|
43ab730ee194
instance -> tracker, node -> item
Richard Jones <richard@users.sourceforge.net>
parents:
1083
diff
changeset
|
31 may be done at any time, before or after tracker initialisation. Yes, this |
|
898
5ffac75a7f2e
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
798
diff
changeset
|
32 includes adding or removing properties from classes. |
|
5ffac75a7f2e
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
798
diff
changeset
|
33 |
|
5ffac75a7f2e
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
798
diff
changeset
|
34 |
|
1089
43ab730ee194
instance -> tracker, node -> item
Richard Jones <richard@users.sourceforge.net>
parents:
1083
diff
changeset
|
35 Trackers in a Nutshell |
| 1098 | 36 ====================== |
|
898
5ffac75a7f2e
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
798
diff
changeset
|
37 |
|
1089
43ab730ee194
instance -> tracker, node -> item
Richard Jones <richard@users.sourceforge.net>
parents:
1083
diff
changeset
|
38 Trackers have the following structure: |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
39 |
| 1098 | 40 =================== ======================================================== |
| 41 Tracker File Description | |
| 42 =================== ======================================================== | |
|
2921
ad4fb8a14a97
more doc updates, not so many TODOs any more
Richard Jones <richard@users.sourceforge.net>
parents:
2915
diff
changeset
|
43 config.ini Holds the basic `tracker configuration`_ |
|
ad4fb8a14a97
more doc updates, not so many TODOs any more
Richard Jones <richard@users.sourceforge.net>
parents:
2915
diff
changeset
|
44 schema.py Holds the `tracker schema`_ |
|
ad4fb8a14a97
more doc updates, not so many TODOs any more
Richard Jones <richard@users.sourceforge.net>
parents:
2915
diff
changeset
|
45 initial_data.py Holds any data to be entered into the database when the |
|
ad4fb8a14a97
more doc updates, not so many TODOs any more
Richard Jones <richard@users.sourceforge.net>
parents:
2915
diff
changeset
|
46 tracker is initialised. |
| 1098 | 47 db/ Holds the tracker's database |
| 48 db/files/ Holds the tracker's upload files and messages | |
|
2921
ad4fb8a14a97
more doc updates, not so many TODOs any more
Richard Jones <richard@users.sourceforge.net>
parents:
2915
diff
changeset
|
49 db/backend_name Names the database back-end for the tracker |
| 1098 | 50 detectors/ Auditors and reactors for this tracker |
|
4921
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
51 extensions/ Additional actions and `templating utilities`_ |
| 1098 | 52 html/ Web interface templates, images and style sheets |
|
3772
13e8825da493
Documentation update for common lib directory
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3769
diff
changeset
|
53 lib/ optional common imports for detectors and extensions |
| 1098 | 54 =================== ======================================================== |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
55 |
|
3117
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
56 |
|
1089
43ab730ee194
instance -> tracker, node -> item
Richard Jones <richard@users.sourceforge.net>
parents:
1083
diff
changeset
|
57 Tracker Configuration |
| 1098 | 58 ===================== |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
59 |
| 2910 | 60 The ``config.ini`` located in your tracker home contains the basic |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
61 configuration for the web and e-mail components of roundup's interfaces. |
| 2910 | 62 |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
63 Changes to the data captured by your tracker is controlled by the `tracker |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
64 schema`_. Some configuration is also performed using permissions - see the |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
65 `security / access controls`_ section. For example, to allow users to |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
66 automatically register through the email interface, you must grant the |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
67 "Anonymous" Role the "Email Access" Permission. |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
68 |
| 5367 | 69 The following is taken from the `Python Library Reference`__ (July 18, 2018) |
| 2910 | 70 section "ConfigParser -- Configuration file parser": |
| 71 | |
| 5367 | 72 The configuration file consists of sections, led by a [section] header |
| 73 and followed by name: value entries, with continuations in the style | |
| 74 of RFC 822 (see section 3.1.1, “LONG HEADER FIELDS”); name=value is | |
| 75 also accepted. Note that leading whitespace is removed from | |
| 76 values. The optional values can contain format strings which refer to | |
| 77 other values in the same section, or values in a special DEFAULT | |
| 78 section. Additional defaults can be provided on initialization and | |
| 79 retrieval. Lines beginning with '#' or ';' are ignored and may be | |
| 80 used to provide comments. | |
| 2910 | 81 |
| 82 For example:: | |
| 83 | |
| 84 [My Section] | |
|
2911
ca6206cc74d9
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2910
diff
changeset
|
85 foodir = %(dir)s/whatever |
|
ca6206cc74d9
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2910
diff
changeset
|
86 dir = frob |
|
ca6206cc74d9
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2910
diff
changeset
|
87 |
|
ca6206cc74d9
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2910
diff
changeset
|
88 would resolve the "%(dir)s" to the value of "dir" ("frob" in this case) |
|
ca6206cc74d9
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2910
diff
changeset
|
89 resulting in "foodir" being "frob/whatever". |
| 2910 | 90 |
| 5367 | 91 __ https://docs.python.org/2/library/configparser.html |
|
1245
d8c98af869ff
merge from maint-0-5
Richard Jones <richard@users.sourceforge.net>
parents:
1244
diff
changeset
|
92 |
|
5231
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5227
diff
changeset
|
93 Example configuration settings are below. |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5227
diff
changeset
|
94 |
| 2910 | 95 Section **main** |
| 96 database -- ``db`` | |
| 97 Database directory path. The path may be either absolute or relative | |
| 98 to the directory containig this config file. | |
| 99 | |
| 100 templates -- ``html`` | |
| 101 Path to the HTML templates directory. The path may be either absolute | |
|
5154
f608eeecf638
issue2550891: Allow subdir in template value. Anthony (antmail)
John Rouillard <rouilj@ieee.org>
parents:
5135
diff
changeset
|
102 or relative to the directory containing this config file. |
| 2910 | 103 |
|
3922
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
104 static_files -- default *blank* |
|
5231
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5227
diff
changeset
|
105 A list of space separated directory paths (or a single directory). |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5227
diff
changeset
|
106 These directories hold additional static files available via Web UI. |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5227
diff
changeset
|
107 These directories may contain sitewide images, CSS stylesheets etc. If |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5227
diff
changeset
|
108 a '-' is included, the list processing ends and the TEMPLATES |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5227
diff
changeset
|
109 directory is not searched after the specified directories. If this |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5227
diff
changeset
|
110 option is not set, all static files are taken from the TEMPLATES |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5227
diff
changeset
|
111 directory. |
|
3922
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
112 |
| 2910 | 113 admin_email -- ``roundup-admin`` |
|
2914
c75a19894d3e
alex's feedback
Richard Jones <richard@users.sourceforge.net>
parents:
2911
diff
changeset
|
114 Email address that roundup will complain to if it runs into trouble. If |
|
c75a19894d3e
alex's feedback
Richard Jones <richard@users.sourceforge.net>
parents:
2911
diff
changeset
|
115 the email address doesn't contain an ``@`` part, the MAIL_DOMAIN defined |
|
c75a19894d3e
alex's feedback
Richard Jones <richard@users.sourceforge.net>
parents:
2911
diff
changeset
|
116 below is used. |
| 2910 | 117 |
| 118 dispatcher_email -- ``roundup-admin`` | |
| 119 The 'dispatcher' is a role that can get notified of new items to the | |
|
2914
c75a19894d3e
alex's feedback
Richard Jones <richard@users.sourceforge.net>
parents:
2911
diff
changeset
|
120 database. It is used by the ERROR_MESSAGES_TO config setting. If the |
|
c75a19894d3e
alex's feedback
Richard Jones <richard@users.sourceforge.net>
parents:
2911
diff
changeset
|
121 email address doesn't contain an ``@`` part, the MAIL_DOMAIN defined |
|
c75a19894d3e
alex's feedback
Richard Jones <richard@users.sourceforge.net>
parents:
2911
diff
changeset
|
122 below is used. |
| 2910 | 123 |
| 124 email_from_tag -- default *blank* | |
| 125 Additional text to include in the "name" part of the From: address used | |
| 126 in nosy messages. If the sending user is "Foo Bar", the From: line | |
| 127 is usually: ``"Foo Bar" <issue_tracker@tracker.example>`` | |
| 128 the EMAIL_FROM_TAG goes inside the "Foo Bar" quotes like so: | |
| 129 ``"Foo Bar EMAIL_FROM_TAG" <issue_tracker@tracker.example>`` | |
| 130 | |
| 131 new_web_user_roles -- ``User`` | |
| 132 Roles that a user gets when they register with Web User Interface. | |
| 133 This is a comma-separated list of role names (e.g. ``Admin,User``). | |
| 134 | |
| 135 new_email_user_roles -- ``User`` | |
| 136 Roles that a user gets when they register with Email Gateway. | |
| 137 This is a comma-separated string of role names (e.g. ``Admin,User``). | |
| 138 | |
| 139 error_messages_to -- ``user`` | |
| 140 Send error message emails to the ``dispatcher``, ``user``, or ``both``? | |
| 141 The dispatcher is configured using the DISPATCHER_EMAIL setting. | |
| 142 Allowed values: ``dispatcher``, ``user``, or ``both`` | |
| 143 | |
| 144 html_version -- ``html4`` | |
| 145 HTML version to generate. The templates are ``html4`` by default. | |
| 146 If you wish to make them xhtml, then you'll need to change this | |
| 147 var to ``xhtml`` too so all auto-generated HTML is compliant. | |
| 148 Allowed values: ``html4``, ``xhtml`` | |
| 149 | |
| 150 timezone -- ``0`` | |
| 151 Numeric timezone offset used when users do not choose their own | |
| 152 in their settings. | |
| 153 | |
| 154 instant_registration -- ``yes`` | |
| 155 Register new users instantly, or require confirmation via | |
| 156 email? | |
| 157 Allowed values: ``yes``, ``no`` | |
| 158 | |
|
3544
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3535
diff
changeset
|
159 email_registration_confirmation -- ``yes`` |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3535
diff
changeset
|
160 Offer registration confirmation by email or only through the web? |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3535
diff
changeset
|
161 Allowed values: ``yes``, ``no`` |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3535
diff
changeset
|
162 |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3535
diff
changeset
|
163 indexer_stopwords -- default *blank* |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3535
diff
changeset
|
164 Additional stop-words for the full-text indexer specific to |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3535
diff
changeset
|
165 your tracker. See the indexer source for the default list of |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3535
diff
changeset
|
166 stop-words (e.g. ``A,AND,ARE,AS,AT,BE,BUT,BY, ...``). |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3535
diff
changeset
|
167 |
|
3922
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
168 umask -- ``02`` |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
169 Defines the file creation mode mask. |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
170 |
|
5047
b8a04cce88ff
Adding documentation for csv_field_size to the customizing tracker section issue2550669
John Rouillard <rouilj@ieee.org>
parents:
5004
diff
changeset
|
171 csv_field_size -- ``131072`` |
|
b8a04cce88ff
Adding documentation for csv_field_size to the customizing tracker section issue2550669
John Rouillard <rouilj@ieee.org>
parents:
5004
diff
changeset
|
172 Maximum size of a csv-field during import. Roundups export |
|
b8a04cce88ff
Adding documentation for csv_field_size to the customizing tracker section issue2550669
John Rouillard <rouilj@ieee.org>
parents:
5004
diff
changeset
|
173 format is a csv (comma separated values) variant. The csv |
|
b8a04cce88ff
Adding documentation for csv_field_size to the customizing tracker section issue2550669
John Rouillard <rouilj@ieee.org>
parents:
5004
diff
changeset
|
174 reader has a limit on the size of individual fields |
|
b8a04cce88ff
Adding documentation for csv_field_size to the customizing tracker section issue2550669
John Rouillard <rouilj@ieee.org>
parents:
5004
diff
changeset
|
175 starting with python 2.5. Set this to a higher value if you |
|
b8a04cce88ff
Adding documentation for csv_field_size to the customizing tracker section issue2550669
John Rouillard <rouilj@ieee.org>
parents:
5004
diff
changeset
|
176 get the error 'Error: field larger than field limit' during |
|
b8a04cce88ff
Adding documentation for csv_field_size to the customizing tracker section issue2550669
John Rouillard <rouilj@ieee.org>
parents:
5004
diff
changeset
|
177 import. |
|
b8a04cce88ff
Adding documentation for csv_field_size to the customizing tracker section issue2550669
John Rouillard <rouilj@ieee.org>
parents:
5004
diff
changeset
|
178 |
| 2910 | 179 Section **tracker** |
| 180 name -- ``Roundup issue tracker`` | |
| 181 A descriptive name for your roundup instance. | |
| 182 | |
| 183 web -- ``http://host.example/demo/`` | |
| 184 The web address that the tracker is viewable at. | |
| 185 This will be included in information sent to users of the tracker. | |
| 186 The URL MUST include the cgi-bin part or anything else | |
| 187 that is required to get to the home page of the tracker. | |
| 188 You MUST include a trailing '/' in the URL. | |
| 189 | |
| 190 email -- ``issue_tracker`` | |
| 191 Email address that mail to roundup should go to. | |
| 192 | |
|
3922
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
193 language -- default *blank* |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
194 Default locale name for this tracker. If this option is not set, the |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
195 language is determined by the environment variable LANGUAGE, LC_ALL, |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
196 LC_MESSAGES, or LANG, in that order of preference. |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
197 |
|
3548
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
198 Section **web** |
|
4088
34434785f308
Plug a number of security holes:
Richard Jones <richard@users.sourceforge.net>
parents:
4036
diff
changeset
|
199 allow_html_file -- ``no`` |
|
34434785f308
Plug a number of security holes:
Richard Jones <richard@users.sourceforge.net>
parents:
4036
diff
changeset
|
200 Setting this option enables Roundup to serve uploaded HTML |
|
34434785f308
Plug a number of security holes:
Richard Jones <richard@users.sourceforge.net>
parents:
4036
diff
changeset
|
201 file content *as HTML*. This is a potential security risk |
|
34434785f308
Plug a number of security holes:
Richard Jones <richard@users.sourceforge.net>
parents:
4036
diff
changeset
|
202 and is therefore disabled by default. Set to 'yes' if you |
|
34434785f308
Plug a number of security holes:
Richard Jones <richard@users.sourceforge.net>
parents:
4036
diff
changeset
|
203 trust *all* users uploading content to your tracker. |
|
34434785f308
Plug a number of security holes:
Richard Jones <richard@users.sourceforge.net>
parents:
4036
diff
changeset
|
204 |
|
3548
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
205 http_auth -- ``yes`` |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
206 Whether to use HTTP Basic Authentication, if present. |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
207 Roundup will use either the REMOTE_USER or HTTP_AUTHORIZATION |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
208 variables supplied by your web server (in that order). |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
209 Set this option to 'no' if you do not wish to use HTTP Basic |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
210 Authentication in your web interface. |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
211 |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
212 use_browser_language -- ``yes`` |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
213 Whether to use HTTP Accept-Language, if present. |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
214 Browsers send a language-region preference list. |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
215 It's usually set in the client's browser or in their |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
216 Operating System. |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
217 Set this option to 'no' if you want to ignore it. |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
218 |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
219 debug -- ``no`` |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
220 Setting this option makes Roundup display error tracebacks |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
221 in the user's browser rather than emailing them to the |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
222 tracker admin."), |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
223 |
| 2910 | 224 Section **rdbms** |
| 225 Settings in this section are used by Postgresql and MySQL backends only | |
| 226 | |
| 227 name -- ``roundup`` | |
| 228 Name of the database to use. | |
| 229 | |
| 230 host -- ``localhost`` | |
| 231 Database server host. | |
| 232 | |
| 233 port -- default *blank* | |
| 234 TCP port number of the database server. Postgresql usually resides on | |
| 235 port 5432 (if any), for MySQL default port number is 3306. Leave this | |
| 236 option empty to use backend default. | |
| 237 | |
| 238 user -- ``roundup`` | |
| 239 Database user name that Roundup should use. | |
| 240 | |
| 241 password -- ``roundup`` | |
| 242 Database user password. | |
| 243 | |
|
3922
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
244 read_default_file -- ``~/.my.cnf`` |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
245 Name of the MySQL defaults file. Only used in MySQL connections. |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
246 |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
247 read_default_group -- ``roundup`` |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
248 Name of the group to use in the MySQL defaults file. Only used in |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
249 MySQL connections. |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
250 |
| 2910 | 251 Section **logging** |
| 252 config -- default *blank* | |
| 253 Path to configuration file for standard Python logging module. If this | |
| 254 option is set, logging configuration is loaded from specified file; | |
| 255 options 'filename' and 'level' in this section are ignored. The path may | |
| 256 be either absolute or relative to the directory containig this config file. | |
| 257 | |
| 258 filename -- default *blank* | |
| 259 Log file name for minimal logging facility built into Roundup. If no file | |
| 260 name specified, log messages are written on stderr. If above 'config' | |
| 261 option is set, this option has no effect. The path may be either absolute | |
| 262 or relative to the directory containig this config file. | |
| 263 | |
| 264 level -- ``ERROR`` | |
| 265 Minimal severity level of messages written to log file. If above 'config' | |
| 266 option is set, this option has no effect. | |
| 267 Allowed values: ``DEBUG``, ``INFO``, ``WARNING``, ``ERROR`` | |
| 268 | |
| 269 Section **mail** | |
| 270 Outgoing email options. Used for nosy messages, password reset and | |
| 271 registration approval requests. | |
| 272 | |
| 273 domain -- ``localhost`` | |
| 274 Domain name used for email addresses. | |
| 275 | |
| 276 host -- default *blank* | |
| 277 SMTP mail host that roundup will use to send mail | |
| 278 | |
| 279 username -- default *blank* | |
| 280 SMTP login name. Set this if your mail host requires authenticated access. | |
| 281 If username is not empty, password (below) MUST be set! | |
| 282 | |
| 283 password -- default *blank* | |
| 284 SMTP login password. | |
| 285 Set this if your mail host requires authenticated access. | |
| 286 | |
|
3878
6d14a3b4e295
allow admin to specify port and local hostname for SMTP connections
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3830
diff
changeset
|
287 port -- default *25* |
|
6d14a3b4e295
allow admin to specify port and local hostname for SMTP connections
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3830
diff
changeset
|
288 SMTP port on mail host. |
|
6d14a3b4e295
allow admin to specify port and local hostname for SMTP connections
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3830
diff
changeset
|
289 Set this if your mail host runs on a different port. |
|
6d14a3b4e295
allow admin to specify port and local hostname for SMTP connections
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3830
diff
changeset
|
290 |
|
6d14a3b4e295
allow admin to specify port and local hostname for SMTP connections
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3830
diff
changeset
|
291 local_hostname -- default *blank* |
|
6d14a3b4e295
allow admin to specify port and local hostname for SMTP connections
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3830
diff
changeset
|
292 The fully qualified domain name (FQDN) to use during SMTP sessions. If left |
|
6d14a3b4e295
allow admin to specify port and local hostname for SMTP connections
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3830
diff
changeset
|
293 blank, the underlying SMTP library will attempt to detect your FQDN. If your |
|
6d14a3b4e295
allow admin to specify port and local hostname for SMTP connections
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3830
diff
changeset
|
294 mail host requires something specific, specify the FQDN to use. |
|
6d14a3b4e295
allow admin to specify port and local hostname for SMTP connections
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3830
diff
changeset
|
295 |
| 2910 | 296 tls -- ``no`` |
| 297 If your SMTP mail host provides or requires TLS (Transport Layer Security) | |
| 298 then you may set this option to 'yes'. | |
| 299 Allowed values: ``yes``, ``no`` | |
| 300 | |
| 301 tls_keyfile -- default *blank* | |
| 302 If TLS is used, you may set this option to the name of a PEM formatted | |
| 303 file that contains your private key. The path may be either absolute or | |
| 304 relative to the directory containig this config file. | |
| 305 | |
| 306 tls_certfile -- default *blank* | |
| 307 If TLS is used, you may set this option to the name of a PEM formatted | |
| 308 certificate chain file. The path may be either absolute or relative | |
| 309 to the directory containig this config file. | |
| 310 | |
| 311 charset -- utf-8 | |
| 312 Character set to encode email headers with. We use utf-8 by default, as | |
| 313 it's the most flexible. Some mail readers (eg. Eudora) can't cope with | |
| 314 that, so you might need to specify a more limited character set | |
| 315 (eg. iso-8859-1). | |
| 316 | |
| 317 debug -- default *blank* | |
| 318 Setting this option makes Roundup to write all outgoing email messages | |
| 319 to this file *instead* of sending them. This option has the same effect | |
| 320 as environment variable SENDMAILDEBUG. Environment variable takes | |
| 321 precedence. The path may be either absolute or relative to the directory | |
| 322 containig this config file. | |
| 323 | |
|
3922
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
324 add_authorinfo -- ``yes`` |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
325 Add a line with author information at top of all messages send by |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
326 roundup. |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
327 |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
328 add_authoremail -- ``yes`` |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
329 Add the mail address of the author to the author information at the |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
330 top of all messages. If this is false but add_authorinfo is true, |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
331 only the name of the actor is added which protects the mail address |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
332 of the actor from being exposed at mail archives, etc. |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
333 |
| 2910 | 334 Section **mailgw** |
| 335 Roundup Mail Gateway options | |
| 336 | |
| 337 keep_quoted_text -- ``yes`` | |
| 338 Keep email citations when accepting messages. Setting this to ``no`` strips | |
| 339 out "quoted" text from the message. Signatures are also stripped. | |
| 340 Allowed values: ``yes``, ``no`` | |
| 341 | |
| 342 leave_body_unchanged -- ``no`` | |
| 343 Preserve the email body as is - that is, keep the citations *and* | |
| 344 signatures. | |
| 345 Allowed values: ``yes``, ``no`` | |
| 346 | |
| 347 default_class -- ``issue`` | |
| 348 Default class to use in the mailgw if one isn't supplied in email subjects. | |
| 349 To disable, leave the value blank. | |
| 350 | |
|
3922
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
351 language -- default *blank* |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
352 Default locale name for the tracker mail gateway. If this option is |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
353 not set, mail gateway will use the language of the tracker instance. |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
354 |
|
3417
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
355 subject_prefix_parsing -- ``strict`` |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
356 Controls the parsing of the [prefix] on subject lines in incoming emails. |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
357 ``strict`` will return an error to the sender if the [prefix] is not |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
358 recognised. ``loose`` will attempt to parse the [prefix] but just |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
359 pass it through as part of the issue title if not recognised. ``none`` |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
360 will always pass any [prefix] through as part of the issue title. |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
361 |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
362 subject_suffix_parsing -- ``strict`` |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
363 Controls the parsing of the [suffix] on subject lines in incoming emails. |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
364 ``strict`` will return an error to the sender if the [suffix] is not |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
365 recognised. ``loose`` will attempt to parse the [suffix] but just |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
366 pass it through as part of the issue title if not recognised. ``none`` |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
367 will always pass any [suffix] through as part of the issue title. |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
368 |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
369 subject_suffix_delimiters -- ``[]`` |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
370 Defines the brackets used for delimiting the commands suffix in a subject |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
371 line. |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
372 |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
373 subject_content_match -- ``always`` |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
374 Controls matching of the incoming email subject line against issue titles |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
375 in the case where there is no designator [prefix]. ``never`` turns off |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
376 matching. ``creation + interval`` or ``activity + interval`` will match |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
377 an issue for the interval after the issue's creation or last activity. |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
378 The interval is a standard Roundup interval. |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
379 |
|
4406
3a0395583de5
add missing config options
Richard Jones <richard@users.sourceforge.net>
parents:
4325
diff
changeset
|
380 subject_updates_title -- ``yes`` |
|
3a0395583de5
add missing config options
Richard Jones <richard@users.sourceforge.net>
parents:
4325
diff
changeset
|
381 Update issue title if incoming subject of email is different. |
|
3a0395583de5
add missing config options
Richard Jones <richard@users.sourceforge.net>
parents:
4325
diff
changeset
|
382 Setting this to ``no`` will ignore the title part of |
|
3a0395583de5
add missing config options
Richard Jones <richard@users.sourceforge.net>
parents:
4325
diff
changeset
|
383 the subject of incoming email messages. |
|
3a0395583de5
add missing config options
Richard Jones <richard@users.sourceforge.net>
parents:
4325
diff
changeset
|
384 |
|
3922
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
385 refwd_re -- ``(\s*\W?\s*(fw|fwd|re|aw|sv|ang)\W)+`` |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
386 Regular expression matching a single reply or forward prefix |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
387 prepended by the mailer. This is explicitly stripped from the |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
388 subject during parsing. Value is Python Regular Expression |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
389 (UTF8-encoded). |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
390 |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
391 origmsg_re -- `` ^[>|\s]*-----\s?Original Message\s?-----$`` |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
392 Regular expression matching start of an original message if quoted |
|
4656
bce631d8f24d
issue2550738: Fixes for various documentation typos, thanks Nathan Russell
John Kristensen <john@jerrykan.com>
parents:
4619
diff
changeset
|
393 in the body. Value is Python Regular Expression (UTF8-encoded). |
|
3922
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
394 |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
395 sign_re -- ``^[>|\s]*-- ?$`` |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
396 Regular expression matching the start of a signature in the message |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
397 body. Value is Python Regular Expression (UTF8-encoded). |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
398 |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
399 eol_re -- ``[\r\n]+`` |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
400 Regular expression matching end of line. Value is Python Regular |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
401 Expression (UTF8-encoded). |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
402 |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
403 blankline_re -- ``[\r\n]+\s*[\r\n]+`` |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
404 Regular expression matching a blank line. Value is Python Regular |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
405 Expression (UTF8-encoded). |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
406 |
|
4406
3a0395583de5
add missing config options
Richard Jones <richard@users.sourceforge.net>
parents:
4325
diff
changeset
|
407 ignore_alternatives -- ``no`` |
|
3a0395583de5
add missing config options
Richard Jones <richard@users.sourceforge.net>
parents:
4325
diff
changeset
|
408 When parsing incoming mails, roundup uses the first |
|
3a0395583de5
add missing config options
Richard Jones <richard@users.sourceforge.net>
parents:
4325
diff
changeset
|
409 text/plain part it finds. If this part is inside a |
|
3a0395583de5
add missing config options
Richard Jones <richard@users.sourceforge.net>
parents:
4325
diff
changeset
|
410 multipart/alternative, and this option is set, all other |
|
3a0395583de5
add missing config options
Richard Jones <richard@users.sourceforge.net>
parents:
4325
diff
changeset
|
411 parts of the multipart/alternative are ignored. The default |
|
3a0395583de5
add missing config options
Richard Jones <richard@users.sourceforge.net>
parents:
4325
diff
changeset
|
412 is to keep all parts and attach them to the issue. |
|
3a0395583de5
add missing config options
Richard Jones <richard@users.sourceforge.net>
parents:
4325
diff
changeset
|
413 |
|
3922
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
414 Section **pgp** |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
415 OpenPGP mail processing options |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
416 |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
417 enable -- ``no`` |
|
5494
b7fa56ced601
use gpg module instead of pyme module for PGP encryption
Christof Meerwald <cmeerw@cmeerw.org>
parents:
5367
diff
changeset
|
418 Enable PGP processing. Requires gpg. |
|
3922
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
419 |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
420 roles -- default *blank* |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
421 If specified, a comma-separated list of roles to perform PGP |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
422 processing on. If not specified, it happens for all users. |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
423 |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
424 homedir -- default *blank* |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
425 Location of PGP directory. Defaults to $HOME/.gnupg if not |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
426 specified. |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
427 |
| 2910 | 428 Section **nosy** |
| 429 Nosy messages sending | |
| 430 | |
| 431 messages_to_author -- ``no`` | |
| 432 Send nosy messages to the author of the message. | |
|
4975
2fce201a2b47
Documentation: configuration messages_to_author value "nosy" now documented.
Bernhard Reiter <bernhard@intevation.de>
parents:
4941
diff
changeset
|
433 If ``yes`` is used, then messages are sent to the author |
|
2fce201a2b47
Documentation: configuration messages_to_author value "nosy" now documented.
Bernhard Reiter <bernhard@intevation.de>
parents:
4941
diff
changeset
|
434 even if not on the nosy list, same for ``new`` (but only for new messages). |
|
2fce201a2b47
Documentation: configuration messages_to_author value "nosy" now documented.
Bernhard Reiter <bernhard@intevation.de>
parents:
4941
diff
changeset
|
435 When set to ``nosy``, the nosy list controls sending messages to the author. |
|
2fce201a2b47
Documentation: configuration messages_to_author value "nosy" now documented.
Bernhard Reiter <bernhard@intevation.de>
parents:
4941
diff
changeset
|
436 Allowed values: ``yes``, ``no``, ``new``, ``nosy`` |
| 2910 | 437 |
| 438 signature_position -- ``bottom`` | |
| 439 Where to place the email signature. | |
| 440 Allowed values: ``top``, ``bottom``, ``none`` | |
| 441 | |
| 442 add_author -- ``new`` | |
| 443 Does the author of a message get placed on the nosy list automatically? | |
| 444 If ``new`` is used, then the author will only be added when a message | |
| 445 creates a new issue. If ``yes``, then the author will be added on | |
| 446 followups too. If ``no``, they're never added to the nosy. | |
| 447 Allowed values: ``yes``, ``no``, ``new`` | |
| 448 | |
| 449 add_recipients -- ``new`` | |
| 450 Do the recipients (``To:``, ``Cc:``) of a message get placed on the nosy | |
| 451 list? If ``new`` is used, then the recipients will only be added when a | |
| 452 message creates a new issue. If ``yes``, then the recipients will be added | |
| 453 on followups too. If ``no``, they're never added to the nosy. | |
| 454 Allowed values: ``yes``, ``no``, ``new`` | |
| 455 | |
|
3417
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
456 email_sending -- ``single`` |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
457 Controls the email sending from the nosy reactor. If ``multiple`` then |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
458 a separate email is sent to each recipient. If ``single`` then a single |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
459 email is sent with each recipient as a CC address. |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3409
diff
changeset
|
460 |
|
3922
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
461 max_attachment_size -- ``2147483647`` |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
462 Attachments larger than the given number of bytes won't be attached |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
463 to nosy mails. They will be replaced by a link to the tracker's |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
464 download page for the file. |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
465 |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3904
diff
changeset
|
466 |
| 2910 | 467 You may generate a new default config file using the ``roundup-admin |
|
5231
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5227
diff
changeset
|
468 genconfig`` command. You can generate a new config file merging in |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5227
diff
changeset
|
469 existing settings using the ``roundup-admin updateconfig`` command. |
| 2910 | 470 |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
471 Configuration variables may be referred to in lower or upper case. In code, |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
472 variables not in the "main" section are referred to using their section and |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
473 name, so "domain" in the section "mail" becomes MAIL_DOMAIN. The |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
474 configuration variables available are: |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
475 |
|
3768
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
476 Extending the configuration file |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
477 -------------------------------- |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
478 |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
479 You can't add new variables to the config.ini file in the tracker home but |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
480 you can add two new config.ini files: |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
481 |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
482 - a config.ini in the ``extensions`` directory will be loaded and attached |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
483 to the config variable as "ext". |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
484 - a config.ini in the ``detectors`` directory will be loaded and attached |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
485 to the config variable as "detectors". |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
486 |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
487 For example, the following in ``detectors/config.ini``:: |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
488 |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
489 [main] |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
490 qa_recipients = email@example.com |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
491 |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
492 is accessible as:: |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
493 |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
494 db.config.detectors['QA_RECIPIENTS'] |
|
ef5da136cdc5
document extending config
Richard Jones <richard@users.sourceforge.net>
parents:
3754
diff
changeset
|
495 |
|
3772
13e8825da493
Documentation update for common lib directory
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3769
diff
changeset
|
496 Note that the name grouping applied to the main configuration file is |
|
3769
d41ee0fdae71
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
3768
diff
changeset
|
497 applied to the extension config files, so if you instead have:: |
|
d41ee0fdae71
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
3768
diff
changeset
|
498 |
|
d41ee0fdae71
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
3768
diff
changeset
|
499 [qa] |
|
d41ee0fdae71
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
3768
diff
changeset
|
500 recipients = email@example.com |
|
d41ee0fdae71
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
3768
diff
changeset
|
501 |
|
d41ee0fdae71
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
3768
diff
changeset
|
502 then the above ``db.config.detectors['QA_RECIPIENTS']`` will still work. |
|
d41ee0fdae71
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
3768
diff
changeset
|
503 |
|
1360
aa7e4e8b14be
allow additional control over the roundupdb email sending...
Richard Jones <richard@users.sourceforge.net>
parents:
1335
diff
changeset
|
504 |
|
1089
43ab730ee194
instance -> tracker, node -> item
Richard Jones <richard@users.sourceforge.net>
parents:
1083
diff
changeset
|
505 Tracker Schema |
| 1098 | 506 ============== |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
507 |
| 3052 | 508 .. note:: |
| 509 if you modify the schema, you'll most likely need to edit the | |
| 510 `web interface`_ HTML template files and `detectors`_ to reflect | |
| 511 your changes. | |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
512 |
| 1091 | 513 A tracker schema defines what data is stored in the tracker's database. |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
514 Schemas are defined using Python code in the ``schema.py`` module of your |
|
2153
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
515 tracker. |
|
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
516 |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
517 The ``schema.py`` module |
|
2153
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
518 ------------------------ |
|
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
519 |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
520 The ``schema.py`` module contains two functions: |
|
2153
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
521 |
|
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
522 **open** |
|
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
523 This function defines what your tracker looks like on the inside, the |
|
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
524 **schema** of the tracker. It defines the **Classes** and **properties** |
|
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
525 on each class. It also defines the **security** for those Classes. The |
|
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
526 next few sections describe how schemas work and what you can do with |
|
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
527 them. |
|
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
528 **init** |
|
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
529 This function is responsible for setting up the initial state of your |
|
4435
386200d0c929
Some minor typos fixed in doc/customizing.txt (Thanks Ralf Hemmecke).
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4406
diff
changeset
|
530 tracker. It's called exactly once - by the ``roundup-admin initialise`` |
|
2153
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
531 command. See the start of the section on `database content`_ for more |
|
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
532 info about how this works. |
|
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
533 |
|
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
534 |
|
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
535 The "classic" schema |
|
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
536 -------------------- |
|
643f9c9d7517
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2149
diff
changeset
|
537 |
|
3476
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
538 The "classic" schema looks like this (see section `setkey(property)`_ |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
539 below for the meaning of ``'setkey'`` -- you may also want to look into |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
540 the sections `setlabelprop(property)`_ and `setorderprop(property)`_ for |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
541 specifying (default) labelling and ordering of classes.):: |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
542 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
543 pri = Class(db, "priority", name=String(), order=String()) |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
544 pri.setkey("name") |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
545 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
546 stat = Class(db, "status", name=String(), order=String()) |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
547 stat.setkey("name") |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
548 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
549 keyword = Class(db, "keyword", name=String()) |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
550 keyword.setkey("name") |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
551 |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
552 user = Class(db, "user", username=String(), organisation=String(), |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
553 password=String(), address=String(), realname=String(), |
|
3754
9f4dd27ae843
documentation cleanup from Luke Ross (patch [SF#1594860])
Richard Jones <richard@users.sourceforge.net>
parents:
3747
diff
changeset
|
554 phone=String(), alternate_addresses=String(), |
|
9f4dd27ae843
documentation cleanup from Luke Ross (patch [SF#1594860])
Richard Jones <richard@users.sourceforge.net>
parents:
3747
diff
changeset
|
555 queries=Multilink('query'), roles=String(), timezone=String()) |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
556 user.setkey("username") |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
557 |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
558 msg = FileClass(db, "msg", author=Link("user"), summary=String(), |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
559 date=Date(), recipients=Multilink("user"), |
|
3754
9f4dd27ae843
documentation cleanup from Luke Ross (patch [SF#1594860])
Richard Jones <richard@users.sourceforge.net>
parents:
3747
diff
changeset
|
560 files=Multilink("file"), messageid=String(), inreplyto=String()) |
|
9f4dd27ae843
documentation cleanup from Luke Ross (patch [SF#1594860])
Richard Jones <richard@users.sourceforge.net>
parents:
3747
diff
changeset
|
561 |
|
9f4dd27ae843
documentation cleanup from Luke Ross (patch [SF#1594860])
Richard Jones <richard@users.sourceforge.net>
parents:
3747
diff
changeset
|
562 file = FileClass(db, "file", name=String()) |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
563 |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
564 issue = IssueClass(db, "issue", keyword=Multilink("keyword"), |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
565 status=Link("status"), assignedto=Link("user"), |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
566 priority=Link("priority")) |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
567 issue.setkey('title') |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
568 |
| 1832 | 569 |
| 570 What you can't do to the schema | |
| 571 ------------------------------- | |
| 572 | |
| 573 You must never: | |
| 574 | |
| 575 **Remove the users class** | |
|
2739
deb298529c2b
doc clarification
Richard Jones <richard@users.sourceforge.net>
parents:
2726
diff
changeset
|
576 This class is the only *required* class in Roundup. |
|
deb298529c2b
doc clarification
Richard Jones <richard@users.sourceforge.net>
parents:
2726
diff
changeset
|
577 |
|
deb298529c2b
doc clarification
Richard Jones <richard@users.sourceforge.net>
parents:
2726
diff
changeset
|
578 **Remove the "username", "address", "password" or "realname" user properties** |
|
deb298529c2b
doc clarification
Richard Jones <richard@users.sourceforge.net>
parents:
2726
diff
changeset
|
579 Various parts of Roundup require these properties. Don't remove them. |
| 1832 | 580 |
| 581 **Change the type of a property** | |
| 582 Property types must *never* be changed - the database simply doesn't take | |
| 583 this kind of action into account. Note that you can't just remove a | |
| 584 property and re-add it as a new type either. If you wanted to make the | |
| 585 assignedto property a Multilink, you'd need to create a new property | |
| 586 assignedto_list and remove the old assignedto property. | |
| 587 | |
| 588 | |
| 589 What you can do to the schema | |
| 590 ----------------------------- | |
| 591 | |
| 592 Your schema may be changed at any time before or after the tracker has been | |
| 593 initialised (or used). You may: | |
| 594 | |
| 595 **Add new properties to classes, or add whole new classes** | |
| 596 This is painless and easy to do - there are generally no repurcussions | |
| 597 from adding new information to a tracker's schema. | |
| 598 | |
| 599 **Remove properties** | |
| 600 Removing properties is a little more tricky - you need to make sure that | |
| 601 the property is no longer used in the `web interface`_ *or* by the | |
| 602 detectors_. | |
| 603 | |
| 604 | |
| 605 | |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
606 Classes and Properties - creating a new information store |
| 1098 | 607 --------------------------------------------------------- |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
608 |
|
1089
43ab730ee194
instance -> tracker, node -> item
Richard Jones <richard@users.sourceforge.net>
parents:
1083
diff
changeset
|
609 In the tracker above, we've defined 7 classes of information: |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
610 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
611 priority |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
612 Defines the possible levels of urgency for issues. |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
613 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
614 status |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
615 Defines the possible states of processing the issue may be in. |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
616 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
617 keyword |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
618 Initially empty, will hold keywords useful for searching issues. |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
619 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
620 user |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
621 Initially holding the "admin" user, will eventually have an entry |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
622 for all users using roundup. |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
623 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
624 msg |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
625 Initially empty, will hold all e-mail messages sent to or |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
626 generated by roundup. |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
627 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
628 file |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
629 Initially empty, will hold all files attached to issues. |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
630 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
631 issue |
| 1091 | 632 Initially empty, this is where the issue information is stored. |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
633 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
634 We define the "priority" and "status" classes to allow two things: |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
635 reduction in the amount of information stored on the issue and more |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
636 powerful, accurate searching of issues by priority and status. By only |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
637 requiring a link on the issue (which is stored as a single number) we |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
638 reduce the chance that someone mis-types a priority or status - or |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
639 simply makes a new one up. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
640 |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
641 |
| 1091 | 642 Class and Items |
| 1098 | 643 ~~~~~~~~~~~~~~~ |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
644 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
645 A Class defines a particular class (or type) of data that will be stored |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
646 in the database. A class comprises one or more properties, which gives |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
647 the information about the class items. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
648 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
649 The actual data entered into the database, using ``class.create()``, are |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
650 called items. They have a special immutable property called ``'id'``. We |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
651 sometimes refer to this as the *itemid*. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
652 |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
653 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
654 Properties |
| 1098 | 655 ~~~~~~~~~~ |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
656 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
657 A Class is comprised of one or more properties of the following types: |
| 1091 | 658 |
| 659 * String properties are for storing arbitrary-length strings. | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
660 * Password properties are for storing encoded arbitrary-length strings. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
661 The default encoding is defined on the ``roundup.password.Password`` |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
662 class. |
| 1091 | 663 * Date properties store date-and-time stamps. Their values are Timestamp |
| 664 objects. | |
|
5067
e424987d294a
Add support for an integer type to join the existing number type.
John Rouillard <rouilj@ieee.org>
parents:
5064
diff
changeset
|
665 * Integer properties store integer values. (Number can store real/float values.) |
|
5175
e1e40674a0bc
Implement double-precision Number
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5161
diff
changeset
|
666 * Number properties store numeric values. There is an option to use |
|
e1e40674a0bc
Implement double-precision Number
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5161
diff
changeset
|
667 double-precision floating point numbers. |
| 1091 | 668 * Boolean properties store on/off, yes/no, true/false values. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
669 * A Link property refers to a single other item selected from a |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
670 specified class. The class is part of the property; the value is an |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
671 integer, the id of the chosen item. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
672 * A Multilink property refers to possibly many items in a specified |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
673 class. The value is a list of integers. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
674 |
|
5064
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
675 Properties can have additional attributes to change the default |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
676 behaviour: |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
677 |
|
5239
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
678 * All properties support the following attributes: |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
679 |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
680 - ``required``: see `design documentation`_. Adds the property to |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
681 the list returned by calling get_required_props for the class. |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
682 - ``default_value``: see `design documentation`_ Sets the default |
| 5759 | 683 value if the property is not set. |
|
5239
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
684 - ``quiet``: see `design documentation`_. Suppresses user visible |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
685 to changes to this property. The property change is not reported: |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
686 |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
687 - in the change feedback/confirmation message in the web |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
688 interface |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
689 - the property change section of the nosy email |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
690 - the web history at the bottom of an item's page |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
691 |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
692 This can be used to store state of the user interface (e.g. the |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
693 names of elements that are collapsed or hidden from the |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
694 user). Making properties that are updated as an indirect result of |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
695 a user's change (e.g. updating a blockers property, counting |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
696 number of times an issue was reopened or reassigned etc.) should |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
697 not be displayed to the user as they can be confusing. |
|
15440504fb04
Spelling fix in design.txt.
John Rouillard <rouilj@ieee.org>
parents:
5232
diff
changeset
|
698 |
|
5064
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
699 * String properties can have an ``indexme`` attribute that defines if the |
|
5114
f74300d1494e
issue2550854: including new field in All text* search.
John Rouillard <rouilj@ieee.org>
parents:
5067
diff
changeset
|
700 property should be part of the full text index. The default is 'no' but this |
|
f74300d1494e
issue2550854: including new field in All text* search.
John Rouillard <rouilj@ieee.org>
parents:
5067
diff
changeset
|
701 can be set to 'yes' to allow a property's contents to be in the full |
|
f74300d1494e
issue2550854: including new field in All text* search.
John Rouillard <rouilj@ieee.org>
parents:
5067
diff
changeset
|
702 text index. |
|
5175
e1e40674a0bc
Implement double-precision Number
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5161
diff
changeset
|
703 * Number properties can have a ``use_double`` attribute that, when set |
|
e1e40674a0bc
Implement double-precision Number
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5161
diff
changeset
|
704 to ``True``, will use double precision floating point in the database. |
|
5064
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
705 * Link and Multilink properties can have several attributes: |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
706 |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
707 - ``do_journal``: By default, every change of a link property is |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
708 recorded in the item being linked to (or being unlinked). A typical |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
709 use-case for setting ``do_journal='no'`` would be to turn off |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
710 journalling of nosy list, message author and message recipient link |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
711 and unlink events to prevent the journal from clogged with these |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
712 events. |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
713 - ``try_id_parsing`` is turned on by default. If entering a number |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
714 into a Link or Multilink field, roundup interprets this number as an |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
715 ID of the item to link to. Sometimes items can have numeric names |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
716 (like, e.g., product codes). For these roundup needs to match the |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
717 numeric name and should never match an ID. In this case you can set |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
718 ``try_id_parsing='no'``. |
|
5131
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
719 - The ``msg_header_property`` is used by the mail gateway when sending |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
720 out messages. When a link or multilink property of an issue changes, |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
721 roundup creates email headers of the form:: |
|
5064
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
722 |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
723 X-Roundup-issue-prop: value |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
724 |
|
5131
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
725 where ``value`` is the ``name`` property for the linked item(s). |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
726 For example, if you have a multilink for attached_files in your |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
727 issue, you will see a header:: |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
728 |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
729 X-Roundup-issue-attached_files: MySpecialFile.doc, HisResume.txt |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
730 |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
731 when the class for attached files is defined as:: |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
732 |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
733 file = FileClass(db, "file", |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
734 name=String()) |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
735 |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
736 ``MySpecialFile.doc`` is the name for the file object. |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
737 |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
738 If you have an ``assigned_to`` property in your issue class that |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
739 links to the user class and you want to add a header:: |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
740 |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
741 X-Roundup-issue-assigned_to: ... |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
742 |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
743 so that the mail recipients can filter emails where |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
744 ``X-Roundup-issue-assigned_to: name`` that contains their |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
745 username. The user class is defined as:: |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
746 |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
747 user = Class(db, "user", |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
748 username=String(), |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
749 password=Password(), |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
750 address=String(), |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
751 realname=String(), |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
752 phone=String(), |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
753 organisation=String(), |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
754 alternate_addresses=String(), |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
755 queries=Multilink('query'), |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
756 roles=String(), # comma-separated string of Role names |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
757 timezone=String()) |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
758 |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
759 Because there is no ``name`` parameter for the user class, there |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
760 will be no header. However setting:: |
|
5135
9e8d8cd49f40
removing unneeded whitespace
John Rouillard <rouilj@ieee.org>
parents:
5131
diff
changeset
|
761 |
|
9e8d8cd49f40
removing unneeded whitespace
John Rouillard <rouilj@ieee.org>
parents:
5131
diff
changeset
|
762 assigned_to=Link("user", msg_header_property="username") |
|
5131
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
763 |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
764 will make the mail gateway generate an ``X-Roundup-issue-assigned_to`` |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
765 using the username property of the linked user. |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
766 |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
767 Assume assigned_to for an issue is linked to the user with |
|
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
768 username=joe_user, setting:: |
|
5064
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
769 |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
770 msg_header_property="username" |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
771 |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
772 for the assigned_to property will generated message headers of the |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
773 form:: |
|
5131
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
774 |
|
5064
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
775 X-Roundup-issue-assigned_to: joe_user |
|
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
776 |
|
5131
513803cade0a
from mailing list spurce up the documentation om msg_header_property. We may rename it, but that'a an easy patch
John Rouillard <rouilj@ieee.org>
parents:
5124
diff
changeset
|
777 for emails sent on issues where joe_user has been assigned to the issue. |
|
5124
a927f9549af0
Fix issue2550751: Email Header Issue.
John Rouillard <rouilj@ieee.org>
parents:
5114
diff
changeset
|
778 |
|
a927f9549af0
Fix issue2550751: Email Header Issue.
John Rouillard <rouilj@ieee.org>
parents:
5114
diff
changeset
|
779 If this property is set to the empty string "", it will prevent |
|
a927f9549af0
Fix issue2550751: Email Header Issue.
John Rouillard <rouilj@ieee.org>
parents:
5114
diff
changeset
|
780 the header from being generated on outgoing mail. |
|
5064
46da0db55545
Document some existing property attributes
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5047
diff
changeset
|
781 |
| 3097 | 782 All Classes automatically have a number of properties by default: |
| 783 | |
| 784 *creator* | |
| 785 Link to the user that created the item. | |
| 786 *creation* | |
| 787 Date the item was created. | |
| 788 *actor* | |
| 789 Link to the user that last modified the item. | |
| 790 *activity* | |
| 791 Date the item was last modified. | |
| 792 | |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
793 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
794 FileClass |
| 1098 | 795 ~~~~~~~~~ |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
796 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
797 FileClasses save their "content" attribute off in a separate file from |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
798 the rest of the database. This reduces the number of large entries in |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
799 the database, which generally makes databases more efficient, and also |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
800 allows us to use command-line tools to operate on the files. They are |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
801 stored in the files sub-directory of the ``'db'`` directory in your |
|
3754
9f4dd27ae843
documentation cleanup from Luke Ross (patch [SF#1594860])
Richard Jones <richard@users.sourceforge.net>
parents:
3747
diff
changeset
|
802 tracker. FileClasses also have a "type" attribute to store the MIME |
|
9f4dd27ae843
documentation cleanup from Luke Ross (patch [SF#1594860])
Richard Jones <richard@users.sourceforge.net>
parents:
3747
diff
changeset
|
803 type of the file. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
804 |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
805 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
806 IssueClass |
| 1098 | 807 ~~~~~~~~~~ |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
808 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
809 IssueClasses automatically include the "messages", "files", "nosy", and |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
810 "superseder" properties. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
811 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
812 The messages and files properties list the links to the messages and |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
813 files related to the issue. The nosy property is a list of links to |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
814 users who wish to be informed of changes to the issue - they get "CC'ed" |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
815 e-mails when messages are sent to or generated by the issue. The nosy |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
816 reactor (in the ``'detectors'`` directory) handles this action. The |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
817 superseder link indicates an issue which has superseded this one. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
818 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
819 They also have the dynamically generated "creation", "activity" and |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
820 "creator" properties. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
821 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
822 The value of the "creation" property is the date when an item was |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
823 created, and the value of the "activity" property is the date when any |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
824 property on the item was last edited (equivalently, these are the dates |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
825 on the first and last records in the item's journal). The "creator" |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
826 property holds a link to the user that created the issue. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
827 |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
828 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
829 setkey(property) |
| 1098 | 830 ~~~~~~~~~~~~~~~~ |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
831 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
832 Select a String property of the class to be the key property. The key |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
833 property must be unique, and allows references to the items in the class |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
834 by the content of the key property. That is, we can refer to users by |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
835 their username: for example, let's say that there's an issue in roundup, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
836 issue 23. There's also a user, richard, who happens to be user 2. To |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
837 assign an issue to him, we could do either of:: |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
838 |
|
1570
93e0a565cee5
fix the "set" command usage statement
Richard Jones <richard@users.sourceforge.net>
parents:
1568
diff
changeset
|
839 roundup-admin set issue23 assignedto=2 |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
840 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
841 or:: |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
842 |
|
1570
93e0a565cee5
fix the "set" command usage statement
Richard Jones <richard@users.sourceforge.net>
parents:
1568
diff
changeset
|
843 roundup-admin set issue23 assignedto=richard |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
844 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
845 Note, the same thing can be done in the web and e-mail interfaces. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
846 |
|
3476
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
847 setlabelprop(property) |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
848 ~~~~~~~~~~~~~~~~~~~~~~ |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
849 |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
850 Select a property of the class to be the label property. The label |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
851 property is used whereever an item should be uniquely identified, e.g., |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
852 when displaying a link to an item. If setlabelprop is not specified for |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
853 a class, the following values are tried for the label: |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
854 |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
855 * the key of the class (see the `setkey(property)`_ section above) |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
856 * the "name" property |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
857 * the "title" property |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
858 * the first property from the sorted property name list |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
859 |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
860 So in most cases you can get away without specifying setlabelprop |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
861 explicitly. |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
862 |
|
5268
cc79c0f1651d
Adding a little more doc describing that view access to the labelprop
John Rouillard <rouilj@ieee.org>
parents:
5248
diff
changeset
|
863 You should make sure that users have View access to this property or |
|
cc79c0f1651d
Adding a little more doc describing that view access to the labelprop
John Rouillard <rouilj@ieee.org>
parents:
5248
diff
changeset
|
864 the id property for a class. If the property can not be viewed by a |
|
cc79c0f1651d
Adding a little more doc describing that view access to the labelprop
John Rouillard <rouilj@ieee.org>
parents:
5248
diff
changeset
|
865 user, looping over items in the class (e.g. messages attached to an |
|
cc79c0f1651d
Adding a little more doc describing that view access to the labelprop
John Rouillard <rouilj@ieee.org>
parents:
5248
diff
changeset
|
866 issue) will not work. |
|
cc79c0f1651d
Adding a little more doc describing that view access to the labelprop
John Rouillard <rouilj@ieee.org>
parents:
5248
diff
changeset
|
867 |
|
3476
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
868 setorderprop(property) |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
869 ~~~~~~~~~~~~~~~~~~~~~~ |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
870 |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
871 Select a property of the class to be the order property. The order |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
872 property is used whenever using a default sort order for the class, |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
873 e.g., when grouping or sorting class A by a link to class B in the user |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
874 interface, the order property of class B is used for sorting. If |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
875 setorderprop is not specified for a class, the following values are tried |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
876 for the order property: |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
877 |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
878 * the property named "order" |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
879 * the label property (see `setlabelprop(property)`_ above) |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
880 |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
881 So in most cases you can get away without specifying setorderprop |
|
1142dafe0d7f
added setorderprop() and setlabelprop() to Class (lots of patches)
Richard Jones <richard@users.sourceforge.net>
parents:
3470
diff
changeset
|
882 explicitly. |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
883 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
884 create(information) |
| 1098 | 885 ~~~~~~~~~~~~~~~~~~~ |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
886 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
887 Create an item in the database. This is generally used to create items |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
888 in the "definitional" classes like "priority" and "status". |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
889 |
|
684
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
673
diff
changeset
|
890 |
|
2897
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
891 A note about ordering |
|
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
892 ~~~~~~~~~~~~~~~~~~~~~ |
|
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
893 |
|
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
894 When we sort items in the hyperdb, we use one of a number of methods, |
|
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
895 depending on the properties being sorted on: |
|
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
896 |
|
5067
e424987d294a
Add support for an integer type to join the existing number type.
John Rouillard <rouilj@ieee.org>
parents:
5064
diff
changeset
|
897 1. If it's a String, Integer, Number, Date or Interval property, we |
|
e424987d294a
Add support for an integer type to join the existing number type.
John Rouillard <rouilj@ieee.org>
parents:
5064
diff
changeset
|
898 just sort the scalar value of the property. Strings are sorted |
|
e424987d294a
Add support for an integer type to join the existing number type.
John Rouillard <rouilj@ieee.org>
parents:
5064
diff
changeset
|
899 case-sensitively. |
|
2897
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
900 2. If it's a Link property, we sort by either the linked item's "order" |
|
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
901 property (if it has one) or the linked item's "id". |
|
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
902 3. Mulitlinks sort similar to #2, but we start with the first Multilink |
|
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
903 list item, and if they're the same, we sort by the second item, and |
|
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
904 so on. |
|
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
905 |
|
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
906 Note that if an "order" property is defined on a Class that is used for |
|
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
907 sorting, all items of that Class *must* have a value against the "order" |
|
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
908 property, or sorting will result in random ordering. |
|
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
909 |
|
21a0b049fed8
notes about sorting
Richard Jones <richard@users.sourceforge.net>
parents:
2886
diff
changeset
|
910 |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
911 Examples of adding to your schema |
| 1098 | 912 --------------------------------- |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
913 |
|
3754
9f4dd27ae843
documentation cleanup from Luke Ross (patch [SF#1594860])
Richard Jones <richard@users.sourceforge.net>
parents:
3747
diff
changeset
|
914 The Roundup wiki has examples of how schemas can be customised to add |
|
9f4dd27ae843
documentation cleanup from Luke Ross (patch [SF#1594860])
Richard Jones <richard@users.sourceforge.net>
parents:
3747
diff
changeset
|
915 new functionality. |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
916 |
|
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
917 |
|
684
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
673
diff
changeset
|
918 Detectors - adding behaviour to your tracker |
| 1098 | 919 ============================================ |
|
909
ef9c759c243e
Fix to hasPermission, thanks Stefan Seefeld.
Richard Jones <richard@users.sourceforge.net>
parents:
907
diff
changeset
|
920 .. _detectors: |
|
684
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
673
diff
changeset
|
921 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
922 Detectors are initialised every time you open your tracker database, so |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
923 you're free to add and remove them any time, even after the database is |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
924 initialised via the ``roundup-admin initialise`` command. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
925 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
926 The detectors in your tracker fire *before* (**auditors**) and *after* |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
927 (**reactors**) changes to the contents of your database. They are Python |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
928 modules that sit in your tracker's ``detectors`` directory. You will |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
929 have some installed by default - have a look. You can write new |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
930 detectors or modify the existing ones. The existing detectors installed |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
931 for you are: |
|
907
38a74d1351c5
documentation updates
Richard Jones <richard@users.sourceforge.net>
parents:
899
diff
changeset
|
932 |
|
38a74d1351c5
documentation updates
Richard Jones <richard@users.sourceforge.net>
parents:
899
diff
changeset
|
933 **nosyreaction.py** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
934 This provides the automatic nosy list maintenance and email sending. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
935 The nosy reactor (``nosyreaction``) fires when new messages are added |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
936 to issues. The nosy auditor (``updatenosy``) fires when issues are |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
937 changed, and figures out what changes need to be made to the nosy list |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
938 (such as adding new authors, etc.) |
|
907
38a74d1351c5
documentation updates
Richard Jones <richard@users.sourceforge.net>
parents:
899
diff
changeset
|
939 **statusauditor.py** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
940 This provides the ``chatty`` auditor which changes the issue status |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
941 from ``unread`` or ``closed`` to ``chatting`` if new messages appear. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
942 It also provides the ``presetunread`` auditor which pre-sets the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
943 status to ``unread`` on new items if the status isn't explicitly |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
944 defined. |
|
1777
fbe08359511a
customisation doc update
Richard Jones <richard@users.sourceforge.net>
parents:
1773
diff
changeset
|
945 **messagesummary.py** |
|
fbe08359511a
customisation doc update
Richard Jones <richard@users.sourceforge.net>
parents:
1773
diff
changeset
|
946 Generates the ``summary`` property for new messages based on the message |
|
fbe08359511a
customisation doc update
Richard Jones <richard@users.sourceforge.net>
parents:
1773
diff
changeset
|
947 content. |
|
fbe08359511a
customisation doc update
Richard Jones <richard@users.sourceforge.net>
parents:
1773
diff
changeset
|
948 **userauditor.py** |
|
fbe08359511a
customisation doc update
Richard Jones <richard@users.sourceforge.net>
parents:
1773
diff
changeset
|
949 Verifies the content of some of the user fields (email addresses and |
|
fbe08359511a
customisation doc update
Richard Jones <richard@users.sourceforge.net>
parents:
1773
diff
changeset
|
950 roles lists). |
|
fbe08359511a
customisation doc update
Richard Jones <richard@users.sourceforge.net>
parents:
1773
diff
changeset
|
951 |
|
fbe08359511a
customisation doc update
Richard Jones <richard@users.sourceforge.net>
parents:
1773
diff
changeset
|
952 If you don't want this default behaviour, you're completely free to change |
|
fbe08359511a
customisation doc update
Richard Jones <richard@users.sourceforge.net>
parents:
1773
diff
changeset
|
953 or remove these detectors. |
|
907
38a74d1351c5
documentation updates
Richard Jones <richard@users.sourceforge.net>
parents:
899
diff
changeset
|
954 |
|
38a74d1351c5
documentation updates
Richard Jones <richard@users.sourceforge.net>
parents:
899
diff
changeset
|
955 See the detectors section in the `design document`__ for details of the |
|
38a74d1351c5
documentation updates
Richard Jones <richard@users.sourceforge.net>
parents:
899
diff
changeset
|
956 interface for detectors. |
|
38a74d1351c5
documentation updates
Richard Jones <richard@users.sourceforge.net>
parents:
899
diff
changeset
|
957 |
|
909
ef9c759c243e
Fix to hasPermission, thanks Stefan Seefeld.
Richard Jones <richard@users.sourceforge.net>
parents:
907
diff
changeset
|
958 __ design.html |
|
907
38a74d1351c5
documentation updates
Richard Jones <richard@users.sourceforge.net>
parents:
899
diff
changeset
|
959 |
| 2209 | 960 |
| 961 Detector API | |
| 962 ------------ | |
| 963 | |
| 964 Auditors are called with the arguments:: | |
| 965 | |
| 966 audit(db, cl, itemid, newdata) | |
| 967 | |
| 968 where ``db`` is the database, ``cl`` is an instance of Class or | |
| 969 IssueClass within the database, and ``newdata`` is a dictionary mapping | |
| 970 property names to values. | |
| 971 | |
| 972 For a ``create()`` operation, the ``itemid`` argument is None and | |
| 973 newdata contains all of the initial property values with which the item | |
| 974 is about to be created. | |
| 975 | |
| 976 For a ``set()`` operation, newdata contains only the names and values of | |
| 977 properties that are about to be changed. | |
| 978 | |
| 979 For a ``retire()`` or ``restore()`` operation, newdata is None. | |
| 980 | |
| 981 Reactors are called with the arguments:: | |
| 982 | |
| 983 react(db, cl, itemid, olddata) | |
| 984 | |
| 985 where ``db`` is the database, ``cl`` is an instance of Class or | |
| 986 IssueClass within the database, and ``olddata`` is a dictionary mapping | |
| 987 property names to values. | |
| 988 | |
| 989 For a ``create()`` operation, the ``itemid`` argument is the id of the | |
| 990 newly-created item and ``olddata`` is None. | |
| 991 | |
| 992 For a ``set()`` operation, ``olddata`` contains the names and previous | |
| 993 values of properties that were changed. | |
| 994 | |
| 995 For a ``retire()`` or ``restore()`` operation, ``itemid`` is the id of | |
| 996 the retired or restored item and ``olddata`` is None. | |
| 997 | |
| 998 | |
|
2193
b1a29edd6214
added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
2180
diff
changeset
|
999 Additional Detectors Ready For Use |
|
b1a29edd6214
added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
2180
diff
changeset
|
1000 ---------------------------------- |
|
b1a29edd6214
added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
2180
diff
changeset
|
1001 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1002 Sample additional detectors that have been found useful will appear in |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1003 the ``'detectors'`` directory of the Roundup distribution. If you want |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1004 to use one, copy it to the ``'detectors'`` of your tracker instance: |
|
684
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
673
diff
changeset
|
1005 |
|
4695
132650f4700a
#2550782: Added a new irker detector to send notifications on IRC when an issue is created or messages are added.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
4656
diff
changeset
|
1006 **irker.py** |
|
132650f4700a
#2550782: Added a new irker detector to send notifications on IRC when an issue is created or messages are added.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
4656
diff
changeset
|
1007 This detector sends notification on IRC through an irker daemon |
|
132650f4700a
#2550782: Added a new irker detector to send notifications on IRC when an issue is created or messages are added.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
4656
diff
changeset
|
1008 (http://www.catb.org/esr/irker/) when issues are created or messages |
|
132650f4700a
#2550782: Added a new irker detector to send notifications on IRC when an issue is created or messages are added.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
4656
diff
changeset
|
1009 are added. In order to use it you need to install irker, start the |
|
132650f4700a
#2550782: Added a new irker detector to send notifications on IRC when an issue is created or messages are added.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
4656
diff
changeset
|
1010 irkerd daemon, and add an ``[irker]`` section in ``detectors/config.ini`` |
|
132650f4700a
#2550782: Added a new irker detector to send notifications on IRC when an issue is created or messages are added.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
4656
diff
changeset
|
1011 that contains a comma-separated list of channels where the messages should |
|
132650f4700a
#2550782: Added a new irker detector to send notifications on IRC when an issue is created or messages are added.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
4656
diff
changeset
|
1012 be sent, e.g. ``channels = irc://chat.freenode.net/channelname``. |
|
907
38a74d1351c5
documentation updates
Richard Jones <richard@users.sourceforge.net>
parents:
899
diff
changeset
|
1013 **newissuecopy.py** |
|
684
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
673
diff
changeset
|
1014 This detector sends an email to a team address whenever a new issue is |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1015 created. The address is hard-coded into the detector, so edit it |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1016 before you use it (look for the text 'team@team.host') or you'll get |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1017 email errors! |
|
2193
b1a29edd6214
added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
2180
diff
changeset
|
1018 **creator_resolution.py** |
|
b1a29edd6214
added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
2180
diff
changeset
|
1019 Catch attempts to set the status to "resolved" - if the assignedto |
|
b1a29edd6214
added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
2180
diff
changeset
|
1020 user isn't the creator, then set the status to "confirm-done". Note that |
|
b1a29edd6214
added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
2180
diff
changeset
|
1021 "classic" Roundup doesn't have that status, so you'll have to add it. If |
|
b1a29edd6214
added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
2180
diff
changeset
|
1022 you don't want to though, it'll just use "in-progress" instead. |
|
b1a29edd6214
added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
2180
diff
changeset
|
1023 **email_auditor.py** |
|
b1a29edd6214
added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
2180
diff
changeset
|
1024 If a file added to an issue is of type message/rfc822, we tack on the |
|
b1a29edd6214
added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
2180
diff
changeset
|
1025 extension .eml. |
|
b1a29edd6214
added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
2180
diff
changeset
|
1026 The reason for this is that Microsoft Internet Explorer will not open |
|
b1a29edd6214
added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
2180
diff
changeset
|
1027 things with a .eml attachment, as they deem it 'unsafe'. Worse yet, |
|
b1a29edd6214
added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
2180
diff
changeset
|
1028 they'll just give you an incomprehensible error message. For more |
|
b1a29edd6214
added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
2180
diff
changeset
|
1029 information, see the detector code - it has a length explanation. |
| 1091 | 1030 |
|
684
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
673
diff
changeset
|
1031 |
|
2129
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1032 Auditor or Reactor? |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1033 ------------------- |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1034 |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1035 Generally speaking, the following rules should be observed: |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1036 |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1037 **Auditors** |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1038 Are used for `vetoing creation of or changes to items`_. They might |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1039 also make automatic changes to item properties. |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1040 **Reactors** |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1041 Detect changes in the database and react accordingly. They should avoid |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1042 making changes to the database where possible, as this could create |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1043 detector loops. |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1044 |
|
2138
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
1045 |
|
2129
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1046 Vetoing creation of or changes to items |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1047 --------------------------------------- |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1048 |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1049 Auditors may raise the ``Reject`` exception to prevent the creation of |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1050 or changes to items in the database. The mail gateway, for example, will |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1051 not attach files or messages to issues when the creation of those files or |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1052 messages are prevented through the ``Reject`` exception. It'll also not create |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1053 users if that creation is ``Reject``'ed too. |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1054 |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1055 To use, simply add at the top of your auditor:: |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1056 |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1057 from roundup.exceptions import Reject |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1058 |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1059 And then when your rejection criteria have been detected, simply:: |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1060 |
|
5004
494d255043c9
Display errors containing HTML with RejectRaw (issue2550847)
John Kristensen <john@jerrykan.com>
parents:
4975
diff
changeset
|
1061 raise Reject('Description of error') |
|
494d255043c9
Display errors containing HTML with RejectRaw (issue2550847)
John Kristensen <john@jerrykan.com>
parents:
4975
diff
changeset
|
1062 |
|
494d255043c9
Display errors containing HTML with RejectRaw (issue2550847)
John Kristensen <john@jerrykan.com>
parents:
4975
diff
changeset
|
1063 Error messages raised with ``Reject`` automatically have any HTML content |
|
494d255043c9
Display errors containing HTML with RejectRaw (issue2550847)
John Kristensen <john@jerrykan.com>
parents:
4975
diff
changeset
|
1064 escaped before being displayed to the user. To display an error message to the |
|
494d255043c9
Display errors containing HTML with RejectRaw (issue2550847)
John Kristensen <john@jerrykan.com>
parents:
4975
diff
changeset
|
1065 user without performing any HTML escaping the ``RejectRaw`` should be used. All |
|
494d255043c9
Display errors containing HTML with RejectRaw (issue2550847)
John Kristensen <john@jerrykan.com>
parents:
4975
diff
changeset
|
1066 security implications should be carefully considering before using |
|
494d255043c9
Display errors containing HTML with RejectRaw (issue2550847)
John Kristensen <john@jerrykan.com>
parents:
4975
diff
changeset
|
1067 ``RejectRaw``. |
|
2129
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1068 |
|
3fd672293712
add and use Reject exception [SF#700265]
Richard Jones <richard@users.sourceforge.net>
parents:
2122
diff
changeset
|
1069 |
|
2138
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
1070 Generating email from Roundup |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
1071 ----------------------------- |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
1072 |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
1073 The module ``roundup.mailer`` contains most of the nuts-n-bolts required |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
1074 to generate email messages from Roundup. |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
1075 |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
1076 In addition, the ``IssueClass`` methods ``nosymessage()`` and |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
1077 ``send_message()`` are used to generate nosy messages, and may generate |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
1078 messages which only consist of a change note (ie. the message id parameter |
|
3463
da8fe3566f67
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
3429
diff
changeset
|
1079 is not required - this is referred to as a "System Message" because it |
|
da8fe3566f67
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
3429
diff
changeset
|
1080 comes from "the system" and not a user). |
|
2138
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
1081 |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
1082 |
|
4921
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1083 Extensions - adding capabilities to your tracker |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1084 ================================================ |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1085 .. _extensions: |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1086 |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1087 While detectors_ add new behavior by reacting to changes in tracked |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1088 objects, `extensions` add new actions and utilities to Roundup, which |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1089 are mostly used to enhance web interface. |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1090 |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1091 You can create an extension by creating Python file in your tracker |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1092 ``extensions`` directory. All files from this dir are loaded when |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1093 tracker instance is created, at which point it calls ``init(instance)`` |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1094 from each file supplying itself as a first argument. |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1095 |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1096 Note that at this point web interface is not loaded, but extensions still |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1097 can register actions for in tracker instance. This may be fixed in |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1098 Roundup 1.6 by introducing ``init_web(client)`` callback or a more |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1099 flexible extension point mechanism. |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1100 |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1101 |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1102 * ``instance.registerUtil`` is used for adding `templating utilities`_ |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1103 (see `adding a time log to your issues`_ for an example) |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1104 |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1105 * ``instance.registerAction`` is used to add more actions to instance |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1106 and to web interface. See `Defining new web actions`_ for details. |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1107 Generic action can be added by inheriting from ``action.Action`` |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1108 instead of ``cgi.action.Action``. |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
1109 |
|
898
5ffac75a7f2e
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
798
diff
changeset
|
1110 Database Content |
| 1098 | 1111 ================ |
|
898
5ffac75a7f2e
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
798
diff
changeset
|
1112 |
| 3052 | 1113 .. note:: |
|
3754
9f4dd27ae843
documentation cleanup from Luke Ross (patch [SF#1594860])
Richard Jones <richard@users.sourceforge.net>
parents:
3747
diff
changeset
|
1114 If you modify the content of definitional classes, you'll most |
| 3052 | 1115 likely need to edit the tracker `detectors`_ to reflect your changes. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1116 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1117 Customisation of the special "definitional" classes (eg. status, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1118 priority, resolution, ...) may be done either before or after the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1119 tracker is initialised. The actual method of doing so is completely |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1120 different in each case though, so be careful to use the right one. |
|
898
5ffac75a7f2e
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
798
diff
changeset
|
1121 |
|
1089
43ab730ee194
instance -> tracker, node -> item
Richard Jones <richard@users.sourceforge.net>
parents:
1083
diff
changeset
|
1122 **Changing content before tracker initialisation** |
|
3241
78d2f3ce85f6
filename change
Richard Jones <richard@users.sourceforge.net>
parents:
3228
diff
changeset
|
1123 Edit the initial_data.py module in your tracker to alter the items |
|
78d2f3ce85f6
filename change
Richard Jones <richard@users.sourceforge.net>
parents:
3228
diff
changeset
|
1124 created using the ``create( ... )`` methods. |
|
898
5ffac75a7f2e
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
798
diff
changeset
|
1125 |
|
1089
43ab730ee194
instance -> tracker, node -> item
Richard Jones <richard@users.sourceforge.net>
parents:
1083
diff
changeset
|
1126 **Changing content after tracker initialisation** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1127 As the "admin" user, click on the "class list" link in the web |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1128 interface to bring up a list of all database classes. Click on the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1129 name of the class you wish to change the content of. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1130 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1131 You may also use the ``roundup-admin`` interface's create, set and |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1132 retire methods to add, alter or remove items from the classes in |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1133 question. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1134 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1135 See "`adding a new field to the classic schema`_" for an example that |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1136 requires database content changes. |
|
898
5ffac75a7f2e
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
798
diff
changeset
|
1137 |
|
5ffac75a7f2e
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
798
diff
changeset
|
1138 |
|
2003
a291bf753037
maintenance -> admin guide
Richard Jones <richard@users.sourceforge.net>
parents:
1998
diff
changeset
|
1139 Security / Access Controls |
|
a291bf753037
maintenance -> admin guide
Richard Jones <richard@users.sourceforge.net>
parents:
1998
diff
changeset
|
1140 ========================== |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1141 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1142 A set of Permissions is built into the security module by default: |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1143 |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1144 - Create (everything) |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1145 - Edit (everything) |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1146 - View (everything) |
|
4296
72463e22640d
fix some more documentation for the Register permission
Richard Jones <richard@users.sourceforge.net>
parents:
4088
diff
changeset
|
1147 - Register (User class only) |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1148 |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1149 These are assigned to the "Admin" Role by default, and allow a user to do |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1150 anything. Every Class you define in your `tracker schema`_ also gets an |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1151 Create, Edit and View Permission of its own. The web and email interfaces |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1152 also define: |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1153 |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1154 *Email Access* |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1155 If defined, the user may use the email interface. Used by default to deny |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1156 Anonymous users access to the email interface. When granted to the |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1157 Anonymous user, they will be automatically registered by the email |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1158 interface (see also the ``new_email_user_roles`` configuration option). |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1159 *Web Access* |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1160 If defined, the user may use the web interface. All users are able to see |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1161 the login form, regardless of this setting (thus enabling logging in). |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1162 *Web Roles* |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1163 Controls user access to editing the "roles" property of the "user" class. |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1164 TODO: deprecate in favour of a property-based control. |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1165 |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1166 These are hooked into the default Roles: |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1167 |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1168 - Admin (Create, Edit, View and everything; Web Roles) |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1169 - User (Web Access; Email Access) |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1170 - Anonymous (Web Access) |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1171 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1172 And finally, the "admin" user gets the "Admin" Role, and the "anonymous" |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1173 user gets "Anonymous" assigned when the tracker is installed. |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1174 |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1175 For the "User" Role, the "classic" tracker defines: |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1176 |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1177 - Create, Edit and View issue, file, msg, query, keyword |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1178 - View priority, status |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1179 - View user |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1180 - Edit their own user record |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1181 |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1182 And the "Anonymous" Role is defined as: |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1183 |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1184 - Web interface access |
|
4296
72463e22640d
fix some more documentation for the Register permission
Richard Jones <richard@users.sourceforge.net>
parents:
4088
diff
changeset
|
1185 - Register user (for registration) |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1186 - View issue, file, msg, query, keyword, priority, status |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1187 |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1188 Put together, these settings appear in the tracker's ``schema.py`` file:: |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1189 |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1190 # |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1191 # TRACKER SECURITY SETTINGS |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1192 # |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1193 # See the configuration and customisation document for information |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1194 # about security setup. |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1195 |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1196 # |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1197 # REGULAR USERS |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1198 # |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1199 # Give the regular users access to the web and email interface |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1200 db.security.addPermissionToRole('User', 'Web Access') |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1201 db.security.addPermissionToRole('User', 'Email Access') |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1202 |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1203 # Assign the access and edit Permissions for issue, file and message |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1204 # to regular users now |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1205 for cl in 'issue', 'file', 'msg', 'query', 'keyword': |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1206 db.security.addPermissionToRole('User', 'View', cl) |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1207 db.security.addPermissionToRole('User', 'Edit', cl) |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1208 db.security.addPermissionToRole('User', 'Create', cl) |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1209 for cl in 'priority', 'status': |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1210 db.security.addPermissionToRole('User', 'View', cl) |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1211 |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1212 # May users view other user information? Comment these lines out |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1213 # if you don't want them to |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1214 db.security.addPermissionToRole('User', 'View', 'user') |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1215 |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1216 # Users should be able to edit their own details -- this permission |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1217 # is limited to only the situation where the Viewed or Edited item |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1218 # is their own. |
|
5186
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1219 def own_record(db, userid, itemid, **ctx): |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1220 '''Determine whether the userid matches the item being accessed.''' |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1221 return userid == itemid |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1222 p = db.security.addPermission(name='View', klass='user', check=own_record, |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1223 description="User is allowed to view their own user details") |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1224 db.security.addPermissionToRole('User', p) |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1225 p = db.security.addPermission(name='Edit', klass='user', check=own_record, |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1226 description="User is allowed to edit their own user details") |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1227 db.security.addPermissionToRole('User', p) |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1228 |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1229 # |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1230 # ANONYMOUS USER PERMISSIONS |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1231 # |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1232 # Let anonymous users access the web interface. Note that almost all |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1233 # trackers will need this Permission. The only situation where it's not |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1234 # required is in a tracker that uses an HTTP Basic Authenticated front-end. |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1235 db.security.addPermissionToRole('Anonymous', 'Web Access') |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1236 |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1237 # Let anonymous users access the email interface (note that this implies |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1238 # that they will be registered automatically, hence they will need the |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1239 # "Create" user Permission below) |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1240 # This is disabled by default to stop spam from auto-registering users on |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1241 # public trackers. |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1242 #db.security.addPermissionToRole('Anonymous', 'Email Access') |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1243 |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1244 # Assign the appropriate permissions to the anonymous user's Anonymous |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1245 # Role. Choices here are: |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1246 # - Allow anonymous users to register |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1247 db.security.addPermissionToRole('Anonymous', 'Create', 'user') |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1248 |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1249 # Allow anonymous users access to view issues (and the related, linked |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1250 # information) |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1251 for cl in 'issue', 'file', 'msg', 'keyword', 'priority', 'status': |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1252 db.security.addPermissionToRole('Anonymous', 'View', cl) |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1253 |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1254 # [OPTIONAL] |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1255 # Allow anonymous users access to create or edit "issue" items (and the |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1256 # related file and message items) |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1257 #for cl in 'issue', 'file', 'msg': |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1258 # db.security.addPermissionToRole('Anonymous', 'Create', cl) |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1259 # db.security.addPermissionToRole('Anonymous', 'Edit', cl) |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1260 |
|
5897
d0aebd4aec72
Provide a method for identifying invalid properties in permissions
John Rouillard <rouilj@ieee.org>
parents:
5891
diff
changeset
|
1261 You can use ``roundup-admin security`` to verify the permissions |
|
d0aebd4aec72
Provide a method for identifying invalid properties in permissions
John Rouillard <rouilj@ieee.org>
parents:
5891
diff
changeset
|
1262 defined in the schema. It also verifies that properties specified in |
|
d0aebd4aec72
Provide a method for identifying invalid properties in permissions
John Rouillard <rouilj@ieee.org>
parents:
5891
diff
changeset
|
1263 permissions are valid for the class. This helps detect typos that can |
|
d0aebd4aec72
Provide a method for identifying invalid properties in permissions
John Rouillard <rouilj@ieee.org>
parents:
5891
diff
changeset
|
1264 cause baffling permission issues. |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1265 |
|
3117
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1266 Automatic Permission Checks |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1267 --------------------------- |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1268 |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1269 Permissions are automatically checked when information is rendered |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1270 through the web. This includes: |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1271 |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1272 1. View checks for properties when being rendered via the ``plain()`` or |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1273 similar methods. If the check fails, the text "[hidden]" will be |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1274 displayed. |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1275 2. Edit checks for properties when the edit field is being rendered via |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1276 the ``field()`` or similar methods. If the check fails, the property |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1277 will be rendered via the ``plain()`` method (see point 1. for subsequent |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1278 checking performed) |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1279 3. View checks are performed in index pages for each item being displayed |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1280 such that if the user does not have permission, the row is not rendered. |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1281 4. View checks are performed at the top of item pages for the Item being |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1282 displayed. If the user does not have permission, the text "You are not |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1283 allowed to view this page." will be displayed. |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1284 5. View checks are performed at the top of index pages for the Class being |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1285 displayed. If the user does not have permission, the text "You are not |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1286 allowed to view this page." will be displayed. |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1287 |
|
460eb0209a9e
Permissions improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
3097
diff
changeset
|
1288 |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1289 New User Roles |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1290 -------------- |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1291 |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1292 New users are assigned the Roles defined in the config file as: |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1293 |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1294 - NEW_WEB_USER_ROLES |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1295 - NEW_EMAIL_USER_ROLES |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1296 |
|
3276
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1297 The `users may only edit their issues`_ example shows customisation of |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1298 these parameters. |
|
3124e578db02
Email fixes:
Richard Jones <richard@users.sourceforge.net>
parents:
3260
diff
changeset
|
1299 |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1300 |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1301 Changing Access Controls |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1302 ------------------------ |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1303 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1304 You may alter the configuration variables to change the Role that new |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1305 web or email users get, for example to not give them access to the web |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1306 interface if they register through email. |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1307 |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1308 You may use the ``roundup-admin`` "``security``" command to display the |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1309 current Role and Permission configuration in your tracker. |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1310 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1311 |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1312 Adding a new Permission |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1313 ~~~~~~~~~~~~~~~~~~~~~~~ |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1314 |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1315 When adding a new Permission, you will need to: |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1316 |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1317 1. add it to your tracker's ``schema.py`` so it is created, using |
|
2076
2a4309450202
security fixes and doc updates
Richard Jones <richard@users.sourceforge.net>
parents:
2069
diff
changeset
|
1318 ``security.addPermission``, for example:: |
|
2a4309450202
security fixes and doc updates
Richard Jones <richard@users.sourceforge.net>
parents:
2069
diff
changeset
|
1319 |
|
5196
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1320 db.security.addPermission(name="View", klass='frozzle', |
|
2076
2a4309450202
security fixes and doc updates
Richard Jones <richard@users.sourceforge.net>
parents:
2069
diff
changeset
|
1321 description="User is allowed to access frozzles") |
|
2a4309450202
security fixes and doc updates
Richard Jones <richard@users.sourceforge.net>
parents:
2069
diff
changeset
|
1322 |
|
2a4309450202
security fixes and doc updates
Richard Jones <richard@users.sourceforge.net>
parents:
2069
diff
changeset
|
1323 will set up a new "View" permission on the Class "frozzle". |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1324 2. enable it for the Roles that should have it (verify with |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1325 "``roundup-admin security``") |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1326 3. add it to the relevant HTML interface templates |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1327 4. add it to the appropriate xxxPermission methods on in your tracker |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1328 interfaces module |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1329 |
|
5196
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1330 The ``addPermission`` method takes a few optional parameters: |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1331 |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1332 **properties** |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1333 A sequence of property names that are the only properties to apply the |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1334 new Permission to (eg. ``... klass='user', properties=('name', |
|
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1335 'email') ...``) |
|
5196
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1336 **props_only** |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1337 A boolean value (set to false by default) that is a new feature |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1338 in roundup 1.6. |
| 5206 | 1339 A permission defined using: |
| 1340 | |
|
5196
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1341 ``properties=('list', 'of', 'property', 'names')`` |
| 5206 | 1342 |
|
5196
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1343 is used to determine access for things other than just those |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1344 properties. For example a check for View permission on the issue |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1345 class or an issue item can use any View permission for the issue |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1346 class even if that permission has a property list. This can be |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1347 confusing and surprising as you would think that a permission |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1348 including properties would be used only for determining the |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1349 access permission for those properties. |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1350 |
|
5897
d0aebd4aec72
Provide a method for identifying invalid properties in permissions
John Rouillard <rouilj@ieee.org>
parents:
5891
diff
changeset
|
1351 ``roundup-admin security`` will report invalid properties for the |
|
d0aebd4aec72
Provide a method for identifying invalid properties in permissions
John Rouillard <rouilj@ieee.org>
parents:
5891
diff
changeset
|
1352 class. For example a permission with an invalid summary property is |
|
d0aebd4aec72
Provide a method for identifying invalid properties in permissions
John Rouillard <rouilj@ieee.org>
parents:
5891
diff
changeset
|
1353 presented as:: |
|
d0aebd4aec72
Provide a method for identifying invalid properties in permissions
John Rouillard <rouilj@ieee.org>
parents:
5891
diff
changeset
|
1354 |
|
d0aebd4aec72
Provide a method for identifying invalid properties in permissions
John Rouillard <rouilj@ieee.org>
parents:
5891
diff
changeset
|
1355 Allowed to see content of object regardless of spam status |
|
d0aebd4aec72
Provide a method for identifying invalid properties in permissions
John Rouillard <rouilj@ieee.org>
parents:
5891
diff
changeset
|
1356 (View for "file": ('content', 'summary') only) |
|
d0aebd4aec72
Provide a method for identifying invalid properties in permissions
John Rouillard <rouilj@ieee.org>
parents:
5891
diff
changeset
|
1357 |
|
d0aebd4aec72
Provide a method for identifying invalid properties in permissions
John Rouillard <rouilj@ieee.org>
parents:
5891
diff
changeset
|
1358 **Invalid properties for file: ['summary'] |
|
d0aebd4aec72
Provide a method for identifying invalid properties in permissions
John Rouillard <rouilj@ieee.org>
parents:
5891
diff
changeset
|
1359 |
|
5196
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1360 Setting ``props_only=True`` will make the permission valid only for |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1361 those properties. |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1362 |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1363 If you use a lot of permissions with property checks, it can be |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1364 difficult to change all of them. Calling the function: |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1365 |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1366 db.security.set_props_only_default(True) |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1367 |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1368 at the top of ``schema.py`` will make every permission creation |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1369 behave as though props_only was set to True. It is expected that the |
|
e0732fd6a6c7
Implement props_only feature for permissions.
rouilj@uland
parents:
5186
diff
changeset
|
1370 default of True will become the default in a future Roundup release. |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
1371 **check** |
|
5186
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1372 A function to be executed which returns boolean determining whether |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1373 the Permission is allowed. If it returns True, the permission is |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1374 allowed, if it returns False the permission is denied. The function |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1375 can have one of two signatures:: |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1376 |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1377 check(db, userid, itemid) |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1378 |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1379 or:: |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1380 |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1381 check(db, userid, itemid, **ctx) |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1382 |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1383 where ``db`` is a handle on the open database, ``userid`` is |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1384 the user attempting access and ``itemid`` is the specific item being |
|
5186
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1385 accessed. If the second form is used the ``ctx`` dictionary is |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1386 defined with the following values:: |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1387 |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1388 ctx['property'] the name of the property being checked or None if |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1389 it's a class check. |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1390 |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1391 ctx['classname'] the name of the class that is being checked |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1392 (issue, query ....). |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1393 |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1394 ctx['permission'] the name of the permission (e.g. View, Edit...). |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1395 |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1396 The second form is preferred as it makes it easier to implement more |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1397 complex permission schemes. An example of the use of ``ctx`` can be |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1398 found in the ``upgrading.txt`` or `upgrading.html`_ document. |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1399 |
|
36630a062fb5
Check in enhanced form for check command used by addPermission.
John Rouillard <rouilj@ieee.org>
parents:
5185
diff
changeset
|
1400 .. _`upgrading.html`: upgrading.html |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1401 |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1402 Example Scenarios |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1403 ~~~~~~~~~~~~~~~~~ |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1404 |
|
3126
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
1405 See the `examples`_ section for longer examples of customisation. |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
1406 |
|
3404
7d48c5b1e8f2
merge from maint-0-8
Richard Jones <richard@users.sourceforge.net>
parents:
3363
diff
changeset
|
1407 **anonymous access through the e-mail gateway** |
|
7d48c5b1e8f2
merge from maint-0-8
Richard Jones <richard@users.sourceforge.net>
parents:
3363
diff
changeset
|
1408 Give the "anonymous" user the "Email Access", ("Edit", "issue") and |
|
7d48c5b1e8f2
merge from maint-0-8
Richard Jones <richard@users.sourceforge.net>
parents:
3363
diff
changeset
|
1409 ("Create", "msg") Permissions but do not not give them the ("Create", |
|
7d48c5b1e8f2
merge from maint-0-8
Richard Jones <richard@users.sourceforge.net>
parents:
3363
diff
changeset
|
1410 "user") Permission. This means that when an unknown user sends email |
|
7d48c5b1e8f2
merge from maint-0-8
Richard Jones <richard@users.sourceforge.net>
parents:
3363
diff
changeset
|
1411 into the tracker, they're automatically logged in as "anonymous". |
|
7d48c5b1e8f2
merge from maint-0-8
Richard Jones <richard@users.sourceforge.net>
parents:
3363
diff
changeset
|
1412 Since they don't have the ("Create", "user") Permission, they won't |
|
7d48c5b1e8f2
merge from maint-0-8
Richard Jones <richard@users.sourceforge.net>
parents:
3363
diff
changeset
|
1413 be automatically registered, but since "anonymous" has permission to |
|
7d48c5b1e8f2
merge from maint-0-8
Richard Jones <richard@users.sourceforge.net>
parents:
3363
diff
changeset
|
1414 use the gateway, they'll still be able to submit issues. Note that |
|
7d48c5b1e8f2
merge from maint-0-8
Richard Jones <richard@users.sourceforge.net>
parents:
3363
diff
changeset
|
1415 the Sender information - their email address - will not be available |
|
7d48c5b1e8f2
merge from maint-0-8
Richard Jones <richard@users.sourceforge.net>
parents:
3363
diff
changeset
|
1416 - they're *anonymous*. |
|
7d48c5b1e8f2
merge from maint-0-8
Richard Jones <richard@users.sourceforge.net>
parents:
3363
diff
changeset
|
1417 |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1418 **automatic registration of users in the e-mail gateway** |
|
4296
72463e22640d
fix some more documentation for the Register permission
Richard Jones <richard@users.sourceforge.net>
parents:
4088
diff
changeset
|
1419 By giving the "anonymous" user the ("Register", "user") Permission, any |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1420 unidentified user will automatically be registered with the tracker |
|
3404
7d48c5b1e8f2
merge from maint-0-8
Richard Jones <richard@users.sourceforge.net>
parents:
3363
diff
changeset
|
1421 (with no password, so they won't be able to log in through |
| 3744 | 1422 the web until an admin sets their password). By default new Roundup |
| 1423 trackers don't allow this as it opens them up to spam. It may be enabled | |
| 1424 by uncommenting the appropriate addPermissionToRole in your tracker's | |
| 1425 ``schema.py`` file. The new user is given the Roles list defined in the | |
|
3747
c3bba2c81a6f
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
3744
diff
changeset
|
1426 "new_email_user_roles" config variable. |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1427 |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1428 **only developers may be assigned issues** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1429 Create a new Permission called "Fixer" for the "issue" class. Create a |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1430 new Role "Developer" which has that Permission, and assign that to the |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1431 appropriate users. Filter the list of users available in the assignedto |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1432 list to include only those users. Enforce the Permission with an |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1433 auditor. See the example |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1434 `restricting the list of users that are assignable to a task`_. |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1435 |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1436 **only managers may sign off issues as complete** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1437 Create a new Permission called "Closer" for the "issue" class. Create a |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1438 new Role "Manager" which has that Permission, and assign that to the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1439 appropriate users. In your web interface, only display the "resolved" |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1440 issue state option when the user has the "Closer" Permissions. Enforce |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1441 the Permission with an auditor. This is very similar to the previous |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1442 example, except that the web interface check would look like:: |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1443 |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1444 <option tal:condition="python:request.user.hasPermission('Closer')" |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1445 value="resolved">Resolved</option> |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1446 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1447 **don't give web access to users who register through email** |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1448 Create a new Role called "Email User" which has all the Permissions of |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1449 the normal "User" Role minus the "Web Access" Permission. This will |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1450 allow users to send in emails to the tracker, but not access the web |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1451 interface. |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1452 |
|
1317
28ae91aae74f
clarifications
Richard Jones <richard@users.sourceforge.net>
parents:
1304
diff
changeset
|
1453 **let some users edit the details of all users** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1454 Create a new Role called "User Admin" which has the Permission for |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1455 editing users:: |
|
1317
28ae91aae74f
clarifications
Richard Jones <richard@users.sourceforge.net>
parents:
1304
diff
changeset
|
1456 |
|
28ae91aae74f
clarifications
Richard Jones <richard@users.sourceforge.net>
parents:
1304
diff
changeset
|
1457 db.security.addRole(name='User Admin', description='Managing users') |
|
28ae91aae74f
clarifications
Richard Jones <richard@users.sourceforge.net>
parents:
1304
diff
changeset
|
1458 p = db.security.getPermission('Edit', 'user') |
|
28ae91aae74f
clarifications
Richard Jones <richard@users.sourceforge.net>
parents:
1304
diff
changeset
|
1459 db.security.addPermissionToRole('User Admin', p) |
|
28ae91aae74f
clarifications
Richard Jones <richard@users.sourceforge.net>
parents:
1304
diff
changeset
|
1460 |
|
28ae91aae74f
clarifications
Richard Jones <richard@users.sourceforge.net>
parents:
1304
diff
changeset
|
1461 and assign the Role to the users who need the permission. |
|
28ae91aae74f
clarifications
Richard Jones <richard@users.sourceforge.net>
parents:
1304
diff
changeset
|
1462 |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
1463 |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
1464 Web Interface |
| 1098 | 1465 ============= |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
1466 |
| 1125 | 1467 .. contents:: |
| 1468 :local: | |
| 1469 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1470 The web interface is provided by the ``roundup.cgi.client`` module and |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1471 is used by ``roundup.cgi``, ``roundup-server`` and ``ZRoundup`` |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1472 (``ZRoundup`` is broken, until further notice). In all cases, we |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1473 determine which tracker is being accessed (the first part of the URL |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1474 path inside the scope of the CGI handler) and pass control on to the |
| 2915 | 1475 ``roundup.cgi.client.Client`` class - which handles the rest of the |
| 1476 access through its ``main()`` method. This means that you can do pretty | |
| 1477 much anything you want as a web interface to your tracker. | |
| 1478 | |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1479 |
| 2910 | 1480 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1481 Repercussions of changing the tracker schema |
| 1098 | 1482 --------------------------------------------- |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1483 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1484 If you choose to change the `tracker schema`_ you will need to ensure |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1485 the web interface knows about it: |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1486 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1487 1. Index, item and search pages for the relevant classes may need to |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1488 have properties added or removed, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1489 2. The "page" template may require links to be changed, as might the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1490 "home" page's content arguments. |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1491 |
| 2910 | 1492 |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
1493 How requests are processed |
| 1098 | 1494 -------------------------- |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
1495 |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1496 The basic processing of a web request proceeds as follows: |
|
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1497 |
|
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1498 1. figure out who we are, defaulting to the "anonymous" user |
|
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1499 2. figure out what the request is for - we call this the "context" |
|
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1500 3. handle any requested action (item edit, search, ...) |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1501 4. render the template requested by the context, resulting in HTML |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1502 output |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1503 |
|
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1504 In some situations, exceptions occur: |
|
1070
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
1505 |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1506 - HTTP Redirect (generally raised by an action) |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1507 - SendFile (generally raised by ``determine_context``) |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1508 here we serve up a FileClass "content" property |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1509 - SendStaticFile (generally raised by ``determine_context``) |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1510 here we serve up a file from the tracker "html" directory |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1511 - Unauthorised (generally raised by an action) |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1512 here the action is cancelled, the request is rendered and an error |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1513 message is displayed indicating that permission was not granted for |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1514 the action to take place |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1515 - NotFound (raised wherever it needs to be) |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1516 this exception percolates up to the CGI interface that called the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1517 client |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1518 |
| 2910 | 1519 |
|
4725
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1520 Roundup URL design |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1521 ------------------ |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1522 |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1523 Each tracker has several hardcoded URLs. These three are equivalent and |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1524 lead to the main tracker page: |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1525 |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1526 1. ``/`` |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1527 2. ``/index`` |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1528 3. ``/home`` |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1529 |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1530 The following prefix is used to access static resources: |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1531 |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1532 4. ``/@@file/`` |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1533 |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1534 All other URLs depend on the classes configured in Roundup database. |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1535 Each class receives two URLs - one for the class itself and another |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1536 for specific items of that class. Example for class URL: |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1537 |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1538 5. ``/issue`` |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1539 |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1540 This is usually used to show listings of class items. The URL for |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1541 for specific object of issue class with id 1 will look like: |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1542 |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1543 6. ``/issue1`` |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1544 |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1545 |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
1546 Determining web context |
| 1098 | 1547 ----------------------- |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
1548 |
|
4725
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1549 To determine the "context" of a request (what request is for), we look at |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1550 the URL path after the tracker root and at ``@template`` request |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1551 parameter. Typical URL paths look like: |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1552 |
|
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1553 1. ``/tracker/issue`` |
|
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1554 2. ``/tracker/issue1`` |
|
2589
809758599cdc
oops, double-@
Richard Jones <richard@users.sourceforge.net>
parents:
2588
diff
changeset
|
1555 3. ``/tracker/@@file/style.css`` |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1556 4. ``/cgi-bin/roundup.cgi/tracker/file1`` |
|
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1557 5. ``/cgi-bin/roundup.cgi/tracker/file1/kitten.png`` |
|
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1558 |
|
4725
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1559 where tracker root is ``/tracker/`` or ``/cgi-bin/roundup.cgi/tracker/`` |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1560 We're looking at "issue", "issue1", "@@file/style.css", "file1" and |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1561 "file1/kitten.png" in the cases above. |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1562 |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1563 a. with is no path we are in the "home" context. See `the "home" |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1564 context`_ below for details. "index" or "home" paths may also be used |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1565 to switch into "home" context. |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1566 b. for paths starting with "@@file" the additional path entry ("style.css" |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1567 in the example above) specifies the static file to be served |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1568 from the tracker TEMPLATES directory (or STATIC_FILES, if configured). |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1569 This is usually the tracker's "html" directory. Internally this works |
|
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1570 by raising SendStaticFile exception. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1571 c. if there is something in the path (as in example 1, "issue"), it |
|
4725
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1572 identifies the tracker class to display. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1573 d. if the path is an item designator (as in examples 2 and 4, "issue1" |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1574 and "file1"), then we're to display a specific item. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1575 e. if the path starts with an item designator and is longer than one |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1576 entry (as in example 5, "file1/kitten.png"), then we're assumed to be |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1577 handling an item of a ``FileClass``, and the extra path information |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1578 gives the filename that the client is going to label the download |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1579 with (i.e. "file1/kitten.png" is nicer to download than "file1"). |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1580 This raises a ``SendFile`` exception. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1581 |
|
5154
f608eeecf638
issue2550891: Allow subdir in template value. Anthony (antmail)
John Rouillard <rouilj@ieee.org>
parents:
5135
diff
changeset
|
1582 Neither b. or e. use templates and stop before the template is |
|
f608eeecf638
issue2550891: Allow subdir in template value. Anthony (antmail)
John Rouillard <rouilj@ieee.org>
parents:
5135
diff
changeset
|
1583 determined. For other contexts the template used is specified by the |
|
4725
9b9d9cb9734a
Document Roundup URL design
anatoly techtonik <techtonik@gmail.com>
parents:
4723
diff
changeset
|
1584 ``@template`` variable, which defaults to: |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1585 |
|
5154
f608eeecf638
issue2550891: Allow subdir in template value. Anthony (antmail)
John Rouillard <rouilj@ieee.org>
parents:
5135
diff
changeset
|
1586 - only classname supplied: "index" |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1587 - full item designator supplied: "item" |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
1588 |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
1589 |
|
2227
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1590 The "home" Context |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1591 ------------------ |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1592 |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1593 The "home" context is special because it allows you to add templated |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1594 pages to your tracker that don't rely on a class or item (ie. an issues |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1595 list or specific issue). |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1596 |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1597 Let's say you wish to add frames to control the layout of your tracker's |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1598 interface. You'd probably have: |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1599 |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1600 - A top-level frameset page. This page probably wouldn't be templated, so |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1601 it could be served as a static file (see `serving static content`_) |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1602 - A sidebar frame that is templated. Let's call this page |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1603 "home.navigation.html" in your tracker's "html" directory. To load that |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1604 page up, you use the URL: |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1605 |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1606 <tracker url>/home?@template=navigation |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1607 |
|
15c20983fd13
more info about the "home" context
Richard Jones <richard@users.sourceforge.net>
parents:
2209
diff
changeset
|
1608 |
|
2134
00dfd8b50773
doc clarification
Richard Jones <richard@users.sourceforge.net>
parents:
2129
diff
changeset
|
1609 Serving static content |
|
00dfd8b50773
doc clarification
Richard Jones <richard@users.sourceforge.net>
parents:
2129
diff
changeset
|
1610 ---------------------- |
|
00dfd8b50773
doc clarification
Richard Jones <richard@users.sourceforge.net>
parents:
2129
diff
changeset
|
1611 |
|
00dfd8b50773
doc clarification
Richard Jones <richard@users.sourceforge.net>
parents:
2129
diff
changeset
|
1612 See the previous section `determining web context`_ where it describes |
|
2589
809758599cdc
oops, double-@
Richard Jones <richard@users.sourceforge.net>
parents:
2588
diff
changeset
|
1613 ``@@file`` paths. |
|
2134
00dfd8b50773
doc clarification
Richard Jones <richard@users.sourceforge.net>
parents:
2129
diff
changeset
|
1614 |
|
00dfd8b50773
doc clarification
Richard Jones <richard@users.sourceforge.net>
parents:
2129
diff
changeset
|
1615 |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
1616 Performing actions in web requests |
| 1098 | 1617 ---------------------------------- |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
1618 |
|
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
1619 When a user requests a web page, they may optionally also request for an |
|
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
1620 action to take place. As described in `how requests are processed`_, the |
|
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
1621 action is performed before the requested page is generated. Actions are |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1622 triggered by using a ``@action`` CGI variable, where the value is one |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1623 of: |
|
1058
a55ef5a98fd3
more docco... and we need to check for web access Permission!
Richard Jones <richard@users.sourceforge.net>
parents:
1057
diff
changeset
|
1624 |
| 1125 | 1625 **login** |
|
1058
a55ef5a98fd3
more docco... and we need to check for web access Permission!
Richard Jones <richard@users.sourceforge.net>
parents:
1057
diff
changeset
|
1626 Attempt to log a user in. |
|
1278
0c0494deb09f
doc for the retire action
Richard Jones <richard@users.sourceforge.net>
parents:
1270
diff
changeset
|
1627 |
| 1125 | 1628 **logout** |
|
1058
a55ef5a98fd3
more docco... and we need to check for web access Permission!
Richard Jones <richard@users.sourceforge.net>
parents:
1057
diff
changeset
|
1629 Log the user out - make them "anonymous". |
|
1278
0c0494deb09f
doc for the retire action
Richard Jones <richard@users.sourceforge.net>
parents:
1270
diff
changeset
|
1630 |
| 1125 | 1631 **register** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1632 Attempt to create a new user based on the contents of the form and then |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1633 log them in. |
|
1278
0c0494deb09f
doc for the retire action
Richard Jones <richard@users.sourceforge.net>
parents:
1270
diff
changeset
|
1634 |
| 1125 | 1635 **edit** |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1636 Perform an edit of an item in the database. There are some `special form |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1637 variables`_ you may use. |
|
1058
a55ef5a98fd3
more docco... and we need to check for web access Permission!
Richard Jones <richard@users.sourceforge.net>
parents:
1057
diff
changeset
|
1638 |
| 1125 | 1639 **new** |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1640 Add a new item to the database. You may use the same `special form |
|
5158
63294ed25e84
issue1842687: Keywords: After creating, stay in "Create New" mode.
John Rouillard <rouilj@ieee.org>
parents:
5156
diff
changeset
|
1641 variables`_ as in the "edit" action. Also you can set the |
|
63294ed25e84
issue1842687: Keywords: After creating, stay in "Create New" mode.
John Rouillard <rouilj@ieee.org>
parents:
5156
diff
changeset
|
1642 ``__redirect_to`` form variable to the URL that should be displayed after |
|
63294ed25e84
issue1842687: Keywords: After creating, stay in "Create New" mode.
John Rouillard <rouilj@ieee.org>
parents:
5156
diff
changeset
|
1643 the new item is created. This is useful if you want to create another |
|
63294ed25e84
issue1842687: Keywords: After creating, stay in "Create New" mode.
John Rouillard <rouilj@ieee.org>
parents:
5156
diff
changeset
|
1644 item rather than edit the newly created item. |
|
1058
a55ef5a98fd3
more docco... and we need to check for web access Permission!
Richard Jones <richard@users.sourceforge.net>
parents:
1057
diff
changeset
|
1645 |
|
1278
0c0494deb09f
doc for the retire action
Richard Jones <richard@users.sourceforge.net>
parents:
1270
diff
changeset
|
1646 **retire** |
|
0c0494deb09f
doc for the retire action
Richard Jones <richard@users.sourceforge.net>
parents:
1270
diff
changeset
|
1647 Retire the item in the database. |
|
0c0494deb09f
doc for the retire action
Richard Jones <richard@users.sourceforge.net>
parents:
1270
diff
changeset
|
1648 |
| 1125 | 1649 **editCSV** |
|
1058
a55ef5a98fd3
more docco... and we need to check for web access Permission!
Richard Jones <richard@users.sourceforge.net>
parents:
1057
diff
changeset
|
1650 Performs an edit of all of a class' items in one go. See also the |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1651 *class*.csv templating method which generates the CSV data to be |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1652 edited, and the ``'_generic.index'`` template which uses both of these |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1653 features. |
|
1058
a55ef5a98fd3
more docco... and we need to check for web access Permission!
Richard Jones <richard@users.sourceforge.net>
parents:
1057
diff
changeset
|
1654 |
| 1125 | 1655 **search** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1656 Mangle some of the form variables: |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1657 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1658 - Set the form ":filter" variable based on the values of the filter |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1659 variables - if they're set to anything other than "dontcare" then add |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1660 them to :filter. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1661 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1662 - Also handle the ":queryname" variable and save off the query to the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1663 user's query list. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1664 |
|
2017
31d920b31642
Update customization examples too, expand upgrade notice a bit.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2016
diff
changeset
|
1665 Each of the actions is implemented by a corresponding ``*XxxAction*`` (where |
|
31d920b31642
Update customization examples too, expand upgrade notice a bit.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2016
diff
changeset
|
1666 "Xxx" is the name of the action) class in the ``roundup.cgi.actions`` module. |
| 2915 | 1667 These classes are registered with ``roundup.cgi.client.Client``. If you need |
| 1668 to define new actions, you may add them there (see `defining new | |
|
2017
31d920b31642
Update customization examples too, expand upgrade notice a bit.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2016
diff
changeset
|
1669 web actions`_). |
|
31d920b31642
Update customization examples too, expand upgrade notice a bit.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2016
diff
changeset
|
1670 |
|
31d920b31642
Update customization examples too, expand upgrade notice a bit.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2016
diff
changeset
|
1671 Each action class also has a ``*permission*`` method which determines whether |
|
31d920b31642
Update customization examples too, expand upgrade notice a bit.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2016
diff
changeset
|
1672 the action is permissible given the current user. The base permission checks |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
1673 for each action are: |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1674 |
| 1125 | 1675 **login** |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
1676 Determine whether the user has the "Web Access" Permission. |
| 1125 | 1677 **logout** |
|
1058
a55ef5a98fd3
more docco... and we need to check for web access Permission!
Richard Jones <richard@users.sourceforge.net>
parents:
1057
diff
changeset
|
1678 No permission checks are made. |
| 1125 | 1679 **register** |
|
3404
7d48c5b1e8f2
merge from maint-0-8
Richard Jones <richard@users.sourceforge.net>
parents:
3363
diff
changeset
|
1680 Determine whether the user has the ("Create", "user") Permission. |
| 1125 | 1681 **edit** |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1682 Determine whether the user has permission to edit this item. If we're |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1683 editing the "user" class, users are allowed to edit their own details - |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1684 unless they try to edit the "roles" property, which requires the |
|
1058
a55ef5a98fd3
more docco... and we need to check for web access Permission!
Richard Jones <richard@users.sourceforge.net>
parents:
1057
diff
changeset
|
1685 special Permission "Web Roles". |
| 1125 | 1686 **new** |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1687 Determine whether the user has permission to create this item. No |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1688 additional property checks are made. Additionally, new user items may |
|
3404
7d48c5b1e8f2
merge from maint-0-8
Richard Jones <richard@users.sourceforge.net>
parents:
3363
diff
changeset
|
1689 be created if the user has the ("Create", "user") Permission. |
| 1125 | 1690 **editCSV** |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
1691 Determine whether the user has permission to edit this class. |
| 1125 | 1692 **search** |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
1693 Determine whether the user has permission to view this class. |
|
1058
a55ef5a98fd3
more docco... and we need to check for web access Permission!
Richard Jones <richard@users.sourceforge.net>
parents:
1057
diff
changeset
|
1694 |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1695 Protecting users from web application attacks |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1696 --------------------------------------------- |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1697 |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1698 There is a class of attacks known as Cross Site Request Forgeries |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1699 (CSRF). Malicious code running in the browser can making a |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1700 request to roundup while you are logged into roundup. The |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1701 malicious code piggy backs on your existing roundup session to |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1702 make changes without your knowledge. Roundup 1.6 has support for |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1703 defending against this by analyzing the |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1704 |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1705 * Referer, |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1706 * Origin, and |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1707 * Host or |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1708 * X-Forwarded-Host |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1709 |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1710 HTTP headers. It compares the headers to the value of the web setting |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1711 in the [tracker] section of the tracker's ``config.ini``. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1712 |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1713 Also a per form token (also called a nonce) can be enabled for |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1714 the tracker using the ``csrf_enforce_token`` option in |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1715 config.ini. When enabled, roundup will validate a hidden form |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1716 field called ``@csrf``. If the validation fails (or the token |
| 5361 | 1717 is used more than once) the request is rejected. The ``@csrf`` |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1718 input field is added automatically by calling the ``submit`` |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1719 function/path. It can also be added manually by calling |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1720 anti_csrf_nonce() directly. For example: |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1721 |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1722 <input name="@csrf" type="hidden" |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1723 tal:attributes="value python:utils.anti_csrf_nonce(lifetime=10)"> |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1724 |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1725 By default a nonce lifetime is 2 weeks. However the lifetime (in |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1726 minutes) can be set by passing a lifetime argument as shown |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1727 above. The example above makes the nonce lifetime 10 minutes. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1728 |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1729 Search for @csrf in this document for more examples. There are |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1730 more examples and information in ``upgrading.txt``. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1731 |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1732 The token protects you because malicious code supplied by another |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1733 site is unable to obtain the token. Thus many attempts they make |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1734 to submit a request are rejected. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1735 |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1736 The protection on the xmlrpc interface is untested, but is based |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1737 on a valid header check against the roundup url and the presence |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1738 of the ``X-REQUESTED-WITH`` header. Work to improve this is a |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1739 future project after the 1.6 release. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1740 |
| 5361 | 1741 The enforcement levels can be modified in ``config.ini``. Refer to |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
1742 that file for details. |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
1743 |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1744 Special form variables |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1745 ---------------------- |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1746 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1747 Item properties and their values are edited with html FORM |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1748 variables and their values. You can: |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1749 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1750 - Change the value of some property of the current item. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1751 - Create a new item of any class, and edit the new item's |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1752 properties, |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1753 - Attach newly created items to a multilink property of the |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1754 current item. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1755 - Remove items from a multilink property of the current item. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1756 - Specify that some properties are required for the edit |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1757 operation to be successful. |
|
5158
63294ed25e84
issue1842687: Keywords: After creating, stay in "Create New" mode.
John Rouillard <rouilj@ieee.org>
parents:
5156
diff
changeset
|
1758 - Redirect to a different page after creating a new item (new action |
|
63294ed25e84
issue1842687: Keywords: After creating, stay in "Create New" mode.
John Rouillard <rouilj@ieee.org>
parents:
5156
diff
changeset
|
1759 only, not edit action). Usually you end up on the page for the |
|
63294ed25e84
issue1842687: Keywords: After creating, stay in "Create New" mode.
John Rouillard <rouilj@ieee.org>
parents:
5156
diff
changeset
|
1760 created item. |
|
3429
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1761 - Set up user interface locale. |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1762 |
| 3293 | 1763 These operations will only take place if the form action (the |
| 1764 ``@action`` variable) is "edit" or "new". | |
| 1765 | |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1766 In the following, <bracketed> values are variable, "@" may be |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1767 either ":" or "@", and other text "required" is fixed. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1768 |
|
3429
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1769 Two special form variables are used to specify user language preferences: |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1770 |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1771 ``@language`` |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1772 value may be locale name or ``none``. If this variable is set to |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1773 locale name, web interface language is changed to given value |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1774 (provided that appropriate translation is available), the value |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1775 is stored in the browser cookie and will be used for all following |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1776 requests. If value is ``none`` the cookie is removed and the |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1777 language is changed to the tracker default, set up in the tracker |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1778 configuration or OS environment. |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1779 |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1780 ``@charset`` |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1781 value may be character set name or ``none``. Character set name |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1782 is stored in the browser cookie and sets output encoding for all |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1783 HTML pages generated by Roundup. If value is ``none`` the cookie |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1784 is removed and HTML output is reset to Roundup internal encoding |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1785 (UTF-8). |
|
963003d2ffdd
add @language and @charset to "Special form variables" section
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1786 |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1787 Most properties are specified as form variables: |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1788 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1789 ``<propname>`` |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1790 property on the current context item |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1791 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1792 ``<designator>"@"<propname>`` |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1793 property on the indicated item (for editing related information) |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1794 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1795 Designators name a specific item of a class. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1796 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1797 ``<classname><N>`` |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1798 Name an existing item of class <classname>. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1799 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1800 ``<classname>"-"<N>`` |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1801 Name the <N>th new item of class <classname>. If the form |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1802 submission is successful, a new item of <classname> is |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1803 created. Within the submitted form, a particular |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1804 designator of this form always refers to the same new |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1805 item. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1806 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1807 Once we have determined the "propname", we look at it to see |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1808 if it's special: |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1809 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1810 ``@required`` |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1811 The associated form value is a comma-separated list of |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1812 property names that must be specified when the form is |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1813 submitted for the edit operation to succeed. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1814 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1815 When the <designator> is missing, the properties are |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1816 for the current context item. When <designator> is |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1817 present, they are for the item specified by |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1818 <designator>. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1819 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1820 The "@required" specifier must come before any of the |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1821 properties it refers to are assigned in the form. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1822 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1823 ``@remove@<propname>=id(s)`` or ``@add@<propname>=id(s)`` |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1824 The "@add@" and "@remove@" edit actions apply only to |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1825 Multilink properties. The form value must be a |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1826 comma-separate list of keys for the class specified by |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1827 the simple form variable. The listed items are added |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1828 to (respectively, removed from) the specified |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1829 property. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1830 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1831 ``@link@<propname>=<designator>`` |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1832 If the edit action is "@link@", the simple form |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1833 variable must specify a Link or Multilink property. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1834 The form value is a comma-separated list of |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1835 designators. The item corresponding to each |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1836 designator is linked to the property given by simple |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1837 form variable. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1838 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1839 None of the above (ie. just a simple form value) |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1840 The value of the form variable is converted |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1841 appropriately, depending on the type of the property. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1842 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1843 For a Link('klass') property, the form value is a |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1844 single key for 'klass', where the key field is |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1845 specified in schema.py. |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1846 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1847 For a Multilink('klass') property, the form value is a |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1848 comma-separated list of keys for 'klass', where the |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
1849 key field is specified in schema.py. |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1850 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1851 Note that for simple-form-variables specifiying Link |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1852 and Multilink properties, the linked-to class must |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1853 have a key field. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1854 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1855 For a String() property specifying a filename, the |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1856 file named by the form value is uploaded. This means we |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1857 try to set additional properties "filename" and "type" (if |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1858 they are valid for the class). Otherwise, the property |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1859 is set to the form value. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1860 |
|
5067
e424987d294a
Add support for an integer type to join the existing number type.
John Rouillard <rouilj@ieee.org>
parents:
5064
diff
changeset
|
1861 For Date(), Interval(), Boolean(), Integer() and Number() |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1862 properties, the form value is converted to the |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1863 appropriate |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1864 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1865 Any of the form variables may be prefixed with a classname or |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1866 designator. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1867 |
|
5161
12190efa30d4
I realized that the __came_from and __redirect_to url parameters I
John Rouillard <rouilj@ieee.org>
parents:
5158
diff
changeset
|
1868 Setting the form variable: ``__redirect_to=`` to a url when |
|
12190efa30d4
I realized that the __came_from and __redirect_to url parameters I
John Rouillard <rouilj@ieee.org>
parents:
5158
diff
changeset
|
1869 @action=new redirects the user to the specified url after successfully |
|
12190efa30d4
I realized that the __came_from and __redirect_to url parameters I
John Rouillard <rouilj@ieee.org>
parents:
5158
diff
changeset
|
1870 creating the new item. This is useful if you want the user to create |
|
12190efa30d4
I realized that the __came_from and __redirect_to url parameters I
John Rouillard <rouilj@ieee.org>
parents:
5158
diff
changeset
|
1871 another item rather than edit the newly created item. Note that the |
|
12190efa30d4
I realized that the __came_from and __redirect_to url parameters I
John Rouillard <rouilj@ieee.org>
parents:
5158
diff
changeset
|
1872 url assigned to ``__redirect_to`` must be url encoded/quoted and be |
|
12190efa30d4
I realized that the __came_from and __redirect_to url parameters I
John Rouillard <rouilj@ieee.org>
parents:
5158
diff
changeset
|
1873 under the tracker's base url. If the base_url uses http, you can set |
|
12190efa30d4
I realized that the __came_from and __redirect_to url parameters I
John Rouillard <rouilj@ieee.org>
parents:
5158
diff
changeset
|
1874 the url to https. |
|
5158
63294ed25e84
issue1842687: Keywords: After creating, stay in "Create New" mode.
John Rouillard <rouilj@ieee.org>
parents:
5156
diff
changeset
|
1875 |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1876 Two special form values are supported for backwards compatibility: |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1877 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1878 @note |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1879 This is equivalent to:: |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1880 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1881 @link@messages=msg-1 |
| 1918 | 1882 msg-1@content=value |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1883 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1884 except that in addition, the "author" and "date" properties of |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1885 "msg-1" are set to the userid of the submitter, and the current |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1886 time, respectively. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1887 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1888 @file |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1889 This is equivalent to:: |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1890 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1891 @link@files=file-1 |
| 1918 | 1892 file-1@content=value |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1893 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1894 The String content value is handled as described above for file |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1895 uploads. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1896 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1897 If both the "@note" and "@file" form variables are |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1898 specified, the action:: |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1899 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1900 @link@msg-1@files=file-1 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1901 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1902 is also performed. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1903 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1904 We also check that FileClass items have a "content" property with |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1905 actual content, otherwise we remove them from all_props before |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1906 returning. |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1907 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1908 |
| 1091 | 1909 Default templates |
| 1098 | 1910 ----------------- |
| 1091 | 1911 |
|
1952
c40ed9113285
Applied Stefan Seefeld's html4/xhtml patch with some changes.
Richard Jones <richard@users.sourceforge.net>
parents:
1918
diff
changeset
|
1912 The default templates are html4 compliant. If you wish to change them to be |
|
2921
ad4fb8a14a97
more doc updates, not so many TODOs any more
Richard Jones <richard@users.sourceforge.net>
parents:
2915
diff
changeset
|
1913 xhtml compliant, you'll need to change the ``html_version`` configuration |
|
ad4fb8a14a97
more doc updates, not so many TODOs any more
Richard Jones <richard@users.sourceforge.net>
parents:
2915
diff
changeset
|
1914 variable in ``config.ini`` to ``'xhtml'`` instead of ``'html4'``. |
|
1952
c40ed9113285
Applied Stefan Seefeld's html4/xhtml patch with some changes.
Richard Jones <richard@users.sourceforge.net>
parents:
1918
diff
changeset
|
1915 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1916 Most customisation of the web view can be done by modifying the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1917 templates in the tracker ``'html'`` directory. There are several types |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1918 of files in there. The *minimal* template includes: |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1919 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1920 **page.html** |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1921 This template usually defines the overall look of your tracker. When |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1922 you view an issue, it appears inside this template. When you view an |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1923 index, it also appears inside this template. This template defines a |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1924 macro called "icing" which is used by almost all other templates as a |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1925 coating for their content, using its "content" slot. It also defines |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1926 the "head_title" and "body_title" slots to allow setting of the page |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1927 title. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1928 **home.html** |
| 1091 | 1929 the default page displayed when no other page is indicated by the user |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1930 **home.classlist.html** |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1931 a special version of the default page that lists the classes in the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1932 tracker |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1933 **classname.item.html** |
| 1091 | 1934 displays an item of the *classname* class |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1935 **classname.index.html** |
| 1091 | 1936 displays a list of *classname* items |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1937 **classname.search.html** |
| 1091 | 1938 displays a search page for *classname* items |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1939 **_generic.index.html** |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1940 used to display a list of items where there is no |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1941 ``*classname*.index`` available |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1942 **_generic.help.html** |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1943 used to display a "class help" page where there is no |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1944 ``*classname*.help`` |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1945 **user.register.html** |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1946 a special page just for the user class, that renders the registration |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1947 page |
|
4435
386200d0c929
Some minor typos fixed in doc/customizing.txt (Thanks Ralf Hemmecke).
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4406
diff
changeset
|
1948 **style.css** |
| 1091 | 1949 a static file that is served up as-is |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
1950 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1951 The *classic* template has a number of additional templates. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1952 |
| 3052 | 1953 Remember that you can create any template extension you want to, |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1954 so if you just want to play around with the templating for new issues, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
1955 you can copy the current "issue.item" template to "issue.test", and then |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1956 access the test template using the "@template" URL argument:: |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1957 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
1958 http://your.tracker.example/tracker/issue?@template=test |
|
1147
89b1a8a468e7
more doc, "fixer" example
Richard Jones <richard@users.sourceforge.net>
parents:
1144
diff
changeset
|
1959 |
|
89b1a8a468e7
more doc, "fixer" example
Richard Jones <richard@users.sourceforge.net>
parents:
1144
diff
changeset
|
1960 and it won't affect your users using the "issue.item" template. |
|
89b1a8a468e7
more doc, "fixer" example
Richard Jones <richard@users.sourceforge.net>
parents:
1144
diff
changeset
|
1961 |
|
5154
f608eeecf638
issue2550891: Allow subdir in template value. Anthony (antmail)
John Rouillard <rouilj@ieee.org>
parents:
5135
diff
changeset
|
1962 You can also put templates into a subdirectory of the template |
|
f608eeecf638
issue2550891: Allow subdir in template value. Anthony (antmail)
John Rouillard <rouilj@ieee.org>
parents:
5135
diff
changeset
|
1963 directory. So if you specify:: |
|
f608eeecf638
issue2550891: Allow subdir in template value. Anthony (antmail)
John Rouillard <rouilj@ieee.org>
parents:
5135
diff
changeset
|
1964 |
|
f608eeecf638
issue2550891: Allow subdir in template value. Anthony (antmail)
John Rouillard <rouilj@ieee.org>
parents:
5135
diff
changeset
|
1965 http://your.tracker.example/tracker/issue?@template=test/item |
|
f608eeecf638
issue2550891: Allow subdir in template value. Anthony (antmail)
John Rouillard <rouilj@ieee.org>
parents:
5135
diff
changeset
|
1966 |
|
f608eeecf638
issue2550891: Allow subdir in template value. Anthony (antmail)
John Rouillard <rouilj@ieee.org>
parents:
5135
diff
changeset
|
1967 you will use the template at: ``test/issue.item.html``. If that |
|
f608eeecf638
issue2550891: Allow subdir in template value. Anthony (antmail)
John Rouillard <rouilj@ieee.org>
parents:
5135
diff
changeset
|
1968 template doesn't exit it will try to use |
|
f608eeecf638
issue2550891: Allow subdir in template value. Anthony (antmail)
John Rouillard <rouilj@ieee.org>
parents:
5135
diff
changeset
|
1969 ``test/_generic.item.html``. If that template doesn't exist |
|
f608eeecf638
issue2550891: Allow subdir in template value. Anthony (antmail)
John Rouillard <rouilj@ieee.org>
parents:
5135
diff
changeset
|
1970 it will return an error. |
|
1147
89b1a8a468e7
more doc, "fixer" example
Richard Jones <richard@users.sourceforge.net>
parents:
1144
diff
changeset
|
1971 |
|
5185
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1972 Implementing Modal Editing Using @template |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1973 ------------------------------------------ |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1974 |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1975 Many item templates allow you to edit the item. They contain |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1976 code that renders edit boxes if the user has edit permissions. |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1977 Otherwise the template will just display the item information. |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1978 |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1979 In some cases you want to do a modal edit. The user has to take some |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1980 action (click a button or follow a link) to shift from display mode to |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1981 edit mode. When the changes are submitted, ending the edit mode, |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1982 the user is returned to display mode. |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1983 |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1984 Modal workflows usually slow things down and are not implemented by |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1985 default templates. However for some workflows a modal edit is useful. |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1986 For example a batch edit mode that allows the user to edit a number of |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1987 issues all from one form could be implemented as a modal workflow of: |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1988 |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1989 * search for issues to modify |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1990 * switch to edit mode and change values |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1991 * exit back to the results of the search |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1992 |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1993 To implement the modal edit, assume you have an issue.edit.html |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1994 template that implements an edit form. On the display page (a version |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1995 of issue.item.html modified to only display information) add a link |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1996 that calls the display url, but adds ``@template=edit`` to the link. |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1997 |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1998 This will now display the edit page. On the edit page you want to add |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
1999 a hidden text field to your form named ``@template`` with the value: |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
2000 ``item|edit``. When the form is submitted it is validated. If the |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
2001 form is correct the user will see the item rendered using the item |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
2002 template. If there is an error (validation failed) the item will be |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
2003 rendered using the edit template. The edit template that is rendered |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
2004 will display all the changes that the user made to the form before it |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
2005 was submitted. The user can correct the error and resubmit the changes |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
2006 until the form validates. |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
2007 |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
2008 If the form failed to validate but the ``@template`` field had the |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
2009 value ``item`` the user would still see the error, but all of the data |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
2010 the user entered would be discarded. The user would have to redo all |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
2011 the edits again. |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
2012 |
|
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
2013 |
|
1070
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2014 How the templates work |
| 1098 | 2015 ---------------------- |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
2016 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2017 |
|
4619
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2018 Templating engines |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2019 ~~~~~~~~~~~~~~~~~~ |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2020 |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2021 Since version 1.4.20 Roundup supports two templating engines: the original |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2022 `Template Attribute Language`_ (TAL) engine from Zope and the standalone |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2023 Chameleon templating engine. Chameleon is intended as a replacement for the |
|
4723
42f6c76950a4
Cancel version bump to 1.5.0 - the impact is minimal, so just update
anatoly techtonik <techtonik@gmail.com>
parents:
4695
diff
changeset
|
2024 original TAL engine, and supports the same syntax, |
|
4619
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2025 but they are not 100% compatible. The major (and most likely the only) |
|
4723
42f6c76950a4
Cancel version bump to 1.5.0 - the impact is minimal, so just update
anatoly techtonik <techtonik@gmail.com>
parents:
4695
diff
changeset
|
2026 incompatibility is the default expression type being |
|
4619
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2027 ``python:`` instead of ``path:``. See also "Incompatibilities and |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2028 differences" section of `Chameleon documentation`__. |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2029 |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2030 **NOTE1**: For historical reasons, examples given below assumes path |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2031 expression as default expression type. With Chameleon you have to manually |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2032 resolve the path expressions. A Chameleon-based, z3c.pt, that is fully |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2033 compatible with the old TAL implementation, is planned to be included in a |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2034 future release. |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2035 |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2036 **NOTE2**: As of 1.4.20 Chameleon support is highly experimental and **not** |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2037 recommended for production use. |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2038 |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2039 .. _Chameleon: |
|
5364
dffa7d0df99c
Fixing links to chameleon documentation.
John Rouillard <rouilj@ieee.org>
parents:
5361
diff
changeset
|
2040 https://pypi.org/project/Chameleon/ |
|
4619
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2041 .. _z3c.pt: |
|
5337
01dabc0483b0
more changes to prep for 1.6 release.
John Rouillard <rouilj@ieee.org>
parents:
5332
diff
changeset
|
2042 https://pypi.org/project/z3c.pt/ |
|
5364
dffa7d0df99c
Fixing links to chameleon documentation.
John Rouillard <rouilj@ieee.org>
parents:
5361
diff
changeset
|
2043 __ https://chameleon.readthedocs.io/en/latest/reference.html?highlight=differences#incompatibilities-and-differences |
|
4619
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2044 .. _TAL: |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2045 .. _Template Attribute Language: |
|
5365
979390afb001
Fix some dev.zope.org links for tales and metal.
John Rouillard <rouilj@ieee.org>
parents:
5364
diff
changeset
|
2046 https://pagetemplates.readthedocs.io/en/latest/history/TALSpecification14.html |
|
4619
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2047 |
|
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2048 |
| 1214 | 2049 Basic Templating Actions |
| 2050 ~~~~~~~~~~~~~~~~~~~~~~~~ | |
| 2051 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2052 Roundup's templates consist of special attributes on the HTML tags. |
|
4619
d9254d300d6e
Add some notes about Chameleon in the documentation
Cheer Xiao <xiaqqaix@gmail.com>
parents:
4464
diff
changeset
|
2053 These attributes form the **Template Attribute Language**, or TAL. |
|
2296
5092d44194dd
added links to TAL specifications
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2227
diff
changeset
|
2054 The basic TAL commands are: |
|
1070
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2055 |
| 1125 | 2056 **tal:define="variable expression; variable expression; ..."** |
|
1070
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2057 Define a new variable that is local to this tag and its contents. For |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2058 example:: |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2059 |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2060 <html tal:define="title request/description"> |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2061 <head><title tal:content="title"></title></head> |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2062 </html> |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2063 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2064 In this example, the variable "title" is defined as the result of the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2065 expression "request/description". The "tal:content" command inside the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2066 <html> tag may then use the "title" variable. |
|
1070
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2067 |
| 1125 | 2068 **tal:condition="expression"** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2069 Only keep this tag and its contents if the expression is true. For |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2070 example:: |
|
1070
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2071 |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2072 <p tal:condition="python:request.user.hasPermission('View', 'issue')"> |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2073 Display some issue information. |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2074 </p> |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2075 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2076 In the example, the <p> tag and its contents are only displayed if |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2077 the user has the "View" permission for issues. We consider the number |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2078 zero, a blank string, an empty list, and the built-in variable |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2079 nothing to be false values. Nearly every other value is true, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2080 including non-zero numbers, and strings with anything in them (even |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2081 spaces!). |
|
1070
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2082 |
| 1125 | 2083 **tal:repeat="variable expression"** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2084 Repeat this tag and its contents for each element of the sequence |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2085 that the expression returns, defining a new local variable and a |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2086 special "repeat" variable for each element. For example:: |
|
1070
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2087 |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2088 <tr tal:repeat="u user/list"> |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2089 <td tal:content="u/id"></td> |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2090 <td tal:content="u/username"></td> |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2091 <td tal:content="u/realname"></td> |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2092 </tr> |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2093 |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2094 The example would iterate over the sequence of users returned by |
|
2855
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2095 "user/list" and define the local variable "u" for each entry. Using |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2096 the repeat command creates a new variable called "repeat" which you |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2097 may access to gather information about the iteration. See the section |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2098 below on `the repeat variable`_. |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
2099 |
| 1125 | 2100 **tal:replace="expression"** |
|
1070
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2101 Replace this tag with the result of the expression. For example:: |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2102 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2103 <span tal:replace="request/user/realname" /> |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2104 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2105 The example would replace the <span> tag and its contents with the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2106 user's realname. If the user's realname was "Bruce", then the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2107 resultant output would be "Bruce". |
|
1070
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2108 |
| 1125 | 2109 **tal:content="expression"** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2110 Replace the contents of this tag with the result of the expression. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2111 For example:: |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2112 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2113 <span tal:content="request/user/realname">user's name appears here |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2114 </span> |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2115 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2116 The example would replace the contents of the <span> tag with the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2117 user's realname. If the user's realname was "Bruce" then the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2118 resultant output would be "<span>Bruce</span>". |
|
1070
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2119 |
| 1125 | 2120 **tal:attributes="attribute expression; attribute expression; ..."** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2121 Set attributes on this tag to the results of expressions. For |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2122 example:: |
|
1070
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2123 |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2124 <a tal:attributes="href string:user${request/user/id}">My Details</a> |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2125 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2126 In the example, the "href" attribute of the <a> tag is set to the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2127 value of the "string:user${request/user/id}" expression, which will |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2128 be something like "user123". |
|
1070
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2129 |
| 1125 | 2130 **tal:omit-tag="expression"** |
|
1070
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2131 Remove this tag (but not its contents) if the expression is true. For |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2132 example:: |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2133 |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2134 <span tal:omit-tag="python:1">Hello, world!</span> |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2135 |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2136 would result in output of:: |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2137 |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2138 Hello, world! |
|
af0abadfda3a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1058
diff
changeset
|
2139 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2140 Note that the commands on a given tag are evaulated in the order above, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2141 so *define* comes before *condition*, and so on. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2142 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2143 Additionally, you may include tags such as <tal:block>, which are |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2144 removed from output. Its content is kept, but the tag itself is not (so |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2145 don't go using any "tal:attributes" commands on it). This is useful for |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2146 making arbitrary blocks of HTML conditional or repeatable (very handy |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2147 for repeating multiple table rows, which would othewise require an |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2148 illegal tag placement to effect the repeat). |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
2149 |
| 2910 | 2150 |
| 1214 | 2151 Templating Expressions |
| 2152 ~~~~~~~~~~~~~~~~~~~~~~ | |
| 2153 | |
|
2296
5092d44194dd
added links to TAL specifications
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2227
diff
changeset
|
2154 Templating Expressions are covered by `Template Attribute Language |
|
5092d44194dd
added links to TAL specifications
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2227
diff
changeset
|
2155 Expression Syntax`_, or TALES. The expressions you may use in the |
|
5092d44194dd
added links to TAL specifications
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2227
diff
changeset
|
2156 attribute values may be one of the following forms: |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
2157 |
| 1125 | 2158 **Path Expressions** - eg. ``item/status/checklist`` |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2159 These are object attribute / item accesses. Roughly speaking, the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2160 path ``item/status/checklist`` is broken into parts ``item``, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2161 ``status`` and ``checklist``. The ``item`` part is the root of the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2162 expression. We then look for a ``status`` attribute on ``item``, or |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2163 failing that, a ``status`` item (as in ``item['status']``). If that |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2164 fails, the path expression fails. When we get to the end, the object |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2165 we're left with is evaluated to get a string - if it is a method, it |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2166 is called; if it is an object, it is stringified. Path expressions |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2167 may have an optional ``path:`` prefix, but they are the default |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2168 expression type, so it's not necessary. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2169 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2170 If an expression evaluates to ``default``, then the expression is |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2171 "cancelled" - whatever HTML already exists in the template will |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2172 remain (tag content in the case of ``tal:content``, attributes in the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2173 case of ``tal:attributes``). |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2174 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2175 If an expression evaluates to ``nothing`` then the target of the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2176 expression is removed (tag content in the case of ``tal:content``, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2177 attributes in the case of ``tal:attributes`` and the tag itself in |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2178 the case of ``tal:replace``). |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
2179 |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
2180 If an element in the path may not exist, then you can use the ``|`` |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2181 operator in the expression to provide an alternative. So, the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2182 expression ``request/form/foo/value | default`` would simply leave |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2183 the current HTML in place if the "foo" form variable doesn't exist. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2184 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2185 You may use the python function ``path``, as in |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2186 ``path("item/status")``, to embed path expressions in Python |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2187 expressions. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2188 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2189 **String Expressions** - eg. ``string:hello ${user/name}`` |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2190 These expressions are simple string interpolations - though they can |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2191 be just plain strings with no interpolation if you want. The |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2192 expression in the ``${ ... }`` is just a path expression as above. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2193 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2194 **Python Expressions** - eg. ``python: 1+1`` |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
2195 These expressions give the full power of Python. All the "root level" |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2196 variables are available, so ``python:item.status.checklist()`` would |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2197 be equivalent to ``item/status/checklist``, assuming that |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2198 ``checklist`` is a method. |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
2199 |
|
1448
bbb1e5f8fc93
added info about structure/not:/path()
Richard Jones <richard@users.sourceforge.net>
parents:
1436
diff
changeset
|
2200 Modifiers: |
|
bbb1e5f8fc93
added info about structure/not:/path()
Richard Jones <richard@users.sourceforge.net>
parents:
1436
diff
changeset
|
2201 |
|
bbb1e5f8fc93
added info about structure/not:/path()
Richard Jones <richard@users.sourceforge.net>
parents:
1436
diff
changeset
|
2202 **structure** - eg. ``structure python:msg.content.plain(hyperlink=1)`` |
|
bbb1e5f8fc93
added info about structure/not:/path()
Richard Jones <richard@users.sourceforge.net>
parents:
1436
diff
changeset
|
2203 The result of expressions are normally *escaped* to be safe for HTML |
|
bbb1e5f8fc93
added info about structure/not:/path()
Richard Jones <richard@users.sourceforge.net>
parents:
1436
diff
changeset
|
2204 display (all "<", ">" and "&" are turned into special entities). The |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2205 ``structure`` expression modifier turns off this escaping - the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2206 result of the expression is now assumed to be HTML, which is passed |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2207 to the web browser for rendering. |
|
1448
bbb1e5f8fc93
added info about structure/not:/path()
Richard Jones <richard@users.sourceforge.net>
parents:
1436
diff
changeset
|
2208 |
|
bbb1e5f8fc93
added info about structure/not:/path()
Richard Jones <richard@users.sourceforge.net>
parents:
1436
diff
changeset
|
2209 **not:** - eg. ``not:python:1=1`` |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2210 This simply inverts the logical true/false value of another |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2211 expression. |
|
1448
bbb1e5f8fc93
added info about structure/not:/path()
Richard Jones <richard@users.sourceforge.net>
parents:
1436
diff
changeset
|
2212 |
|
2296
5092d44194dd
added links to TAL specifications
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2227
diff
changeset
|
2213 .. _TALES: |
|
5092d44194dd
added links to TAL specifications
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2227
diff
changeset
|
2214 .. _Template Attribute Language Expression Syntax: |
|
5365
979390afb001
Fix some dev.zope.org links for tales and metal.
John Rouillard <rouilj@ieee.org>
parents:
5364
diff
changeset
|
2215 https://pagetemplates.readthedocs.io/en/latest/history/TALESSpecification13.html |
|
1448
bbb1e5f8fc93
added info about structure/not:/path()
Richard Jones <richard@users.sourceforge.net>
parents:
1436
diff
changeset
|
2216 |
| 2910 | 2217 |
| 1214 | 2218 Template Macros |
| 2219 ~~~~~~~~~~~~~~~ | |
| 2220 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2221 Macros are used in Roundup to save us from repeating the same common |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2222 page stuctures over and over. The most common (and probably only) macro |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2223 you'll use is the "icing" macro defined in the "page" template. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2224 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2225 Macros are generated and used inside your templates using special |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2226 attributes similar to the `basic templating actions`_. In this case, |
|
2296
5092d44194dd
added links to TAL specifications
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2227
diff
changeset
|
2227 though, the attributes belong to the `Macro Expansion Template |
|
5092d44194dd
added links to TAL specifications
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2227
diff
changeset
|
2228 Attribute Language`_, or METAL. The macro commands are: |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2229 |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2230 **metal:define-macro="macro name"** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2231 Define that the tag and its contents are now a macro that may be |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2232 inserted into other templates using the *use-macro* command. For |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2233 example:: |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2234 |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2235 <html metal:define-macro="page"> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2236 ... |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2237 </html> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2238 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2239 defines a macro called "page" using the ``<html>`` tag and its |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2240 contents. Once defined, macros are stored on the template they're |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2241 defined on in the ``macros`` attribute. You can access them later on |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2242 through the ``templates`` variable, eg. the most common |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2243 ``templates/page/macros/icing`` to access the "page" macro of the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2244 "page" template. |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2245 |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2246 **metal:use-macro="path expression"** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2247 Use a macro, which is identified by the path expression (see above). |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2248 This will replace the current tag with the identified macro contents. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2249 For example:: |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2250 |
| 1214 | 2251 <tal:block metal:use-macro="templates/page/macros/icing"> |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2252 ... |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2253 </tal:block> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2254 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2255 will replace the tag and its contents with the "page" macro of the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2256 "page" template. |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2257 |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2258 **metal:define-slot="slot name"** and **metal:fill-slot="slot name"** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2259 To define *dynamic* parts of the macro, you define "slots" which may |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2260 be filled when the macro is used with a *use-macro* command. For |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2261 example, the ``templates/page/macros/icing`` macro defines a slot like |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2262 so:: |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2263 |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2264 <title metal:define-slot="head_title">title goes here</title> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2265 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2266 In your *use-macro* command, you may now use a *fill-slot* command |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2267 like this:: |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2268 |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2269 <title metal:fill-slot="head_title">My Title</title> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2270 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2271 where the tag that fills the slot completely replaces the one defined |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2272 as the slot in the macro. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2273 |
|
2296
5092d44194dd
added links to TAL specifications
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2227
diff
changeset
|
2274 Note that you may not mix `METAL`_ and `TAL`_ commands on the same tag, but |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2275 TAL commands may be used freely inside METAL-using tags (so your |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2276 *fill-slots* tags may have all manner of TAL inside them). |
| 1214 | 2277 |
|
2296
5092d44194dd
added links to TAL specifications
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2227
diff
changeset
|
2278 .. _METAL: |
|
5092d44194dd
added links to TAL specifications
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2227
diff
changeset
|
2279 .. _Macro Expansion Template Attribute Language: |
|
5365
979390afb001
Fix some dev.zope.org links for tales and metal.
John Rouillard <rouilj@ieee.org>
parents:
5364
diff
changeset
|
2280 https://pagetemplates.readthedocs.io/en/latest/history/TALESSpecification13.html |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2281 |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2282 Information available to templates |
| 1098 | 2283 ---------------------------------- |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2284 |
| 3052 | 2285 This is implemented by ``roundup.cgi.templating.RoundupPageTemplate`` |
| 1125 | 2286 |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2287 The following variables are available to templates. |
|
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2288 |
| 1125 | 2289 **context** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2290 The current context. This is either None, a `hyperdb class wrapper`_ |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2291 or a `hyperdb item wrapper`_ |
| 1125 | 2292 **request** |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2293 Includes information about the current request, including: |
|
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2294 - the current index information (``filterspec``, ``filter`` args, |
|
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2295 ``properties``, etc) parsed out of the form. |
|
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2296 - methods for easy filterspec link generation |
|
3968
5857cd1a0db9
add language to the "request" template var
Richard Jones <richard@users.sourceforge.net>
parents:
3922
diff
changeset
|
2297 - "form" |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2298 The current CGI form information as a mapping of form argument name |
|
3968
5857cd1a0db9
add language to the "request" template var
Richard Jones <richard@users.sourceforge.net>
parents:
3922
diff
changeset
|
2299 to value (specifically a cgi.FieldStorage) |
|
5857cd1a0db9
add language to the "request" template var
Richard Jones <richard@users.sourceforge.net>
parents:
3922
diff
changeset
|
2300 - "env" the CGI environment variables |
|
5857cd1a0db9
add language to the "request" template var
Richard Jones <richard@users.sourceforge.net>
parents:
3922
diff
changeset
|
2301 - "base" the base URL for this instance |
|
5857cd1a0db9
add language to the "request" template var
Richard Jones <richard@users.sourceforge.net>
parents:
3922
diff
changeset
|
2302 - "user" a HTMLItem instance for the current user |
|
5857cd1a0db9
add language to the "request" template var
Richard Jones <richard@users.sourceforge.net>
parents:
3922
diff
changeset
|
2303 - "language" as determined by the browser or config |
|
5857cd1a0db9
add language to the "request" template var
Richard Jones <richard@users.sourceforge.net>
parents:
3922
diff
changeset
|
2304 - "classname" the current classname (possibly None) |
|
5857cd1a0db9
add language to the "request" template var
Richard Jones <richard@users.sourceforge.net>
parents:
3922
diff
changeset
|
2305 - "template" the current template (suffix, also possibly None) |
|
1254
77920c42aeb9
Expose the tracker config as a variable for templating
Richard Jones <richard@users.sourceforge.net>
parents:
1252
diff
changeset
|
2306 **config** |
|
2921
ad4fb8a14a97
more doc updates, not so many TODOs any more
Richard Jones <richard@users.sourceforge.net>
parents:
2915
diff
changeset
|
2307 This variable holds all the values defined in the tracker config.ini |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2308 file (eg. TRACKER_NAME, etc.) |
| 1125 | 2309 **db** |
|
1254
77920c42aeb9
Expose the tracker config as a variable for templating
Richard Jones <richard@users.sourceforge.net>
parents:
1252
diff
changeset
|
2310 The current database, used to access arbitrary database items. |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2311 **templates** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2312 Access to all the tracker templates by name. Used mainly in |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2313 *use-macro* commands. |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2314 **utils** |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2315 This variable makes available some utility functions like batching. |
| 1125 | 2316 **nothing** |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2317 This is a special variable - if an expression evaluates to this, then |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2318 the tag (in the case of a ``tal:replace``), its contents (in the case |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2319 of ``tal:content``) or some attributes (in the case of |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2320 ``tal:attributes``) will not appear in the the output. So, for |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2321 example:: |
| 1100 | 2322 |
| 2323 <span tal:attributes="class nothing">Hello, World!</span> | |
| 2324 | |
| 2325 would result in:: | |
| 2326 | |
| 2327 <span>Hello, World!</span> | |
| 2328 | |
| 1125 | 2329 **default** |
| 1100 | 2330 Also a special variable - if an expression evaluates to this, then the |
| 2331 existing HTML in the template will not be replaced or removed, it will | |
| 2332 remain. So:: | |
| 2333 | |
| 2334 <span tal:replace="default">Hello, World!</span> | |
| 2335 | |
| 2336 would result in:: | |
| 2337 | |
| 2338 <span>Hello, World!</span> | |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2339 |
|
2526
dfe0bde4ff7f
"Information available to templates": 'true' and 'false' constants
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2511
diff
changeset
|
2340 **true**, **false** |
|
dfe0bde4ff7f
"Information available to templates": 'true' and 'false' constants
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2511
diff
changeset
|
2341 Boolean constants that may be used in `templating expressions`_ |
|
dfe0bde4ff7f
"Information available to templates": 'true' and 'false' constants
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2511
diff
changeset
|
2342 instead of ``python:1`` and ``python:0``. |
|
2540
bad572863a85
"Information available to templates": i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2526
diff
changeset
|
2343 **i18n** |
|
bad572863a85
"Information available to templates": i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2526
diff
changeset
|
2344 Internationalization service, providing two string translation methods: |
|
bad572863a85
"Information available to templates": i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2526
diff
changeset
|
2345 |
|
bad572863a85
"Information available to templates": i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2526
diff
changeset
|
2346 **gettext** (*message*) |
|
bad572863a85
"Information available to templates": i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2526
diff
changeset
|
2347 Return the localized translation of message |
|
bad572863a85
"Information available to templates": i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2526
diff
changeset
|
2348 **ngettext** (*singular*, *plural*, *number*) |
|
bad572863a85
"Information available to templates": i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2526
diff
changeset
|
2349 Like ``gettext()``, but consider plural forms. If a translation |
|
bad572863a85
"Information available to templates": i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2526
diff
changeset
|
2350 is found, apply the plural formula to *number*, and return the |
|
bad572863a85
"Information available to templates": i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2526
diff
changeset
|
2351 resulting message (some languages have more than two plural forms). |
|
bad572863a85
"Information available to templates": i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2526
diff
changeset
|
2352 If no translation is found, return singular if *number* is 1; |
|
bad572863a85
"Information available to templates": i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2526
diff
changeset
|
2353 return plural otherwise. |
|
bad572863a85
"Information available to templates": i18n
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2526
diff
changeset
|
2354 |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2355 The context variable |
| 1098 | 2356 ~~~~~~~~~~~~~~~~~~~~ |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2357 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2358 The *context* variable is one of three things based on the current |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2359 context (see `determining web context`_ for how we figure this out): |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2360 |
|
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2361 1. if we're looking at a "home" page, then it's None |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2362 2. if we're looking at a specific hyperdb class, it's a |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2363 `hyperdb class wrapper`_. |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2364 3. if we're looking at a specific hyperdb item, it's a |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2365 `hyperdb item wrapper`_. |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2366 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2367 If the context is not None, we can access the properties of the class or |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2368 item. The only real difference between cases 2 and 3 above are: |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2369 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2370 1. the properties may have a real value behind them, and this will |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2371 appear if the property is displayed through ``context/property`` or |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2372 ``context/property/field``. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2373 2. the context's "id" property will be a false value in the second case, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2374 but a real, or true value in the third. Thus we can determine whether |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2375 we're looking at a real item from the hyperdb by testing |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2376 "context/id". |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2377 |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2378 Hyperdb class wrapper |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2379 ::::::::::::::::::::: |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2380 |
| 3052 | 2381 This is implemented by the ``roundup.cgi.templating.HTMLClass`` |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2382 class. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2383 |
|
4435
386200d0c929
Some minor typos fixed in doc/customizing.txt (Thanks Ralf Hemmecke).
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4406
diff
changeset
|
2384 This wrapper object provides access to a hyperdb class. It is used |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2385 primarily in both index view and new item views, but it's also usable |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2386 anywhere else that you wish to access information about a class, or the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2387 items of a class, when you don't have a specific item of that class in |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2388 mind. |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2389 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2390 We allow access to properties. There will be no "id" property. The value |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2391 accessed through the property will be the current value of the same name |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2392 from the CGI form. |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2393 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2394 There are several methods available on these wrapper objects: |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2395 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2396 =========== ============================================================= |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2397 Method Description |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2398 =========== ============================================================= |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2399 properties return a `hyperdb property wrapper`_ for all of this class's |
|
5222
9bf221cebef3
Make properties method return only properties the user can search.
John Rouillard <rouilj@ieee.org>
parents:
5206
diff
changeset
|
2400 properties that are searchable by the user. You can use |
|
9bf221cebef3
Make properties method return only properties the user can search.
John Rouillard <rouilj@ieee.org>
parents:
5206
diff
changeset
|
2401 the argument cansearch=False to get all properties. |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2402 list lists all of the active (not retired) items in the class. |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2403 csv return the items of this class as a chunk of CSV text. |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2404 propnames lists the names of the properties of this class. |
|
2858
0357a9c93933
fix filter() doc
Richard Jones <richard@users.sourceforge.net>
parents:
2855
diff
changeset
|
2405 filter lists of items from this class, filtered and sorted. Two |
|
5185
349bef975367
Make @template support two alternate templates for error and ok cases.
John Rouillard <rouilj@ieee.org>
parents:
5175
diff
changeset
|
2406 options are available for sorting: |
|
2858
0357a9c93933
fix filter() doc
Richard Jones <richard@users.sourceforge.net>
parents:
2855
diff
changeset
|
2407 |
|
0357a9c93933
fix filter() doc
Richard Jones <richard@users.sourceforge.net>
parents:
2855
diff
changeset
|
2408 1. by the current *request* filterspec/filter/sort/group args |
|
0357a9c93933
fix filter() doc
Richard Jones <richard@users.sourceforge.net>
parents:
2855
diff
changeset
|
2409 2. by the "filterspec", "sort" and "group" keyword args. |
|
0357a9c93933
fix filter() doc
Richard Jones <richard@users.sourceforge.net>
parents:
2855
diff
changeset
|
2410 "filterspec" is ``{propname: value(s)}``. "sort" and |
|
3696
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
2411 "group" are an optionally empty list ``[(dir, prop)]`` |
|
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
2412 where dir is '+', '-' or None |
|
2858
0357a9c93933
fix filter() doc
Richard Jones <richard@users.sourceforge.net>
parents:
2855
diff
changeset
|
2413 and prop is a prop name or None. |
|
0357a9c93933
fix filter() doc
Richard Jones <richard@users.sourceforge.net>
parents:
2855
diff
changeset
|
2414 |
|
3718
0d561b24ceff
support sqlite3
Richard Jones <richard@users.sourceforge.net>
parents:
3717
diff
changeset
|
2415 The propname in filterspec and prop in a sort/group spec |
|
0d561b24ceff
support sqlite3
Richard Jones <richard@users.sourceforge.net>
parents:
3717
diff
changeset
|
2416 may be transitive, i.e., it may contain properties of |
|
0d561b24ceff
support sqlite3
Richard Jones <richard@users.sourceforge.net>
parents:
3717
diff
changeset
|
2417 the form link.link.link.name. |
|
0d561b24ceff
support sqlite3
Richard Jones <richard@users.sourceforge.net>
parents:
3717
diff
changeset
|
2418 |
|
0d561b24ceff
support sqlite3
Richard Jones <richard@users.sourceforge.net>
parents:
3717
diff
changeset
|
2419 eg. All issues with a priority of "1" with messages added in |
|
0d561b24ceff
support sqlite3
Richard Jones <richard@users.sourceforge.net>
parents:
3717
diff
changeset
|
2420 the last week, sorted by activity date: |
|
0d561b24ceff
support sqlite3
Richard Jones <richard@users.sourceforge.net>
parents:
3717
diff
changeset
|
2421 ``issue.filter(filterspec={"priority": "1", |
|
0d561b24ceff
support sqlite3
Richard Jones <richard@users.sourceforge.net>
parents:
3717
diff
changeset
|
2422 'messages.creation' : '.-1w;'}, sort=[('activity', '+')])`` |
|
2858
0357a9c93933
fix filter() doc
Richard Jones <richard@users.sourceforge.net>
parents:
2855
diff
changeset
|
2423 |
|
3688
722ab52d47fc
added filter_sql to SQL backends which takes an arbitrary SQL statement...
Richard Jones <richard@users.sourceforge.net>
parents:
3660
diff
changeset
|
2424 filter_sql **Only in SQL backends** |
|
722ab52d47fc
added filter_sql to SQL backends which takes an arbitrary SQL statement...
Richard Jones <richard@users.sourceforge.net>
parents:
3660
diff
changeset
|
2425 |
|
722ab52d47fc
added filter_sql to SQL backends which takes an arbitrary SQL statement...
Richard Jones <richard@users.sourceforge.net>
parents:
3660
diff
changeset
|
2426 Lists the items that match the SQL provided. The SQL is a |
|
722ab52d47fc
added filter_sql to SQL backends which takes an arbitrary SQL statement...
Richard Jones <richard@users.sourceforge.net>
parents:
3660
diff
changeset
|
2427 complete "select" statement. |
|
722ab52d47fc
added filter_sql to SQL backends which takes an arbitrary SQL statement...
Richard Jones <richard@users.sourceforge.net>
parents:
3660
diff
changeset
|
2428 |
|
722ab52d47fc
added filter_sql to SQL backends which takes an arbitrary SQL statement...
Richard Jones <richard@users.sourceforge.net>
parents:
3660
diff
changeset
|
2429 The SQL select must include the item id as the first column. |
|
722ab52d47fc
added filter_sql to SQL backends which takes an arbitrary SQL statement...
Richard Jones <richard@users.sourceforge.net>
parents:
3660
diff
changeset
|
2430 |
|
722ab52d47fc
added filter_sql to SQL backends which takes an arbitrary SQL statement...
Richard Jones <richard@users.sourceforge.net>
parents:
3660
diff
changeset
|
2431 This function **does not** filter out retired items, add |
|
722ab52d47fc
added filter_sql to SQL backends which takes an arbitrary SQL statement...
Richard Jones <richard@users.sourceforge.net>
parents:
3660
diff
changeset
|
2432 on a where clause "__retired__ <> 1" if you don't want |
|
722ab52d47fc
added filter_sql to SQL backends which takes an arbitrary SQL statement...
Richard Jones <richard@users.sourceforge.net>
parents:
3660
diff
changeset
|
2433 retired nodes. |
|
722ab52d47fc
added filter_sql to SQL backends which takes an arbitrary SQL statement...
Richard Jones <richard@users.sourceforge.net>
parents:
3660
diff
changeset
|
2434 |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2435 classhelp display a link to a javascript popup containing this class' |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2436 "help" template. |
|
3363
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2437 |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2438 This generates a link to a popup window which displays the |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2439 properties indicated by "properties" of the class named by |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2440 "classname". The "properties" should be a comma-separated list |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2441 (eg. 'id,name,description'). Properties defaults to all the |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2442 properties of a class (excluding id, creator, created and |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2443 activity). |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2444 |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2445 You may optionally override the "label" displayed, the "width", |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2446 the "height", the number of items per page ("pagesize") and |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2447 the field on which the list is sorted ("sort"). |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2448 |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2449 With the "filter" arg it is possible to specify a filter for |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2450 which items are supposed to be displayed. It has to be of |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2451 the format "<field>=<values>;<field>=<values>;...". |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2452 |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2453 The popup window will be resizable and scrollable. |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2454 |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2455 If the "property" arg is given, it's passed through to the |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2456 javascript help_window function. This allows updating of a |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2457 property in the calling HTML page. |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2458 |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2459 If the "form" arg is given, it's passed through to the |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2460 javascript help_window function - it's the name of the form |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2461 the "property" belongs to. |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2462 |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
2463 submit generate a submit button (and action and @csrf hidden elements) |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2464 renderWith render this class with the given template. |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2465 history returns 'New node - no history' :) |
|
1136
7e193bbda38e
added generic item editing
Richard Jones <richard@users.sourceforge.net>
parents:
1133
diff
changeset
|
2466 is_edit_ok is the user allowed to Edit the current class? |
|
7e193bbda38e
added generic item editing
Richard Jones <richard@users.sourceforge.net>
parents:
1133
diff
changeset
|
2467 is_view_ok is the user allowed to View the current class? |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2468 =========== ============================================================= |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2469 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2470 Note that if you have a property of the same name as one of the above |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2471 methods, you'll need to access it using a python "item access" |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2472 expression. For example:: |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2473 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2474 python:context['list'] |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2475 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2476 will access the "list" property, rather than the list method. |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2477 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2478 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2479 Hyperdb item wrapper |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2480 :::::::::::::::::::: |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2481 |
| 3052 | 2482 This is implemented by the ``roundup.cgi.templating.HTMLItem`` |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2483 class. |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2484 |
|
4435
386200d0c929
Some minor typos fixed in doc/customizing.txt (Thanks Ralf Hemmecke).
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
4406
diff
changeset
|
2485 This wrapper object provides access to a hyperdb item. |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2486 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2487 We allow access to properties. There will be no "id" property. The value |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2488 accessed through the property will be the current value of the same name |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2489 from the CGI form. |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2490 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2491 There are several methods available on these wrapper objects: |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2492 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2493 =============== ======================================================== |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2494 Method Description |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2495 =============== ======================================================== |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
2496 submit generate a submit button (and action and @csrf hidden elements) |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2497 journal return the journal of the current item (**not |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2498 implemented**) |
|
5227
690ec4f438df
Added missing documentation of the showall parameter to the history
John Rouillard <rouilj@ieee.org>
parents:
5222
diff
changeset
|
2499 history render the journal of the current item as |
|
690ec4f438df
Added missing documentation of the showall parameter to the history
John Rouillard <rouilj@ieee.org>
parents:
5222
diff
changeset
|
2500 HTML. By default properties marked as "quiet" (see |
|
690ec4f438df
Added missing documentation of the showall parameter to the history
John Rouillard <rouilj@ieee.org>
parents:
5222
diff
changeset
|
2501 `design documentation`_) are not shown unless the |
|
690ec4f438df
Added missing documentation of the showall parameter to the history
John Rouillard <rouilj@ieee.org>
parents:
5222
diff
changeset
|
2502 function is called with the showall=True parameter. |
|
5232
462b0f76fce8
issue2550864 - Potential information leakage via journal/history
John Rouillard <rouilj@ieee.org>
parents:
5231
diff
changeset
|
2503 Properties that are not Viewable to the user are not |
|
462b0f76fce8
issue2550864 - Potential information leakage via journal/history
John Rouillard <rouilj@ieee.org>
parents:
5231
diff
changeset
|
2504 shown. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2505 renderQueryForm specific to the "query" class - render the search form |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2506 for the query |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2507 hasPermission specific to the "user" class - determine whether the |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
2508 user has a Permission. The signature is:: |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
2509 |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
2510 hasPermission(self, permission, [classname=], |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
2511 [property=], [itemid=]) |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
2512 |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
2513 where the classname defaults to the current context. |
|
3535
75dc225613cc
fix security check for hasPermission(Permission, None)
Richard Jones <richard@users.sourceforge.net>
parents:
3510
diff
changeset
|
2514 hasRole specific to the "user" class - determine whether the |
|
75dc225613cc
fix security check for hasPermission(Permission, None)
Richard Jones <richard@users.sourceforge.net>
parents:
3510
diff
changeset
|
2515 user has a Role. The signature is:: |
|
75dc225613cc
fix security check for hasPermission(Permission, None)
Richard Jones <richard@users.sourceforge.net>
parents:
3510
diff
changeset
|
2516 |
|
75dc225613cc
fix security check for hasPermission(Permission, None)
Richard Jones <richard@users.sourceforge.net>
parents:
3510
diff
changeset
|
2517 hasRole(self, rolename) |
|
75dc225613cc
fix security check for hasPermission(Permission, None)
Richard Jones <richard@users.sourceforge.net>
parents:
3510
diff
changeset
|
2518 |
|
1136
7e193bbda38e
added generic item editing
Richard Jones <richard@users.sourceforge.net>
parents:
1133
diff
changeset
|
2519 is_edit_ok is the user allowed to Edit the current item? |
|
7e193bbda38e
added generic item editing
Richard Jones <richard@users.sourceforge.net>
parents:
1133
diff
changeset
|
2520 is_view_ok is the user allowed to View the current item? |
|
2154
9f6e6bc40a08
fixes and release announcement
Richard Jones <richard@users.sourceforge.net>
parents:
2153
diff
changeset
|
2521 is_retired is the item retired? |
|
3510
ef80a6c02e09
describe copy_url method of hyperdb item wrapper
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3476
diff
changeset
|
2522 download_url generate a url-quoted link for download of FileClass |
|
2180
58b6d1747973
Web interface tweaks.
Richard Jones <richard@users.sourceforge.net>
parents:
2159
diff
changeset
|
2523 item contents (ie. file<id>/<name>) |
|
3510
ef80a6c02e09
describe copy_url method of hyperdb item wrapper
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3476
diff
changeset
|
2524 copy_url generate a url-quoted link for creating a copy |
|
ef80a6c02e09
describe copy_url method of hyperdb item wrapper
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3476
diff
changeset
|
2525 of this item. By default, the copy will acquire |
|
ef80a6c02e09
describe copy_url method of hyperdb item wrapper
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3476
diff
changeset
|
2526 all properties of the current item except for |
|
ef80a6c02e09
describe copy_url method of hyperdb item wrapper
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3476
diff
changeset
|
2527 ``messages`` and ``files``. This can be overridden |
|
ef80a6c02e09
describe copy_url method of hyperdb item wrapper
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3476
diff
changeset
|
2528 by passing ``exclude`` argument which contains a list |
|
ef80a6c02e09
describe copy_url method of hyperdb item wrapper
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3476
diff
changeset
|
2529 (or any iterable) of property names that shall not be |
|
ef80a6c02e09
describe copy_url method of hyperdb item wrapper
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3476
diff
changeset
|
2530 copied. Database-driven properties like ``id`` or |
|
ef80a6c02e09
describe copy_url method of hyperdb item wrapper
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3476
diff
changeset
|
2531 ``activity`` cannot be copied. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2532 =============== ======================================================== |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2533 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2534 Note that if you have a property of the same name as one of the above |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2535 methods, you'll need to access it using a python "item access" |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2536 expression. For example:: |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2537 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2538 python:context['journal'] |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2539 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2540 will access the "journal" property, rather than the journal method. |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2541 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2542 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2543 Hyperdb property wrapper |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2544 :::::::::::::::::::::::: |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2545 |
| 3052 | 2546 This is implemented by subclasses of the |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2547 ``roundup.cgi.templating.HTMLProperty`` class (``HTMLStringProperty``, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2548 ``HTMLNumberProperty``, and so on). |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2549 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2550 This wrapper object provides access to a single property of a class. Its |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2551 value may be either: |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2552 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2553 1. if accessed through a `hyperdb item wrapper`_, then it's a value from |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2554 the hyperdb |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2555 2. if access through a `hyperdb class wrapper`_, then it's a value from |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2556 the CGI form |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2557 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2558 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2559 The property wrapper has some useful attributes: |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2560 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2561 =============== ======================================================== |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2562 Attribute Description |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2563 =============== ======================================================== |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2564 _name the name of the property |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2565 _value the value of the property if any - this is the actual |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2566 value retrieved from the hyperdb for this property |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2567 =============== ======================================================== |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2568 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2569 There are several methods available on these wrapper objects: |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2570 |
|
1773
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2571 =========== ================================================================ |
|
1780
d2801a2b0a77
Initial implementation (half-baked) at new Tracker instance.
Richard Jones <richard@users.sourceforge.net>
parents:
1777
diff
changeset
|
2572 Method Description |
|
1773
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2573 =========== ================================================================ |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2574 plain render a "plain" representation of the property. This method |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2575 may take two arguments: |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2576 |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2577 escape |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2578 If true, escape the text so it is HTML safe (default: no). The |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2579 reason this defaults to off is that text is usually escaped |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2580 at a later stage by the TAL commands, unless the "structure" |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2581 option is used in the template. The following ``tal:content`` |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2582 expressions are all equivalent:: |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2583 |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2584 "structure python:msg.content.plain(escape=1)" |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2585 "python:msg.content.plain()" |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2586 "msg/content/plain" |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2587 "msg/content" |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2588 |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2589 Usually you'll only want to use the escape option in a |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2590 complex expression. |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2591 |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2592 hyperlink |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2593 If true, turn URLs, email addresses and hyperdb item |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2594 designators in the text into hyperlinks (default: no). Note |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2595 that you'll need to use the "structure" TAL option if you |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2596 want to use this ``tal:content`` expression:: |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2597 |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2598 "structure python:msg.content.plain(hyperlink=1)" |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2599 |
|
2958
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2600 The text is automatically HTML-escaped before the hyperlinking |
|
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2601 transformation done in the plain() method. |
|
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2602 |
|
1773
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2603 hyperlinked The same as msg.content.plain(hyperlink=1), but nicer:: |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2604 |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2605 "structure msg/content/hyperlinked" |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2606 |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2607 field render an appropriate form edit field for the property - for |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2608 most types this is a text entry box, but for Booleans it's a |
|
2958
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2609 tri-state yes/no/neither selection. This method may take some |
|
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2610 arguments: |
|
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2611 |
|
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2612 size |
|
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2613 Sets the width in characters of the edit field |
|
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2614 |
|
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2615 format (Date properties only) |
|
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2616 Sets the format of the date in the field - uses the same |
|
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2617 format string argument as supplied to the ``pretty`` method |
|
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2618 below. |
|
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2619 |
|
3649
12633662ff63
include the popcal in Date field editing and search fields by default
Richard Jones <richard@users.sourceforge.net>
parents:
3648
diff
changeset
|
2620 popcal (Date properties only) |
|
12633662ff63
include the popcal in Date field editing and search fields by default
Richard Jones <richard@users.sourceforge.net>
parents:
3648
diff
changeset
|
2621 Include the Javascript-based popup calendar for date |
|
12633662ff63
include the popcal in Date field editing and search fields by default
Richard Jones <richard@users.sourceforge.net>
parents:
3648
diff
changeset
|
2622 selection. Defaults to on. |
|
12633662ff63
include the popcal in Date field editing and search fields by default
Richard Jones <richard@users.sourceforge.net>
parents:
3648
diff
changeset
|
2623 |
|
1773
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2624 stext only on String properties - render the value of the property |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2625 as StructuredText (requires the StructureText module to be |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2626 installed separately) |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2627 multiline only on String properties - render a multiline form edit |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2628 field for the property |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2629 email only on String properties - render the value of the property |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2630 as an obscured email address |
|
5156
882fa4d9bead
issue2550795: @dispname query args in page.html search links
John Rouillard <rouilj@ieee.org>
parents:
5154
diff
changeset
|
2631 url_quote only on String properties. It quotes any characters in the |
|
882fa4d9bead
issue2550795: @dispname query args in page.html search links
John Rouillard <rouilj@ieee.org>
parents:
5154
diff
changeset
|
2632 string so it is safe to use in a url. E.G. a space is |
|
882fa4d9bead
issue2550795: @dispname query args in page.html search links
John Rouillard <rouilj@ieee.org>
parents:
5154
diff
changeset
|
2633 replaced with %20. |
|
1773
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2634 confirm only on Password properties - render a second form edit field |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2635 for the property, used for confirmation that the user typed |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2636 the password correctly. Generates a field with name |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2637 "name:confirm". |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2638 now only on Date properties - return the current date as a new |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2639 property |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2640 reldate only on Date properties - render the interval between the date |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2641 and now |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2642 local only on Date properties - return this date as a new property |
| 2007 | 2643 with some timezone offset, for example:: |
| 2644 | |
| 2645 python:context.creation.local(10) | |
| 2646 | |
| 2647 will render the date with a +10 hour offset. | |
| 2088 | 2648 pretty Date properties - render the date as "dd Mon YYYY" (eg. "19 |
| 2649 Mar 2004"). Takes an optional format argument, for example:: | |
| 2650 | |
| 2651 python:context.activity.pretty('%Y-%m-%d') | |
| 2652 | |
| 2653 Will format as "2004-03-19" instead. | |
| 2654 | |
| 2655 Interval properties - render the interval in a pretty | |
|
2958
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2656 format (eg. "yesterday"). The format arguments are those used |
|
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2657 in the standard ``strftime`` call (see the `Python Library |
|
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2658 Reference: time module`__) |
|
3292
8c7b522dc934
added date selection popup windows (thanks Marcus Priesch)
Richard Jones <richard@users.sourceforge.net>
parents:
3291
diff
changeset
|
2659 popcal Generate a link to a popup calendar which may be used to |
|
8c7b522dc934
added date selection popup windows (thanks Marcus Priesch)
Richard Jones <richard@users.sourceforge.net>
parents:
3291
diff
changeset
|
2660 edit the date field, for example:: |
|
8c7b522dc934
added date selection popup windows (thanks Marcus Priesch)
Richard Jones <richard@users.sourceforge.net>
parents:
3291
diff
changeset
|
2661 |
| 3597 | 2662 <span tal:replace="structure context/due/popcal" /> |
|
3292
8c7b522dc934
added date selection popup windows (thanks Marcus Priesch)
Richard Jones <richard@users.sourceforge.net>
parents:
3291
diff
changeset
|
2663 |
| 3647 | 2664 you still need to include the ``field`` for the property, so |
| 3648 | 2665 typically you'd have:: |
| 3647 | 2666 |
| 2667 <span tal:replace="structure context/due/field" /> | |
| 2668 <span tal:replace="structure context/due/popcal" /> | |
| 2669 | |
|
1773
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2670 menu only on Link and Multilink properties - render a form select |
|
3127
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
2671 list for this property. Takes a number of optional arguments |
|
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
2672 |
|
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
2673 size |
|
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
2674 is used to limit the length of the list labels |
|
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
2675 height |
|
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
2676 is used to set the <select> tag's "size" attribute |
|
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
2677 showid |
|
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
2678 includes the item ids in the list labels |
|
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
2679 additional |
|
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
2680 lists properties which should be included in the label |
|
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
2681 sort_on |
|
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
2682 indicates the property to sort the list on as (direction, |
|
3363
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2683 (direction, property) where direction is '+' or '-'. A |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2684 single string with the direction prepended may be used. |
|
7bc1e9c42a26
allow specification of pagesize, sorting and filtering in "classhelp" popups
Richard Jones <richard@users.sourceforge.net>
parents:
3293
diff
changeset
|
2685 For example: ('-', 'order'), '+name'. |
|
3470
fd32170475f5
allow preselection of values in templating menu()s (patch [SF#1396085])
Richard Jones <richard@users.sourceforge.net>
parents:
3463
diff
changeset
|
2686 value |
|
fd32170475f5
allow preselection of values in templating menu()s (patch [SF#1396085])
Richard Jones <richard@users.sourceforge.net>
parents:
3463
diff
changeset
|
2687 gives a default value to preselect in the menu |
|
3127
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
2688 |
|
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
2689 The remaining keyword arguments are used as conditions for |
|
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
2690 filtering the items in the list - they're passed as the |
| 3597 | 2691 "filterspec" argument to a Class.filter() call. For example:: |
| 2692 | |
| 2693 <span tal:replace="structure context/status/menu" /> | |
| 2694 | |
| 2695 <span tal:replace="python:context.status.menu(order='+name", | |
| 2696 value='chatting', | |
| 2697 filterspec={'status': '1,2,3,4'}" /> | |
|
3127
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
2698 |
|
2883
1ca5ebe9b16a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2858
diff
changeset
|
2699 sorted only on Multilink properties - produce a list of the linked |
|
1ca5ebe9b16a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2858
diff
changeset
|
2700 items sorted by some property, for example:: |
|
1ca5ebe9b16a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2858
diff
changeset
|
2701 |
|
1ca5ebe9b16a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2858
diff
changeset
|
2702 python:context.files.sorted('creation') |
|
1ca5ebe9b16a
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2858
diff
changeset
|
2703 |
|
5903
c3728772c594
Add reverse option to hyperdb property wrapper by David Sowder
John Rouillard <rouilj@ieee.org>
parents:
5897
diff
changeset
|
2704 Will list the files by upload date. While |
|
c3728772c594
Add reverse option to hyperdb property wrapper by David Sowder
John Rouillard <rouilj@ieee.org>
parents:
5897
diff
changeset
|
2705 |
| 5923 | 2706 python:context.files.sorted('creation', reverse=True) |
| 2707 | |
|
5903
c3728772c594
Add reverse option to hyperdb property wrapper by David Sowder
John Rouillard <rouilj@ieee.org>
parents:
5897
diff
changeset
|
2708 Will list the files by upload date in reverse order from |
|
c3728772c594
Add reverse option to hyperdb property wrapper by David Sowder
John Rouillard <rouilj@ieee.org>
parents:
5897
diff
changeset
|
2709 the prior example. |
|
1773
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2710 reverse only on Multilink properties - produce a list of the linked |
|
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2711 items in reverse order |
|
2180
58b6d1747973
Web interface tweaks.
Richard Jones <richard@users.sourceforge.net>
parents:
2159
diff
changeset
|
2712 isset returns True if the property has been set to a value |
|
1773
5f15fb95180c
various cosmetic fixes
Richard Jones <richard@users.sourceforge.net>
parents:
1730
diff
changeset
|
2713 =========== ================================================================ |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2714 |
| 5367 | 2715 __ https://docs.python.org/2/library/time.html |
|
2958
1ae91c2fa5fe
merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents:
2921
diff
changeset
|
2716 |
|
2138
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
2717 All of the above functions perform checks for permissions required to |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
2718 display or edit the data they are manipulating. The simplest case is |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
2719 editing an issue title. Including the expression:: |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
2720 |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
2721 context/title/field |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
2722 |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
2723 Will present the user with an edit field, if they have edit permission. If |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
2724 not, then they will be presented with a static display if they have view |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
2725 permission. If they don't even have view permission, then an error message |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
2726 is raised, preventing the display of the page, indicating that they don't |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
2727 have permission to view the information. |
|
f76d1642014a
doc cleanup, editing and creation of a What's New
Richard Jones <richard@users.sourceforge.net>
parents:
2134
diff
changeset
|
2728 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2729 |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2730 The request variable |
| 1098 | 2731 ~~~~~~~~~~~~~~~~~~~~ |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2732 |
| 3052 | 2733 This is implemented by the ``roundup.cgi.templating.HTMLRequest`` |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2734 class. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2735 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2736 The request variable is packed with information about the current |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2737 request. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2738 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2739 .. taken from ``roundup.cgi.templating.HTMLRequest`` docstring |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2740 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2741 =========== ============================================================ |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2742 Variable Holds |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2743 =========== ============================================================ |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2744 form the CGI form as a cgi.FieldStorage |
|
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2745 env the CGI environment variables |
|
1089
43ab730ee194
instance -> tracker, node -> item
Richard Jones <richard@users.sourceforge.net>
parents:
1083
diff
changeset
|
2746 base the base URL for this tracker |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2747 user a HTMLUser instance for this user |
|
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2748 classname the current classname (possibly None) |
|
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2749 template the current template (suffix, also possibly None) |
|
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2750 form the current CGI form variables in a FieldStorage |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2751 =========== ============================================================ |
| 1083 | 2752 |
| 2753 **Index page specific variables (indexing arguments)** | |
| 2754 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2755 =========== ============================================================ |
| 1083 | 2756 Variable Holds |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2757 =========== ============================================================ |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2758 columns dictionary of the columns to display in an index page |
|
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2759 show a convenience access to columns - request/show/colname will |
| 1098 | 2760 be true if the columns should be displayed, false otherwise |
|
3696
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
2761 sort index sort columns [(direction, column name)] |
|
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
2762 group index grouping properties [(direction, column name)] |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2763 filter properties to filter the index on |
|
3718
0d561b24ceff
support sqlite3
Richard Jones <richard@users.sourceforge.net>
parents:
3717
diff
changeset
|
2764 filterspec values to filter the index on (property=value, eg |
|
0d561b24ceff
support sqlite3
Richard Jones <richard@users.sourceforge.net>
parents:
3717
diff
changeset
|
2765 ``priority=1`` or ``messages.author=42`` |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2766 search_text text to perform a full-text search on for an index |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2767 =========== ============================================================ |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2768 |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2769 There are several methods available on the request variable: |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2770 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2771 =============== ======================================================== |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2772 Method Description |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2773 =============== ======================================================== |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2774 description render a description of the request - handle for the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2775 page title |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2776 indexargs_form render the current index args as form elements |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2777 indexargs_url render the current index args as a URL |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2778 base_javascript render some javascript that is used by other components |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2779 of the templating |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2780 batch run the current index args through a filter and return a |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2781 list of items (see `hyperdb item wrapper`_, and |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2782 `batching`_) |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2783 =============== ======================================================== |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2784 |
| 1142 | 2785 The form variable |
| 2786 ::::::::::::::::: | |
| 2787 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2788 The form variable is a bit special because it's actually a python |
| 1142 | 2789 FieldStorage object. That means that you have two ways to access its |
| 2790 contents. For example, to look up the CGI form value for the variable | |
| 2791 "name", use the path expression:: | |
| 2792 | |
| 2793 request/form/name/value | |
| 2794 | |
| 2795 or the python expression:: | |
| 2796 | |
| 2797 python:request.form['name'].value | |
| 2798 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2799 Note the "item" access used in the python case, and also note the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2800 explicit "value" attribute we have to access. That's because the form |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2801 variables are stored as MiniFieldStorages. If there's more than one |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2802 "name" value in the form, then the above will break since |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2803 ``request/form/name`` is actually a *list* of MiniFieldStorages. So it's |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2804 best to know beforehand what you're dealing with. |
| 1142 | 2805 |
| 2806 | |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2807 The db variable |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2808 ~~~~~~~~~~~~~~~ |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2809 |
| 3052 | 2810 This is implemented by the ``roundup.cgi.templating.HTMLDatabase`` |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2811 class. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2812 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2813 Allows access to all hyperdb classes as attributes of this variable. If |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2814 you want access to the "user" class, for example, you would use:: |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2815 |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2816 db/user |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2817 python:db.user |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2818 |
|
1711
3c3e44aacdb4
Documentation fixes.
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1680
diff
changeset
|
2819 Also, the current id of the current user is available as |
|
1800
a3b1b1dcf639
Use getuid(), not figure_curuserid()
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1780
diff
changeset
|
2820 ``db.getuid()``. This isn't so useful in templates (where you have |
|
1711
3c3e44aacdb4
Documentation fixes.
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1680
diff
changeset
|
2821 ``request/user``), but it can be useful in detectors or interfaces. |
|
3c3e44aacdb4
Documentation fixes.
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1680
diff
changeset
|
2822 |
|
1123
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2823 The access results in a `hyperdb class wrapper`_. |
|
644d3075c2df
more documentation, fixed bug in request/description
Richard Jones <richard@users.sourceforge.net>
parents:
1113
diff
changeset
|
2824 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2825 |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2826 The templates variable |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2827 ~~~~~~~~~~~~~~~~~~~~~~ |
|
1073
cf30c6cdca02
More documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
1070
diff
changeset
|
2828 |
|
4723
42f6c76950a4
Cancel version bump to 1.5.0 - the impact is minimal, so just update
anatoly techtonik <techtonik@gmail.com>
parents:
4695
diff
changeset
|
2829 This was implemented by the ``roundup.cgi.templating.Templates`` |
|
42f6c76950a4
Cancel version bump to 1.5.0 - the impact is minimal, so just update
anatoly techtonik <techtonik@gmail.com>
parents:
4695
diff
changeset
|
2830 class before 1.4.20. In later versions it is the instance of appropriate |
|
42f6c76950a4
Cancel version bump to 1.5.0 - the impact is minimal, so just update
anatoly techtonik <techtonik@gmail.com>
parents:
4695
diff
changeset
|
2831 template engine loader class. |
|
42f6c76950a4
Cancel version bump to 1.5.0 - the impact is minimal, so just update
anatoly techtonik <techtonik@gmail.com>
parents:
4695
diff
changeset
|
2832 |
|
42f6c76950a4
Cancel version bump to 1.5.0 - the impact is minimal, so just update
anatoly techtonik <techtonik@gmail.com>
parents:
4695
diff
changeset
|
2833 This variable is used to access other templates in expressions and |
|
42f6c76950a4
Cancel version bump to 1.5.0 - the impact is minimal, so just update
anatoly techtonik <techtonik@gmail.com>
parents:
4695
diff
changeset
|
2834 template macros. It doesn't have any useful methods defined. The |
|
42f6c76950a4
Cancel version bump to 1.5.0 - the impact is minimal, so just update
anatoly techtonik <techtonik@gmail.com>
parents:
4695
diff
changeset
|
2835 templates can be accessed using the following path expression:: |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2836 |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2837 templates/name |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2838 |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2839 or the python expression:: |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2840 |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2841 templates[name] |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2842 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2843 where "name" is the name of the template you wish to access. The |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2844 template has one useful attribute, namely "macros". To access a specific |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2845 macro (called "macro_name"), use the path expression:: |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2846 |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2847 templates/name/macros/macro_name |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2848 |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2849 or the python expression:: |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2850 |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2851 templates[name].macros[macro_name] |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2852 |
|
2855
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2853 The repeat variable |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2854 ~~~~~~~~~~~~~~~~~~~ |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2855 |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2856 The repeat variable holds an entry for each active iteration. That is, if |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2857 you have a ``tal:repeat="user db/users"`` command, then there will be a |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2858 repeat variable entry called "user". This may be accessed as either:: |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2859 |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2860 repeat/user |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2861 python:repeat['user'] |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2862 |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2863 The "user" entry has a number of methods available for information: |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2864 |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2865 =============== ========================================================= |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2866 Method Description |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2867 =============== ========================================================= |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2868 first True if the current item is the first in the sequence. |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2869 last True if the current item is the last in the sequence. |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2870 even True if the current item is an even item in the sequence. |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2871 odd True if the current item is an odd item in the sequence. |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2872 number Current position in the sequence, starting from 1. |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2873 letter Current position in the sequence as a letter, a through |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2874 z, then aa through zz, and so on. |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2875 Letter Same as letter(), except uppercase. |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2876 roman Current position in the sequence as lowercase roman |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2877 numerals. |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2878 Roman Same as roman(), except uppercase. |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2879 =============== ========================================================= |
|
874bf6abad42
doc for repeat variable
Richard Jones <richard@users.sourceforge.net>
parents:
2739
diff
changeset
|
2880 |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2881 |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2882 The utils variable |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
2883 ~~~~~~~~~~~~~~~~~~ |
|
4921
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
2884 .. _templating utilities: |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2885 |
| 3052 | 2886 This is implemented by the |
|
4921
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
2887 ``roundup.cgi.templating.TemplatingUtils`` class, which may be extended |
|
8430576a5625
doc: Reverse engineer extension handling and add separate chapter
anatoly techtonik <techtonik@gmail.com>
parents:
4891
diff
changeset
|
2888 with additional methods by extensions_. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2889 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2890 =============== ======================================================== |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2891 Method Description |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2892 =============== ======================================================== |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2893 Batch return a batch object using the supplied list |
|
2180
58b6d1747973
Web interface tweaks.
Richard Jones <richard@users.sourceforge.net>
parents:
2159
diff
changeset
|
2894 url_quote quote some text as safe for a URL (ie. space, %, ...) |
|
58b6d1747973
Web interface tweaks.
Richard Jones <richard@users.sourceforge.net>
parents:
2159
diff
changeset
|
2895 html_quote quote some text as safe in HTML (ie. <, >, ...) |
|
3292
8c7b522dc934
added date selection popup windows (thanks Marcus Priesch)
Richard Jones <richard@users.sourceforge.net>
parents:
3291
diff
changeset
|
2896 html_calendar renders an HTML calendar used by the |
|
8c7b522dc934
added date selection popup windows (thanks Marcus Priesch)
Richard Jones <richard@users.sourceforge.net>
parents:
3291
diff
changeset
|
2897 ``_generic.calendar.html`` template (itself invoked by |
|
8c7b522dc934
added date selection popup windows (thanks Marcus Priesch)
Richard Jones <richard@users.sourceforge.net>
parents:
3291
diff
changeset
|
2898 the popupCalendar DateHTMLProperty method |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2899 =============== ======================================================== |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2900 |
|
1270
c3424abf7f77
added ability to implement new templating utility methods
Richard Jones <richard@users.sourceforge.net>
parents:
1262
diff
changeset
|
2901 |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2902 Batching |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2903 :::::::: |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2904 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2905 Use Batch to turn a list of items, or item ids of a given class, into a |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2906 series of batches. Its usage is:: |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2907 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2908 python:utils.Batch(sequence, size, start, end=0, orphan=0, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2909 overlap=0) |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2910 |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2911 or, to get the current index batch:: |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2912 |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2913 request/batch |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2914 |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2915 The parameters are: |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2916 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2917 ========= ============================================================== |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2918 Parameter Usage |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2919 ========= ============================================================== |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2920 sequence a list of HTMLItems |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2921 size how big to make the sequence. |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2922 start where to start (0-indexed) in the sequence. |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2923 end where to end (0-indexed) in the sequence. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2924 orphan if the next batch would contain less items than this value, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2925 then it is combined with this batch |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2926 overlap the number of items shared between adjacent batches |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2927 ========= ============================================================== |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2928 |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2929 All of the parameters are assigned as attributes on the batch object. In |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2930 addition, it has several more attributes: |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2931 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2932 =============== ======================================================== |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2933 Attribute Description |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2934 =============== ======================================================== |
| 3052 | 2935 start indicates the start index of the batch. *Unlike |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2936 the argument, is a 1-based index (I know, lame)* |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2937 first indicates the start index of the batch *as a 0-based |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2938 index* |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2939 length the actual number of elements in the batch |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2940 sequence_length the length of the original, unbatched, sequence. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2941 =============== ======================================================== |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2942 |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2943 And several methods: |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2944 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2945 =============== ======================================================== |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2946 Method Description |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2947 =============== ======================================================== |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2948 previous returns a new Batch with the previous batch settings |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2949 next returns a new Batch with the next batch settings |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2950 propchanged detect if the named property changed on the current item |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2951 when compared to the last item |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2952 =============== ======================================================== |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2953 |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2954 An example of batching:: |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2955 |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2956 <table class="otherinfo"> |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2957 <tr><th colspan="4" class="header">Existing Keywords</th></tr> |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2958 <tr tal:define="keywords db/keyword/list" |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2959 tal:repeat="start python:range(0, len(keywords), 4)"> |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2960 <td tal:define="batch python:utils.Batch(keywords, 4, start)" |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2961 tal:repeat="keyword batch" tal:content="keyword/name"> |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2962 keyword here</td> |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2963 </tr> |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2964 </table> |
|
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2965 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2966 ... which will produce a table with four columns containing the items of |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2967 the "keyword" class (well, their "name" anyway). |
|
1124
1fc1f92c5f31
more doc, bugfix in Batch
Richard Jones <richard@users.sourceforge.net>
parents:
1123
diff
changeset
|
2968 |
| 2910 | 2969 |
|
4325
6ec048310de7
add simple doc about translating customised tracker content
Richard Jones <richard@users.sourceforge.net>
parents:
4300
diff
changeset
|
2970 Translations |
|
6ec048310de7
add simple doc about translating customised tracker content
Richard Jones <richard@users.sourceforge.net>
parents:
4300
diff
changeset
|
2971 ~~~~~~~~~~~~ |
|
6ec048310de7
add simple doc about translating customised tracker content
Richard Jones <richard@users.sourceforge.net>
parents:
4300
diff
changeset
|
2972 |
|
6ec048310de7
add simple doc about translating customised tracker content
Richard Jones <richard@users.sourceforge.net>
parents:
4300
diff
changeset
|
2973 Should you wish to enable multiple languages in template content that you |
|
6ec048310de7
add simple doc about translating customised tracker content
Richard Jones <richard@users.sourceforge.net>
parents:
4300
diff
changeset
|
2974 create you'll need to add new locale files in the tracker home under a |
|
6ec048310de7
add simple doc about translating customised tracker content
Richard Jones <richard@users.sourceforge.net>
parents:
4300
diff
changeset
|
2975 ``locale`` directory. Use the instructions in the ``developer's guide`` to |
|
6ec048310de7
add simple doc about translating customised tracker content
Richard Jones <richard@users.sourceforge.net>
parents:
4300
diff
changeset
|
2976 create the locale files. |
|
6ec048310de7
add simple doc about translating customised tracker content
Richard Jones <richard@users.sourceforge.net>
parents:
4300
diff
changeset
|
2977 |
|
6ec048310de7
add simple doc about translating customised tracker content
Richard Jones <richard@users.sourceforge.net>
parents:
4300
diff
changeset
|
2978 |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2979 Displaying Properties |
| 1098 | 2980 --------------------- |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2981 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2982 Properties appear in the user interface in three contexts: in indices, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2983 in editors, and as search arguments. For each type of property, there |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2984 are several display possibilities. For example, in an index view, a |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2985 string property may just be printed as a plain string, but in an editor |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2986 view, that property may be displayed in an editable field. |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2987 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2988 |
|
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2989 Index Views |
| 1098 | 2990 ----------- |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2991 |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
2992 This is one of the class context views. It is also the default view for |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
2993 classes. The template used is "*classname*.index". |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
2994 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2995 |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2996 Index View Specifiers |
| 1098 | 2997 ~~~~~~~~~~~~~~~~~~~~~ |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2998 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
2999 An index view specifier (URL fragment) looks like this (whitespace has |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3000 been added for clarity):: |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3001 |
|
3036
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3002 /issue?status=unread,in-progress,resolved& |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
3003 keyword=security,ui& |
|
3696
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3004 @group=priority,-status& |
|
3036
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3005 @sort=-activity& |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
3006 @filters=status,keyword& |
|
3036
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3007 @columns=title,status,fixer |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3008 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3009 The index view is determined by two parts of the specifier: the layout |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3010 part and the filter part. The layout part consists of the query |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3011 parameters that begin with colons, and it determines the way that the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3012 properties of selected items are displayed. The filter part consists of |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3013 all the other query parameters, and it determines the criteria by which |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3014 items are selected for display. The filter part is interactively |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3015 manipulated with the form widgets displayed in the filter section. The |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3016 layout part is interactively manipulated by clicking on the column |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3017 headings in the table. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3018 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3019 The filter part selects the union of the sets of items with values |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3020 matching any specified Link properties and the intersection of the sets |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3021 of items with values matching any specified Multilink properties. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3022 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3023 The example specifies an index of "issue" items. Only items with a |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3024 "status" of either "unread" or "in-progress" or "resolved" are |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
3025 displayed, and only items with "keyword" values including both "security" |
|
3696
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3026 and "ui" are displayed. The items are grouped by priority arranged in |
|
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3027 ascending order and in descending order by status; and within |
|
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3028 groups, sorted by activity, arranged in descending order. The filter |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
3029 section shows filters for the "status" and "keyword" properties, and the |
|
3696
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3030 table includes columns for the "title", "status", and "fixer" |
|
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3031 properties. |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3032 |
|
3036
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3033 ============ ============================================================= |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3034 Argument Description |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3035 ============ ============================================================= |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3036 @sort sort by prop name, optionally preceeded with '-' to give |
|
3696
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3037 descending or nothing for ascending sorting. Several |
|
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3038 properties can be specified delimited with comma. |
|
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3039 Internally a search-page using several sort properties may |
|
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3040 use @sort0, @sort1 etc. with option @sortdir0, @sortdir1 |
|
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3041 etc. for the direction of sorting (a non-empty value of |
|
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3042 sortdir0 specifies reverse order). |
|
3036
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3043 @group group by prop name, optionally preceeded with '-' or to sort |
|
3696
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3044 in descending or nothing for ascending order. Several |
|
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3045 properties can be specified delimited with comma. |
|
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3046 Internally a search-page using several grouping properties may |
|
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3047 use @group0, @group1 etc. with option @groupdir0, @groupdir1 |
|
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3048 etc. for the direction of grouping (a non-empty value of |
|
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3049 groupdir0 specifies reverse order). |
|
3036
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3050 @columns selects the columns that should be displayed. Default is |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3051 all. |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3052 @filter indicates which properties are being used in filtering. |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3053 Default is none. |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3054 propname selects the values the item properties given by propname must |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3055 have (very basic search/filter). |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3056 @search_text if supplied, performs a full-text search (message bodies, |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3057 issue titles, etc) |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3058 ============ ============================================================= |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3059 |
| 2910 | 3060 |
|
1057
8b9feca82090
some progress
Richard Jones <richard@users.sourceforge.net>
parents:
1003
diff
changeset
|
3061 Searching Views |
| 1098 | 3062 --------------- |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3063 |
| 3052 | 3064 .. note:: |
| 3065 if you add a new column to the ``@columns`` form variable potentials | |
| 3066 then you will need to add the column to the appropriate `index views`_ | |
| 3067 template so that it is actually displayed. | |
|
1320
3758a5af985f
Lots of little fixes in this update:
Richard Jones <richard@users.sourceforge.net>
parents:
1317
diff
changeset
|
3068 |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3069 This is one of the class context views. The template used is typically |
|
1245
d8c98af869ff
merge from maint-0-5
Richard Jones <richard@users.sourceforge.net>
parents:
1244
diff
changeset
|
3070 "*classname*.search". The form on this page should have "search" as its |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3071 ``@action`` variable. The "search" action: |
|
1245
d8c98af869ff
merge from maint-0-5
Richard Jones <richard@users.sourceforge.net>
parents:
1244
diff
changeset
|
3072 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3073 - sets up additional filtering, as well as performing indexed text |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3074 searching |
|
3036
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3075 - sets the ``@filter`` variable correctly |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3076 - saves the query off if ``@query_name`` is set. |
|
1245
d8c98af869ff
merge from maint-0-5
Richard Jones <richard@users.sourceforge.net>
parents:
1244
diff
changeset
|
3077 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3078 The search page should lay out any fields that you wish to allow the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3079 user to search on. If your schema contains a large number of properties, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3080 you should be wary of making all of those properties available for |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3081 searching, as this can cause confusion. If the additional properties are |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3082 Strings, consider having their value indexed, and then they will be |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3083 searchable using the full text indexed search. This is both faster, and |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3084 more useful for the end user. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3085 |
|
3036
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3086 If the search view does specify the "search" ``@action``, then it may also |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3087 provide an additional argument: |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3088 |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3089 ============ ============================================================= |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3090 Argument Description |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3091 ============ ============================================================= |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3092 @query_name if supplied, the index parameters (including @search_text) |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3093 will be saved off as a the query item and registered against |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3094 the user's queries property. Note that the *classic* template |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3095 schema has this ability, but the *minimal* template schema |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3096 does not. |
|
8fa6b5747a53
updated searching / indexing docs
Richard Jones <richard@users.sourceforge.net>
parents:
2991
diff
changeset
|
3097 ============ ============================================================= |
|
1245
d8c98af869ff
merge from maint-0-5
Richard Jones <richard@users.sourceforge.net>
parents:
1244
diff
changeset
|
3098 |
|
d8c98af869ff
merge from maint-0-5
Richard Jones <richard@users.sourceforge.net>
parents:
1244
diff
changeset
|
3099 |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3100 Item Views |
| 1098 | 3101 ---------- |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3102 |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3103 The basic view of a hyperdb item is provided by the "*classname*.item" |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3104 template. It generally has three sections; an "editor", a "spool" and a |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3105 "history" section. |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3106 |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3107 |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3108 Editor Section |
| 1098 | 3109 ~~~~~~~~~~~~~~ |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3110 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3111 The editor section is used to manipulate the item - it may be a static |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3112 display if the user doesn't have permission to edit the item. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3113 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3114 Here's an example of a basic editor template (this is the default |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3115 "classic" template issue item edit form - from the "issue.item.html" |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3116 template):: |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3117 |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3118 <table class="form"> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3119 <tr> |
|
1825
fad32dafc174
Replaced all uses of the 'nowrap' attribute with its CSS equivalent:
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1817
diff
changeset
|
3120 <th>Title</th> |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3121 <td colspan="3" tal:content="structure python:context.title.field(size=60)">title</td> |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3122 </tr> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3123 |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3124 <tr> |
|
1825
fad32dafc174
Replaced all uses of the 'nowrap' attribute with its CSS equivalent:
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1817
diff
changeset
|
3125 <th>Priority</th> |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3126 <td tal:content="structure context/priority/menu">priority</td> |
|
1825
fad32dafc174
Replaced all uses of the 'nowrap' attribute with its CSS equivalent:
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1817
diff
changeset
|
3127 <th>Status</th> |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3128 <td tal:content="structure context/status/menu">status</td> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3129 </tr> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3130 |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3131 <tr> |
|
1825
fad32dafc174
Replaced all uses of the 'nowrap' attribute with its CSS equivalent:
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1817
diff
changeset
|
3132 <th>Superseder</th> |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3133 <td> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3134 <span tal:replace="structure python:context.superseder.field(showid=1, size=20)" /> |
|
1113
a95428868bf4
Added the missing keyword/topic interface to classic template (blush)
Richard Jones <richard@users.sourceforge.net>
parents:
1100
diff
changeset
|
3135 <span tal:replace="structure python:db.issue.classhelp('id,title')" /> |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3136 <span tal:condition="context/superseder"> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3137 <br>View: <span tal:replace="structure python:context.superseder.link(showid=1)" /> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3138 </span> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3139 </td> |
|
1825
fad32dafc174
Replaced all uses of the 'nowrap' attribute with its CSS equivalent:
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1817
diff
changeset
|
3140 <th>Nosy List</th> |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3141 <td> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3142 <span tal:replace="structure context/nosy/field" /> |
|
1113
a95428868bf4
Added the missing keyword/topic interface to classic template (blush)
Richard Jones <richard@users.sourceforge.net>
parents:
1100
diff
changeset
|
3143 <span tal:replace="structure python:db.user.classhelp('username,realname,address,phone')" /> |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3144 </td> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3145 </tr> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3146 |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3147 <tr> |
|
1825
fad32dafc174
Replaced all uses of the 'nowrap' attribute with its CSS equivalent:
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1817
diff
changeset
|
3148 <th>Assigned To</th> |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3149 <td tal:content="structure context/assignedto/menu"> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3150 assignedto menu |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3151 </td> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3152 <td> </td> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3153 <td> </td> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3154 </tr> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3155 |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3156 <tr> |
|
1825
fad32dafc174
Replaced all uses of the 'nowrap' attribute with its CSS equivalent:
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1817
diff
changeset
|
3157 <th>Change Note</th> |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3158 <td colspan="3"> |
|
1089
43ab730ee194
instance -> tracker, node -> item
Richard Jones <richard@users.sourceforge.net>
parents:
1083
diff
changeset
|
3159 <textarea name=":note" wrap="hard" rows="5" cols="60"></textarea> |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3160 </td> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3161 </tr> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3162 |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3163 <tr> |
|
1825
fad32dafc174
Replaced all uses of the 'nowrap' attribute with its CSS equivalent:
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1817
diff
changeset
|
3164 <th>File</th> |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3165 <td colspan="3"><input type="file" name=":file" size="40"></td> |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3166 </tr> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3167 |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3168 <tr> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3169 <td> </td> |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3170 <td colspan="3" tal:content="structure context/submit"> |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3171 submit button will go here |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3172 </td> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3173 </tr> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3174 </table> |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3175 |
|
673
604c84696461
link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents:
659
diff
changeset
|
3176 |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3177 When a change is submitted, the system automatically generates a message |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3178 describing the changed properties. As shown in the example, the editor |
|
1089
43ab730ee194
instance -> tracker, node -> item
Richard Jones <richard@users.sourceforge.net>
parents:
1083
diff
changeset
|
3179 template can use the ":note" and ":file" fields, which are added to the |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3180 standard changenote message generated by Roundup. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3181 |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3182 |
| 1638 | 3183 Form values |
| 3184 ::::::::::: | |
| 3185 | |
| 3186 We have a number of ways to pull properties out of the form in order to | |
| 3187 meet the various needs of: | |
| 3188 | |
| 3189 1. editing the current item (perhaps an issue item) | |
| 3190 2. editing information related to the current item (eg. messages or | |
| 3191 attached files) | |
| 3192 3. creating new information to be linked to the current item (eg. time | |
| 3193 spent on an issue) | |
| 3194 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3195 In the following, ``<bracketed>`` values are variable, ":" may be one of |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3196 ":" or "@", and other text ("required") is fixed. |
| 1638 | 3197 |
| 3198 Properties are specified as form variables: | |
| 3199 | |
| 3200 ``<propname>`` | |
| 3201 property on the current context item | |
| 3202 | |
| 3203 ``<designator>:<propname>`` | |
| 3204 property on the indicated item (for editing related information) | |
| 3205 | |
| 3206 ``<classname>-<N>:<propname>`` | |
| 3207 property on the Nth new item of classname (generally for creating new | |
| 3208 items to attach to the current item) | |
| 3209 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3210 Once we have determined the "propname", we check to see if it is one of |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3211 the special form values: |
| 1638 | 3212 |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3213 ``@required`` |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3214 The named property values must be supplied or a ValueError will be |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3215 raised. |
| 1638 | 3216 |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3217 ``@remove@<propname>=id(s)`` |
| 1638 | 3218 The ids will be removed from the multilink property. |
| 3219 | |
| 3220 ``:add:<propname>=id(s)`` | |
| 3221 The ids will be added to the multilink property. | |
| 3222 | |
| 3223 ``:link:<propname>=<designator>`` | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3224 Used to add a link to new items created during edit. These are |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3225 collected and returned in ``all_links``. This will result in an |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3226 additional linking operation (either Link set or Multilink append) |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3227 after the edit/create is done using ``all_props`` in ``_editnodes``. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3228 The <propname> on the current item will be set/appended the id of the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3229 newly created item of class <designator> (where <designator> must be |
| 1638 | 3230 <classname>-<N>). |
| 3231 | |
| 3232 Any of the form variables may be prefixed with a classname or | |
| 3233 designator. | |
| 3234 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3235 Two special form values are supported for backwards compatibility: |
| 1638 | 3236 |
| 3237 ``:note`` | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3238 create a message (with content, author and date), linked to the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3239 context item. This is ALWAYS designated "msg-1". |
| 1638 | 3240 ``:file`` |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3241 create a file, attached to the current item and any message created by |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3242 :note. This is ALWAYS designated "file-1". |
| 1638 | 3243 |
| 3244 | |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3245 Spool Section |
| 1098 | 3246 ~~~~~~~~~~~~~ |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3247 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3248 The spool section lists related information like the messages and files |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3249 of an issue. |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3250 |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3251 TODO |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3252 |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3253 |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3254 History Section |
| 1098 | 3255 ~~~~~~~~~~~~~~~ |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3256 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3257 The final section displayed is the history of the item - its database |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3258 journal. This is generally generated with the template:: |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3259 |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3260 <tal:block tal:replace="structure context/history" /> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3261 |
|
5232
462b0f76fce8
issue2550864 - Potential information leakage via journal/history
John Rouillard <rouilj@ieee.org>
parents:
5231
diff
changeset
|
3262 or:: |
|
462b0f76fce8
issue2550864 - Potential information leakage via journal/history
John Rouillard <rouilj@ieee.org>
parents:
5231
diff
changeset
|
3263 |
|
462b0f76fce8
issue2550864 - Potential information leakage via journal/history
John Rouillard <rouilj@ieee.org>
parents:
5231
diff
changeset
|
3264 <tal:block |
|
462b0f76fce8
issue2550864 - Potential information leakage via journal/history
John Rouillard <rouilj@ieee.org>
parents:
5231
diff
changeset
|
3265 tal:replace="structure python:context.history(showall=True)" /> |
|
462b0f76fce8
issue2550864 - Potential information leakage via journal/history
John Rouillard <rouilj@ieee.org>
parents:
5231
diff
changeset
|
3266 |
|
462b0f76fce8
issue2550864 - Potential information leakage via journal/history
John Rouillard <rouilj@ieee.org>
parents:
5231
diff
changeset
|
3267 if you want to show history entries for quiet properties. |
|
462b0f76fce8
issue2550864 - Potential information leakage via journal/history
John Rouillard <rouilj@ieee.org>
parents:
5231
diff
changeset
|
3268 |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3269 *To be done:* |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3270 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3271 *The actual history entries of the item may be accessed for manual |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3272 templating through the "journal" method of the item*:: |
|
1074
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3273 |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3274 <tal:block tal:repeat="entry context/journal"> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3275 a journal entry |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3276 </tal:block> |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3277 |
|
954ad22eb7d9
more doc, more cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1073
diff
changeset
|
3278 *where each journal entry is an HTMLJournalEntry.* |
|
659
e429649ed124
More documentation cleanups.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3279 |
| 2910 | 3280 |
| 1098 | 3281 Defining new web actions |
| 3282 ------------------------ | |
| 3283 | |
|
2016
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3284 You may define new actions to be triggered by the ``@action`` form variable. |
| 2915 | 3285 These are added to the tracker ``extensions`` directory and registered |
| 3286 using ``instance.registerAction``. | |
| 3287 | |
| 3288 All the existing Actions are defined in ``roundup.cgi.actions``. | |
|
2016
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3289 |
|
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3290 Adding action classes takes three steps; first you `define the new |
|
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3291 action class`_, then you `register the action class`_ with the cgi |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3292 interface so it may be triggered by the ``@action`` form variable. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3293 Finally you `use the new action`_ in your HTML form. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3294 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3295 See "`setting up a "wizard" (or "druid") for controlled adding of |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3296 issues`_" for an example. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3297 |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3298 |
|
2016
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3299 Define the new action class |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3300 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3301 |
| 2915 | 3302 Create a new action class in your tracker's ``extensions`` directory, for |
| 3303 example ``myaction.py``:: | |
|
2016
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3304 |
|
3291
bb08ffc56967
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
3289
diff
changeset
|
3305 from roundup.cgi.actions import Action |
|
bb08ffc56967
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
3289
diff
changeset
|
3306 |
|
2016
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3307 class MyAction(Action): |
|
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3308 def handle(self): |
|
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3309 ''' Perform some action. No return value is required. |
|
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3310 ''' |
|
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3311 |
| 2915 | 3312 The *self.client* attribute is an instance of ``roundup.cgi.client.Client``. |
| 3313 See the docstring of that class for details of what it can do. | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3314 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3315 The method will typically check the ``self.form`` variable's contents. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3316 It may then: |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3317 |
|
4880
ca692423e401
Different approach to fix XSS in issue2550817
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4790
diff
changeset
|
3318 - add information to ``self.client._ok_message`` |
|
ca692423e401
Different approach to fix XSS in issue2550817
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4790
diff
changeset
|
3319 or ``self.client._error_message`` (by using ``self.client.add_ok_message`` |
|
ca692423e401
Different approach to fix XSS in issue2550817
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4790
diff
changeset
|
3320 or ``self.client.add_error_message``, respectively) |
|
2016
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3321 - change the ``self.client.template`` variable to alter what the user will see |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3322 next |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3323 - raise Unauthorised, SendStaticFile, SendFile, NotFound or Redirect |
|
2016
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3324 exceptions (import them from roundup.cgi.exceptions) |
|
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3325 |
|
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3326 |
|
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3327 Register the action class |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3328 ~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3329 |
| 2915 | 3330 The class is now written, but isn't available to the user until you register |
| 3331 it with the following code appended to your ``myaction.py`` file:: | |
| 3332 | |
| 3333 def init(instance): | |
| 3334 instance.registerAction('myaction', myActionClass) | |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3335 |
|
2016
2112962f5bb1
Update documentation for the client.py split and add an upgrade notice.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2009
diff
changeset
|
3336 This maps the action name "myaction" to the action class we defined. |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3337 |
| 2915 | 3338 |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3339 Use the new action |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3340 ~~~~~~~~~~~~~~~~~~ |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3341 |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3342 In your HTML form, add a hidden form element like so:: |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3343 |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3344 <input type="hidden" name="@action" value="myaction"> |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3345 |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3346 where "myaction" is the name you registered in the previous step. |
|
1003
f89b8d32291b
Hack hack hack...
Richard Jones <richard@users.sourceforge.net>
parents:
935
diff
changeset
|
3347 |
|
2046
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3348 Actions may return content to the user |
|
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3349 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3350 |
|
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3351 Actions generally perform some database manipulation and then pass control |
|
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3352 on to the rendering of a template in the current context (see `Determining |
|
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3353 web context`_ for how that works.) Some actions will want to generate the |
|
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3354 actual content returned to the user. Action methods may return their own |
|
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3355 content string to be displayed to the user, overriding the templating step. |
|
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3356 In this situation, we assume that the content is HTML by default. You may |
|
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3357 override the content type indicated to the user by calling ``setHeader``:: |
|
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3358 |
|
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3359 self.client.setHeader('Content-Type', 'text/csv') |
|
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3360 |
|
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3361 This example indicates that the value sent back to the user is actually |
|
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3362 comma-separated value content (eg. something to be loaded into a |
|
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3363 spreadsheet or database). |
|
f913b6beac35
document and make easier the actions-returning-content idiom
Richard Jones <richard@users.sourceforge.net>
parents:
2034
diff
changeset
|
3364 |
|
910
299f4890427d
documentation reorg post-new-security
Richard Jones <richard@users.sourceforge.net>
parents:
909
diff
changeset
|
3365 |
| 2910 | 3366 8-bit character set support in Web interface |
| 3367 -------------------------------------------- | |
| 3368 | |
| 3369 The web interface uses UTF-8 default. It may be overridden in both forms | |
| 3370 and a browser cookie. | |
| 3371 | |
| 3372 - In forms, use the ``@charset`` variable. | |
| 3373 - To use the cookie override, have the ``roundup_charset`` cookie set. | |
| 3374 | |
| 3375 In both cases, the value is a valid charset name (eg. ``utf-8`` or | |
| 3376 ``kio8-r``). | |
| 3377 | |
| 3378 Inside Roundup, all strings are stored and processed in utf-8. | |
| 3379 Unfortunately, some older browsers do not work properly with | |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3380 utf-8-encoded pages (e.g. Netscape Navigator 4 displays wrong |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3381 characters in form fields). This version allows one to change |
| 2910 | 3382 the character set for http transfers. To do so, you may add |
| 3383 the following code to your ``page.html`` template:: | |
| 3384 | |
| 3385 <tal:block define="uri string:${request/base}${request/env/PATH_INFO}"> | |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3386 <a tal:attributes="href python:request.indexargs_url(uri, |
| 2910 | 3387 {'@charset':'utf-8'})">utf-8</a> |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3388 <a tal:attributes="href python:request.indexargs_url(uri, |
| 2910 | 3389 {'@charset':'koi8-r'})">koi8-r</a> |
| 3390 </tal:block> | |
| 3391 | |
| 3392 (substitute ``koi8-r`` with appropriate charset for your language). | |
| 3393 Charset preference is kept in the browser cookie ``roundup_charset``. | |
| 3394 | |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3395 ``meta http-equiv`` lines added to the tracker templates in version 0.6.0 |
| 2910 | 3396 should be changed to include actual character set name:: |
| 3397 | |
| 3398 <meta http-equiv="Content-Type" | |
| 3399 tal:attributes="content string:text/html;; charset=${request/client/charset}" | |
| 3400 /> | |
| 3401 | |
| 3402 The charset is also sent in the http header. | |
| 3403 | |
| 3404 | |
| 1100 | 3405 Examples |
| 3406 ======== | |
| 3407 | |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3408 .. contents:: |
|
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3409 :local: |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3410 :depth: 2 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3411 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3412 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3413 Changing what's stored in the database |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3414 -------------------------------------- |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3415 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3416 The following examples illustrate ways to change the information stored in |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3417 the database. |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
3418 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3419 |
| 1228 | 3420 Adding a new field to the classic schema |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3421 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 1100 | 3422 |
| 3122 | 3423 This example shows how to add a simple field (a due date) to the default |
| 3424 classic schema. It does not add any additional behaviour, such as enforcing | |
| 3425 the due date, or causing automatic actions to fire if the due date passes. | |
| 3426 | |
|
3409
80dc8011228e
mention schema mutation
Richard Jones <richard@users.sourceforge.net>
parents:
3404
diff
changeset
|
3427 You add new fields by editing the ``schema.py`` file in you tracker's home. |
|
80dc8011228e
mention schema mutation
Richard Jones <richard@users.sourceforge.net>
parents:
3404
diff
changeset
|
3428 Schema changes are automatically applied to the database on the next |
|
80dc8011228e
mention schema mutation
Richard Jones <richard@users.sourceforge.net>
parents:
3404
diff
changeset
|
3429 tracker access (note that roundup-server would need to be restarted as it |
|
80dc8011228e
mention schema mutation
Richard Jones <richard@users.sourceforge.net>
parents:
3404
diff
changeset
|
3430 caches the schema). |
| 3122 | 3431 |
|
3818
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3432 1. Modify the ``schema.py``:: |
| 3122 | 3433 |
| 3434 issue = IssueClass(db, "issue", | |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
3435 assignedto=Link("user"), keyword=Multilink("keyword"), |
| 3122 | 3436 priority=Link("priority"), status=Link("status"), |
|
3127
021b131bd816
doc fixes, one more fix to the permissions-in-listings fix
Richard Jones <richard@users.sourceforge.net>
parents:
3126
diff
changeset
|
3437 due_date=Date()) |
| 3122 | 3438 |
|
3818
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3439 2. Add an edit field to the ``issue.item.html`` template:: |
| 3122 | 3440 |
| 3441 <tr> | |
| 3442 <th>Due Date</th> | |
| 3443 <td tal:content="structure context/due_date/field" /> | |
|
3818
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3444 </tr> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3445 |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3446 If you want to show only the date part of due_date then do this instead:: |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3447 |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3448 <tr> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3449 <th>Due Date</th> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3450 <td tal:content="structure python:context.due_date.field(format='%Y-%m-%d')" /> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3451 </tr> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3452 |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3453 3. Add the property to the ``issue.index.html`` page:: |
| 3122 | 3454 |
|
3123
5894c7bea8ce
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
3122
diff
changeset
|
3455 (in the heading row) |
|
5894c7bea8ce
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
3122
diff
changeset
|
3456 <th tal:condition="request/show/due_date">Due Date</th> |
|
5894c7bea8ce
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
3122
diff
changeset
|
3457 (in the data row) |
|
3818
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3458 <td tal:condition="request/show/due_date" |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3459 tal:content="i/due_date" /> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3460 |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3461 If you want format control of the display of the due date you can |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3462 enter the following in the data row to show only the actual due date:: |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3463 |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3464 <td tal:condition="request/show/due_date" |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3465 tal:content="python:i.due_date.pretty('%Y-%m-%d')"> </td> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3466 |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3467 4. Add the property to the ``issue.search.html`` page:: |
| 3122 | 3468 |
| 3469 <tr tal:define="name string:due_date"> | |
| 3470 <th i18n:translate="">Due Date:</th> | |
| 3471 <td metal:use-macro="search_input"></td> | |
| 3472 <td metal:use-macro="column_input"></td> | |
| 3473 <td metal:use-macro="sort_input"></td> | |
| 3474 <td metal:use-macro="group_input"></td> | |
| 3475 </tr> | |
| 3476 | |
|
3818
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3477 5. If you wish for the due date to appear in the standard views listed |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3478 in the sidebar of the web interface then you'll need to add "due_date" |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3479 to the columns and columns_showall lists in your ``page.html``:: |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3480 |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3481 columns string:id,activity,due_date,title,creator,status; |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3482 columns_showall string:id,activity,due_date,title,creator,assignedto,status; |
| 3122 | 3483 |
| 3484 Adding a new constrained field to the classic schema | |
| 3485 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| 3486 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3487 This example shows how to add a new constrained property (i.e. a |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3488 selection of distinct values) to your tracker. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3489 |
| 1098 | 3490 |
| 3491 Introduction | |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3492 :::::::::::: |
| 1098 | 3493 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3494 To make the classic schema of Roundup useful as a TODO tracking system |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3495 for a group of systems administrators, it needs an extra data field per |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3496 issue: a category. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3497 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3498 This would let sysadmins quickly list all TODOs in their particular area |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3499 of interest without having to do complex queries, and without relying on |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3500 the spelling capabilities of other sysadmins (a losing proposition at |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3501 best). |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3502 |
| 1098 | 3503 |
| 3504 Adding a field to the database | |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3505 :::::::::::::::::::::::::::::: |
| 1098 | 3506 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3507 This is the easiest part of the change. The category would just be a |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3508 plain string, nothing fancy. To change what is in the database you need |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3509 to add some lines to the ``schema.py`` file of your tracker instance. |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3510 Under the comment:: |
|
1235
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3511 |
|
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3512 # add any additional database schema configuration here |
|
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3513 |
|
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3514 add:: |
| 1098 | 3515 |
| 3516 category = Class(db, "category", name=String()) | |
| 3517 category.setkey("name") | |
| 3518 | |
| 3519 Here we are setting up a chunk of the database which we are calling | |
| 3520 "category". It contains a string, which we are refering to as "name" for | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3521 lack of a more imaginative title. (Since "name" is one of the properties |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3522 that Roundup looks for on items if you do not set a key for them, it's |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3523 probably a good idea to stick with it for new classes if at all |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3524 appropriate.) Then we are setting the key of this chunk of the database |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3525 to be that "name". This is equivalent to an index for database types. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3526 This also means that there can only be one category with a given name. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3527 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3528 Adding the above lines allows us to create categories, but they're not |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3529 tied to the issues that we are going to be creating. It's just a list of |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3530 categories off on its own, which isn't much use. We need to link it in |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3531 with the issues. To do that, find the lines |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
3532 in ``schema.py`` which set up the "issue" class, and then add a link to |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3533 the category:: |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3534 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3535 issue = IssueClass(db, "issue", ... , |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3536 category=Multilink("category"), ... ) |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3537 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3538 The ``Multilink()`` means that each issue can have many categories. If |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3539 you were adding something with a one-to-one relationship to issues (such |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3540 as the "assignedto" property), use ``Link()`` instead. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3541 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3542 That is all you need to do to change the schema. The rest of the effort |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3543 is fiddling around so you can actually use the new category. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3544 |
| 1098 | 3545 |
|
1235
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3546 Populating the new category class |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3547 ::::::::::::::::::::::::::::::::: |
|
1235
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3548 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3549 If you haven't initialised the database with the ``roundup-admin`` |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3550 "initialise" command, then you can add the following to the tracker |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3551 ``initial_data.py`` under the comment:: |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3552 |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3553 # add any additional database creation steps here - but only if you |
|
1235
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3554 # haven't initialised the database with the admin "initialise" command |
|
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3555 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3556 Add:: |
|
1235
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3557 |
|
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3558 category = db.getclass('category') |
|
3582
026adc5f1e13
fix "Adding a new constrained field to the classic schema" example in docs
Richard Jones <richard@users.sourceforge.net>
parents:
3580
diff
changeset
|
3559 category.create(name="scipy") |
|
026adc5f1e13
fix "Adding a new constrained field to the classic schema" example in docs
Richard Jones <richard@users.sourceforge.net>
parents:
3580
diff
changeset
|
3560 category.create(name="chaco") |
|
026adc5f1e13
fix "Adding a new constrained field to the classic schema" example in docs
Richard Jones <richard@users.sourceforge.net>
parents:
3580
diff
changeset
|
3561 category.create(name="weave") |
|
1235
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3562 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3563 If the database has already been initalised, then you need to use the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3564 ``roundup-admin`` tool:: |
|
1235
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3565 |
|
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3566 % roundup-admin -i <tracker home> |
|
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3567 Roundup <version> ready for input. |
|
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3568 Type "help" for help. |
|
3582
026adc5f1e13
fix "Adding a new constrained field to the classic schema" example in docs
Richard Jones <richard@users.sourceforge.net>
parents:
3580
diff
changeset
|
3569 roundup> create category name=scipy |
|
1235
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3570 1 |
|
3582
026adc5f1e13
fix "Adding a new constrained field to the classic schema" example in docs
Richard Jones <richard@users.sourceforge.net>
parents:
3580
diff
changeset
|
3571 roundup> create category name=chaco |
|
1235
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3572 2 |
|
3582
026adc5f1e13
fix "Adding a new constrained field to the classic schema" example in docs
Richard Jones <richard@users.sourceforge.net>
parents:
3580
diff
changeset
|
3573 roundup> create category name=weave |
|
1235
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3574 3 |
|
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3575 roundup> exit... |
|
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3576 There are unsaved changes. Commit them (y/N)? y |
|
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3577 |
|
7441653e5330
added hook for external password validation, and some more docco
Richard Jones <richard@users.sourceforge.net>
parents:
1234
diff
changeset
|
3578 |
| 1098 | 3579 Setting up security on the new objects |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3580 :::::::::::::::::::::::::::::::::::::: |
| 1098 | 3581 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3582 By default only the admin user can look at and change objects. This |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3583 doesn't suit us, as we want any user to be able to create new categories |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3584 as required, and obviously everyone needs to be able to view the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3585 categories of issues for it to be useful. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3586 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3587 We therefore need to change the security of the category objects. This |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3588 is also done in ``schema.py``. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3589 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3590 There are currently two loops which set up permissions and then assign |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3591 them to various roles. Simply add the new "category" to both lists:: |
| 1098 | 3592 |
| 3593 # Assign the access and edit permissions for issue, file and message | |
| 3594 # to regular users now | |
| 3595 for cl in 'issue', 'file', 'msg', 'category': | |
| 3596 p = db.security.getPermission('View', cl) | |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
3597 db.security.addPermissionToRole('User', 'View', cl) |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
3598 db.security.addPermissionToRole('User', 'Edit', cl) |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
3599 db.security.addPermissionToRole('User', 'Create', cl) |
| 1098 | 3600 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3601 These lines assign the "View" and "Edit" Permissions to the "User" role, |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3602 so that normal users can view and edit "category" objects. |
| 1098 | 3603 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3604 This is all the work that needs to be done for the database. It will |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3605 store categories, and let users view and edit them. Now on to the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3606 interface stuff. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3607 |
| 1098 | 3608 |
| 3609 Changing the web left hand frame | |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3610 :::::::::::::::::::::::::::::::: |
| 1098 | 3611 |
| 3612 We need to give the users the ability to create new categories, and the | |
| 3613 place to put the link to this functionality is in the left hand function | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3614 bar, under the "Issues" area. The file that defines how this area looks |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3615 is ``html/page.html``, which is what we are going to be editing next. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3616 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3617 If you look at this file you can see that it contains a lot of |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3618 "classblock" sections which are chunks of HTML that will be included or |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3619 excluded in the output depending on whether the condition in the |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3620 classblock is met. We are going to add the category code at the end of |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3621 the classblock for the *issue* class:: |
| 1098 | 3622 |
| 3623 <p class="classblock" | |
| 3624 tal:condition="python:request.user.hasPermission('View', 'category')"> | |
| 3625 <b>Categories</b><br> | |
| 3626 <a tal:condition="python:request.user.hasPermission('Edit', 'category')" | |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3627 href="category?@template=item">New Category<br></a> |
| 1098 | 3628 </p> |
| 3629 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3630 The first two lines is the classblock definition, which sets up a |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3631 condition that only users who have "View" permission for the "category" |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3632 object will have this section included in their output. Next comes a |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3633 plain "Categories" header in bold. Everyone who can view categories will |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3634 get that. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3635 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3636 Next comes the link to the editing area of categories. This link will |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3637 only appear if the condition - that the user has "Edit" permissions for |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3638 the "category" objects - is matched. If they do have permission then |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3639 they will get a link to another page which will let the user add new |
| 1098 | 3640 categories. |
| 3641 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3642 Note that if you have permission to *view* but not to *edit* categories, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3643 then all you will see is a "Categories" header with nothing underneath |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3644 it. This is obviously not very good interface design, but will do for |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3645 now. I just claim that it is so I can add more links in this section |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3646 later on. However, to fix the problem you could change the condition in |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3647 the classblock statement, so that only users with "Edit" permission |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3648 would see the "Categories" stuff. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3649 |
| 1098 | 3650 |
| 3651 Setting up a page to edit categories | |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3652 :::::::::::::::::::::::::::::::::::: |
| 1098 | 3653 |
| 3654 We defined code in the previous section which let users with the | |
| 3655 appropriate permissions see a link to a page which would let them edit | |
| 3656 conditions. Now we have to write that page. | |
| 3657 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3658 The link was for the *item* template of the *category* object. This |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3659 translates into Roundup looking for a file called ``category.item.html`` |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3660 in the ``html`` tracker directory. This is the file that we are going to |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3661 write now. |
| 1098 | 3662 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3663 First, we add an info tag in a comment which doesn't affect the outcome |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3664 of the code at all, but is useful for debugging. If you load a page in a |
| 1098 | 3665 browser and look at the page source, you can see which sections come |
| 3666 from which files by looking for these comments:: | |
| 3667 | |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3668 <!-- category.item --> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3669 |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3670 Next we need to add in the METAL macro stuff so we get the normal page |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3671 trappings:: |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3672 |
| 1214 | 3673 <tal:block metal:use-macro="templates/page/macros/icing"> |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3674 <title metal:fill-slot="head_title">Category editing</title> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3675 <td class="page-header-top" metal:fill-slot="body_title"> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3676 <h2>Category editing</h2> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3677 </td> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3678 <td class="content" metal:fill-slot="content"> |
| 1098 | 3679 |
| 3680 Next we need to setup up a standard HTML form, which is the whole | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3681 purpose of this file. We link to some handy javascript which sends the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3682 form through only once. This is to stop users hitting the send button |
| 1098 | 3683 multiple times when they are impatient and thus having the form sent |
| 3684 multiple times:: | |
| 3685 | |
| 3686 <form method="POST" onSubmit="return submit_once()" | |
| 3687 enctype="multipart/form-data"> | |
| 3688 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3689 Next we define some code which sets up the minimum list of fields that |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3690 we require the user to enter. There will be only one field - "name" - so |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3691 they better put something in it, otherwise the whole form is pointless:: |
| 1098 | 3692 |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3693 <input type="hidden" name="@required" value="name"> |
| 1098 | 3694 |
| 3695 To get everything to line up properly we will put everything in a table, | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3696 and put a nice big header on it so the user has an idea what is |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3697 happening:: |
| 1098 | 3698 |
| 3699 <table class="form"> | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3700 <tr><th class="header" colspan="2">Category</th></tr> |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3701 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3702 Next, we need the field into which the user is going to enter the new |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3703 category. The ``context.name.field(size=60)`` bit tells Roundup to |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3704 generate a normal HTML field of size 60, and the contents of that field |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3705 will be the "name" variable of the current context (namely "category"). |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3706 The upshot of this is that when the user types something in |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3707 to the form, a new category will be created with that name:: |
| 1098 | 3708 |
| 3709 <tr> | |
|
1825
fad32dafc174
Replaced all uses of the 'nowrap' attribute with its CSS equivalent:
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1817
diff
changeset
|
3710 <th>Name</th> |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3711 <td tal:content="structure python:context.name.field(size=60)"> |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3712 name</td> |
| 1098 | 3713 </tr> |
| 3714 | |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3715 Then a submit button so that the user can submit the new category:: |
| 1098 | 3716 |
| 3717 <tr> | |
| 3718 <td> </td> | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3719 <td colspan="3" tal:content="structure context/submit"> |
| 1098 | 3720 submit button will go here |
| 3721 </td> | |
| 3722 </tr> | |
| 3723 | |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
3724 The ``context/submit`` bit generates the submit button but also |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
3725 generates the @action and @csrf hidden fields. The @action field is |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
3726 used to tell roundup how to process the form. The @csrf field provides |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
3727 a unique single use token to defend against CSRF attacks. (More about |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
3728 anti-csrf measures can be found in ``upgrading.txt``.) |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
3729 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3730 Finally we finish off the tags we used at the start to do the METAL |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3731 stuff:: |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3732 |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3733 </td> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3734 </tal:block> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3735 |
| 1098 | 3736 So putting it all together, and closing the table and form we get:: |
| 3737 | |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3738 <!-- category.item --> |
| 1214 | 3739 <tal:block metal:use-macro="templates/page/macros/icing"> |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3740 <title metal:fill-slot="head_title">Category editing</title> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3741 <td class="page-header-top" metal:fill-slot="body_title"> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3742 <h2>Category editing</h2> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3743 </td> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3744 <td class="content" metal:fill-slot="content"> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3745 <form method="POST" onSubmit="return submit_once()" |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3746 enctype="multipart/form-data"> |
| 1098 | 3747 |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3748 <table class="form"> |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3749 <tr><th class="header" colspan="2">Category</th></tr> |
| 1098 | 3750 |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3751 <tr> |
|
1825
fad32dafc174
Replaced all uses of the 'nowrap' attribute with its CSS equivalent:
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1817
diff
changeset
|
3752 <th>Name</th> |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3753 <td tal:content="structure python:context.name.field(size=60)"> |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3754 name</td> |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3755 </tr> |
| 1098 | 3756 |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3757 <tr> |
|
1829
4e4afbe3cd30
Move '<input type="hidden">' elements into a block.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1825
diff
changeset
|
3758 <td> |
|
4e4afbe3cd30
Move '<input type="hidden">' elements into a block.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1825
diff
changeset
|
3759 |
|
4e4afbe3cd30
Move '<input type="hidden">' elements into a block.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1825
diff
changeset
|
3760 <input type="hidden" name="@required" value="name"> |
|
4e4afbe3cd30
Move '<input type="hidden">' elements into a block.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1825
diff
changeset
|
3761 </td> |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3762 <td colspan="3" tal:content="structure context/submit"> |
|
1213
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3763 submit button will go here |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3764 </td> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3765 </tr> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3766 </table> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3767 </form> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3768 </td> |
|
3a5e05edcd87
added doc for METAL
Richard Jones <richard@users.sourceforge.net>
parents:
1164
diff
changeset
|
3769 </tal:block> |
| 1098 | 3770 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3771 This is quite a lot to just ask the user one simple question, but there |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3772 is a lot of setup for basically one line (the form line) to do its work. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3773 To add another field to "category" would involve one more line (well, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3774 maybe a few extra to get the formatting correct). |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3775 |
| 1098 | 3776 |
| 3777 Adding the category to the issue | |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3778 :::::::::::::::::::::::::::::::: |
| 1098 | 3779 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3780 We now have the ability to create issues to our heart's content, but |
| 1098 | 3781 that is pointless unless we can assign categories to issues. Just like |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3782 the ``html/category.item.html`` file was used to define how to add a new |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3783 category, the ``html/issue.item.html`` is used to define how a new issue |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3784 is created. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3785 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3786 Just like ``category.issue.html``, this file defines a form which has a |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3787 table to lay things out. It doesn't matter where in the table we add new |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3788 stuff, it is entirely up to your sense of aesthetics:: |
| 1098 | 3789 |
|
1825
fad32dafc174
Replaced all uses of the 'nowrap' attribute with its CSS equivalent:
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1817
diff
changeset
|
3790 <th>Category</th> |
|
3582
026adc5f1e13
fix "Adding a new constrained field to the classic schema" example in docs
Richard Jones <richard@users.sourceforge.net>
parents:
3580
diff
changeset
|
3791 <td> |
|
026adc5f1e13
fix "Adding a new constrained field to the classic schema" example in docs
Richard Jones <richard@users.sourceforge.net>
parents:
3580
diff
changeset
|
3792 <span tal:replace="structure context/category/field" /> |
|
026adc5f1e13
fix "Adding a new constrained field to the classic schema" example in docs
Richard Jones <richard@users.sourceforge.net>
parents:
3580
diff
changeset
|
3793 <span tal:replace="structure python:db.category.classhelp('name', |
|
026adc5f1e13
fix "Adding a new constrained field to the classic schema" example in docs
Richard Jones <richard@users.sourceforge.net>
parents:
3580
diff
changeset
|
3794 property='category', width='200')" /> |
| 1098 | 3795 </td> |
| 3796 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3797 First, we define a nice header so that the user knows what the next |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3798 section is, then the middle line does what we are most interested in. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3799 This ``context/category/field`` gets replaced by a field which contains |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3800 the category in the current context (the current context being the new |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3801 issue). |
| 1098 | 3802 |
| 3803 The classhelp lines generate a link (labelled "list") to a popup window | |
| 3804 which contains the list of currently known categories. | |
| 3805 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3806 |
| 1098 | 3807 Searching on categories |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3808 ::::::::::::::::::::::: |
| 1098 | 3809 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3810 Now we can add categories, and create issues with categories. The next |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3811 obvious thing that we would like to be able to do, would be to search |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3812 for issues based on their category, so that, for example, anyone working |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3813 on the web server could look at all issues in the category "Web". |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3814 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3815 If you look for "Search Issues" in the ``html/page.html`` file, you will |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3816 find that it looks something like |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3817 ``<a href="issue?@template=search">Search Issues</a>``. This shows us |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3818 that when you click on "Search Issues" it will be looking for a |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3819 ``issue.search.html`` file to display. So that is the file that we will |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3820 change. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3821 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3822 If you look at this file it should begin to seem familiar, although it |
|
1730
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3823 does use some new macros. You can add the new category search code anywhere you |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3824 like within that form:: |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3825 |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3826 <tr tal:define="name string:category; |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3827 db_klass string:category; |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3828 db_content string:name;"> |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3829 <th>Priority:</th> |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3830 <td metal:use-macro="search_select"></td> |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3831 <td metal:use-macro="column_input"></td> |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3832 <td metal:use-macro="sort_input"></td> |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3833 <td metal:use-macro="group_input"></td> |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3834 </tr> |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3835 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3836 The definitions in the ``<tr>`` opening tag are used by the macros: |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3837 |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3838 - ``search_select`` expands to a drop-down box with all categories using |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3839 ``db_klass`` and ``db_content``. |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3840 - ``column_input`` expands to a checkbox for selecting what columns |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3841 should be displayed. |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3842 - ``sort_input`` expands to a radio button for selecting what property |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3843 should be sorted on. |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3844 - ``group_input`` expands to a radio button for selecting what property |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3845 should be grouped on. |
|
1730
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3846 |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3847 The category search code above would expand to the following:: |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3848 |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3849 <tr> |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3850 <th>Category:</th> |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3851 <td> |
| 1098 | 3852 <select name="category"> |
|
1730
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3853 <option value="">don't care</option> |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3854 <option value="">------------</option> |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3855 <option value="1">scipy</option> |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3856 <option value="2">chaco</option> |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3857 <option value="3">weave</option> |
| 1098 | 3858 </select> |
|
1730
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3859 </td> |
|
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3860 <td><input type="checkbox" name=":columns" value="category"></td> |
|
3696
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3861 <td><input type="radio" name=":sort0" value="category"></td> |
|
790363e96852
Sorting/grouping by multiple properties.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3688
diff
changeset
|
3862 <td><input type="radio" name=":group0" value="category"></td> |
|
1730
2dd6b4c825e9
Final touches to fix query editing. It should work now.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1711
diff
changeset
|
3863 </tr> |
| 1098 | 3864 |
| 3865 Adding category to the default view | |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3866 ::::::::::::::::::::::::::::::::::: |
| 1098 | 3867 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3868 We can now add categories, add issues with categories, and search for |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3869 issues based on categories. This is everything that we need to do; |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3870 however, there is some more icing that we would like. I think the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3871 category of an issue is important enough that it should be displayed by |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3872 default when listing all the issues. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3873 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3874 Unfortunately, this is a bit less obvious than the previous steps. The |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3875 code defining how the issues look is in ``html/issue.index.html``. This |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3876 is a large table with a form down at the bottom for redisplaying and so |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3877 forth. |
| 1098 | 3878 |
| 3879 Firstly we need to add an appropriate header to the start of the table:: | |
| 3880 | |
| 3881 <th tal:condition="request/show/category">Category</th> | |
| 3882 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3883 The *condition* part of this statement is to avoid displaying the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3884 Category column if the user has selected not to see it. |
| 1098 | 3885 |
| 3886 The rest of the table is a loop which will go through every issue that | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3887 matches the display criteria. The loop variable is "i" - which means |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3888 that every issue gets assigned to "i" in turn. |
| 1098 | 3889 |
| 3890 The new part of code to display the category will look like this:: | |
| 3891 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3892 <td tal:condition="request/show/category" |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3893 tal:content="i/category"></td> |
| 1098 | 3894 |
| 3895 The condition is the same as above: only display the condition when the | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3896 user hasn't asked for it to be hidden. The next part is to set the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3897 content of the cell to be the category part of "i" - the current issue. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3898 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3899 Finally we have to edit ``html/page.html`` again. This time, we need to |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3900 tell it that when the user clicks on "Unassigned Issues" or "All Issues", |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3901 the category column should be included in the resulting list. If you |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3902 scroll down the page file, you can see the links with lots of options. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3903 The option that we are interested in is the ``:columns=`` one which |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3904 tells roundup which fields of the issue to display. Simply add |
| 1098 | 3905 "category" to that list and it all should work. |
| 3906 | |
| 1262 | 3907 Adding a time log to your issues |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
3908 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 1262 | 3909 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3910 We want to log the dates and amount of time spent working on issues, and |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3911 be able to give a summary of the total time spent on a particular issue. |
| 1262 | 3912 |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
3913 1. Add a new class to your tracker ``schema.py``:: |
| 1262 | 3914 |
| 3915 # storage for time logging | |
| 3916 timelog = Class(db, "timelog", period=Interval()) | |
| 3917 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3918 Note that we automatically get the date of the time log entry |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3919 creation through the standard property "creation". |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3920 |
|
3652
3a19d31be628
add in note about perms
Richard Jones <richard@users.sourceforge.net>
parents:
3649
diff
changeset
|
3921 You will need to grant "Creation" permission to the users who are |
| 3653 | 3922 allowed to add timelog entries. You may do this with:: |
|
3652
3a19d31be628
add in note about perms
Richard Jones <richard@users.sourceforge.net>
parents:
3649
diff
changeset
|
3923 |
|
3a19d31be628
add in note about perms
Richard Jones <richard@users.sourceforge.net>
parents:
3649
diff
changeset
|
3924 db.security.addPermissionToRole('User', 'Create', 'timelog') |
|
3a19d31be628
add in note about perms
Richard Jones <richard@users.sourceforge.net>
parents:
3649
diff
changeset
|
3925 db.security.addPermissionToRole('User', 'View', 'timelog') |
|
3a19d31be628
add in note about perms
Richard Jones <richard@users.sourceforge.net>
parents:
3649
diff
changeset
|
3926 |
| 3653 | 3927 If users are also able to *edit* timelog entries, then also include:: |
|
3652
3a19d31be628
add in note about perms
Richard Jones <richard@users.sourceforge.net>
parents:
3649
diff
changeset
|
3928 |
|
3a19d31be628
add in note about perms
Richard Jones <richard@users.sourceforge.net>
parents:
3649
diff
changeset
|
3929 db.security.addPermissionToRole('User', 'Edit', 'timelog') |
|
3a19d31be628
add in note about perms
Richard Jones <richard@users.sourceforge.net>
parents:
3649
diff
changeset
|
3930 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3931 2. Link to the new class from your issue class (again, in |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
3932 ``schema.py``):: |
| 1262 | 3933 |
| 3934 issue = IssueClass(db, "issue", | |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
3935 assignedto=Link("user"), keyword=Multilink("keyword"), |
| 1262 | 3936 priority=Link("priority"), status=Link("status"), |
| 3937 times=Multilink("timelog")) | |
| 3938 | |
| 3939 the "times" property is the new link to the "timelog" class. | |
| 3940 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3941 3. We'll need to let people add in times to the issue, so in the web |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3942 interface we'll have a new entry field. This is a special field |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3943 because unlike the other fields in the ``issue.item`` template, it |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3944 affects a different item (a timelog item) and not the template's |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3945 item (an issue). We have a special syntax for form fields that affect |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3946 items other than the template default item (see the cgi |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3947 documentation on `special form variables`_). In particular, we add a |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3948 field to capture a new timelog item's period:: |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3949 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3950 <tr> |
|
1825
fad32dafc174
Replaced all uses of the 'nowrap' attribute with its CSS equivalent:
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1817
diff
changeset
|
3951 <th>Time Log</th> |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3952 <td colspan=3><input type="text" name="timelog-1@period" /> |
|
3818
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3953 (enter as '3y 1m 4d 2:40:02' or parts thereof) |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3954 </td> |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3955 </tr> |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3956 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3957 and another hidden field that links that new timelog item (new |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3958 because it's marked as having id "-1") to the issue item. It looks |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3959 like this:: |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3960 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3961 <input type="hidden" name="@link@times" value="timelog-1" /> |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3962 |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3963 On submission, the "-1" timelog item will be created and assigned a |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3964 real item id. The "times" property of the issue will have the new id |
|
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3965 added to it. |
|
3818
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3966 |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3967 The full entry will now look like this:: |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3968 |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3969 <tr> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3970 <th>Time Log</th> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3971 <td colspan=3><input type="text" name="timelog-1@period" /> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3972 (enter as '3y 1m 4d 2:40:02' or parts thereof) |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3973 <input type="hidden" name="@link@times" value="timelog-1" /> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3974 </td> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3975 </tr> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
3976 |
|
1679
e2caeaa34ed4
fix timelog documentation, add new cgi special for variable doc
Richard Jones <richard@users.sourceforge.net>
parents:
1674
diff
changeset
|
3977 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3978 4. We want to display a total of the timelog times that have been |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3979 accumulated for an issue. To do this, we'll need to actually write |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
3980 some Python code, since it's beyond the scope of PageTemplates to |
| 2915 | 3981 perform such calculations. We do this by adding a module ``timespent.py`` |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3982 to the ``extensions`` directory in our tracker. The contents of this |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
3983 file is as follows:: |
| 2915 | 3984 |
|
3717
5770f1802cd0
better conflict retry in postgresql backend [SF#1552809]
Richard Jones <richard@users.sourceforge.net>
parents:
3697
diff
changeset
|
3985 from roundup import date |
|
5770f1802cd0
better conflict retry in postgresql backend [SF#1552809]
Richard Jones <richard@users.sourceforge.net>
parents:
3697
diff
changeset
|
3986 |
| 2915 | 3987 def totalTimeSpent(times): |
| 3988 ''' Call me with a list of timelog items (which have an | |
| 3989 Interval "period" property) | |
|
1270
c3424abf7f77
added ability to implement new templating utility methods
Richard Jones <richard@users.sourceforge.net>
parents:
1262
diff
changeset
|
3990 ''' |
|
3717
5770f1802cd0
better conflict retry in postgresql backend [SF#1552809]
Richard Jones <richard@users.sourceforge.net>
parents:
3697
diff
changeset
|
3991 total = date.Interval('0d') |
| 2915 | 3992 for time in times: |
| 3993 total += time.period._value | |
| 3994 return total | |
| 3995 | |
| 3996 def init(instance): | |
| 3997 instance.registerUtil('totalTimeSpent', totalTimeSpent) | |
| 3998 | |
| 3999 We will now be able to access the ``totalTimeSpent`` function via the | |
| 4000 ``utils`` variable in our templates, as shown in the next step. | |
|
1270
c3424abf7f77
added ability to implement new templating utility methods
Richard Jones <richard@users.sourceforge.net>
parents:
1262
diff
changeset
|
4001 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4002 5. Display the timelog for an issue:: |
| 1262 | 4003 |
| 4004 <table class="otherinfo" tal:condition="context/times"> | |
|
1270
c3424abf7f77
added ability to implement new templating utility methods
Richard Jones <richard@users.sourceforge.net>
parents:
1262
diff
changeset
|
4005 <tr><th colspan="3" class="header">Time Log |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4006 <tal:block |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4007 tal:replace="python:utils.totalTimeSpent(context.times)" /> |
|
1270
c3424abf7f77
added ability to implement new templating utility methods
Richard Jones <richard@users.sourceforge.net>
parents:
1262
diff
changeset
|
4008 </th></tr> |
| 1262 | 4009 <tr><th>Date</th><th>Period</th><th>Logged By</th></tr> |
| 4010 <tr tal:repeat="time context/times"> | |
| 4011 <td tal:content="time/creation"></td> | |
| 4012 <td tal:content="time/period"></td> | |
| 4013 <td tal:content="time/creator"></td> | |
| 4014 </tr> | |
| 4015 </table> | |
| 4016 | |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4017 I put this just above the Messages log in my issue display. Note our |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4018 use of the ``totalTimeSpent`` method which will total up the times |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4019 for the issue and return a new Interval. That will be automatically |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4020 displayed in the template as text like "+ 1y 2:40" (1 year, 2 hours |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4021 and 40 minutes). |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4022 |
|
3818
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4023 6. If you're using a persistent web server - ``roundup-server`` or |
|
5891
6e341009593b
Deprecate mod_python issue2551005
John Rouillard <rouilj@ieee.org>
parents:
5881
diff
changeset
|
4024 ``mod_wsgi`` for example - then you'll need to restart that to pick up |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4025 the code changes. When that's done, you'll be able to use the new |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4026 time logging interface. |
| 1262 | 4027 |
|
3657
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4028 An extension of this modification attaches the timelog entries to any |
|
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4029 change message entered at the time of the timelog entry: |
|
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4030 |
|
3818
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4031 A. Add a link to the timelog to the msg class in ``schema.py``: |
|
3657
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4032 |
|
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4033 msg = FileClass(db, "msg", |
|
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4034 author=Link("user", do_journal='no'), |
|
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4035 recipients=Multilink("user", do_journal='no'), |
|
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4036 date=Date(), |
|
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4037 summary=String(), |
|
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4038 files=Multilink("file"), |
|
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4039 messageid=String(), |
|
3818
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4040 inreplyto=String(), |
|
3657
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4041 times=Multilink("timelog")) |
|
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4042 |
|
3818
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4043 B. Add a new hidden field that links that new timelog item (new |
|
3657
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4044 because it's marked as having id "-1") to the new message. |
|
3818
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4045 The link is placed in ``issue.item.html`` in the same section that |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4046 handles the timelog entry. |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4047 |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4048 It looks like this after this addition:: |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4049 |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4050 <tr> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4051 <th>Time Log</th> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4052 <td colspan=3><input type="text" name="timelog-1@period" /> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4053 (enter as '3y 1m 4d 2:40:02' or parts thereof) |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4054 <input type="hidden" name="@link@times" value="timelog-1" /> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4055 <input type="hidden" name="msg-1@link@times" value="timelog-1" /> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4056 </td> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4057 </tr> |
|
3657
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4058 |
|
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4059 The "times" property of the message will have the new id added to it. |
|
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4060 |
|
3818
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4061 C. Add the timelog listing from step 5. to the ``msg.item.html`` template |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4062 so that the timelog entry appears on the message view page. Note that |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4063 the call to totalTimeSpent is not used here since there will only be one |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4064 single timelog entry for each message. |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4065 |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4066 I placed it after the Date entry like this:: |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4067 |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4068 <tr> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4069 <th i18n:translate="">Date:</th> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4070 <td tal:content="context/date"></td> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4071 </tr> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4072 </table> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4073 |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4074 <table class="otherinfo" tal:condition="context/times"> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4075 <tr><th colspan="3" class="header">Time Log</th></tr> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4076 <tr><th>Date</th><th>Period</th><th>Logged By</th></tr> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4077 <tr tal:repeat="time context/times"> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4078 <td tal:content="time/creation"></td> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4079 <td tal:content="time/period"></td> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4080 <td tal:content="time/creator"></td> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4081 </tr> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4082 </table> |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4083 |
|
e5043875a03d
Improved due_date and timelog customisation docs [SF#1625124]
Richard Jones <richard@users.sourceforge.net>
parents:
3796
diff
changeset
|
4084 <table class="messages"> |
|
3657
f7db2771e87d
add info about storing Store TimeLog with Messages
Richard Jones <richard@users.sourceforge.net>
parents:
3653
diff
changeset
|
4085 |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4086 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4087 Tracking different types of issues |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4088 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4089 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4090 Sometimes you will want to track different types of issues - developer, |
|
2159
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4091 customer support, systems, sales leads, etc. A single Roundup tracker is |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4092 able to support multiple types of issues. This example demonstrates adding |
| 3289 | 4093 a system support issue class to a tracker. |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4094 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4095 1. Figure out what information you're going to want to capture. OK, so |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4096 this is obvious, but sometimes it's better to actually sit down for a |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4097 while and think about the schema you're going to implement. |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4098 |
| 3289 | 4099 2. Add the new issue class to your tracker's ``schema.py``. Just after the |
| 4100 "issue" class definition, add:: | |
| 4101 | |
| 4102 # list our systems | |
| 4103 system = Class(db, "system", name=String(), order=Number()) | |
| 4104 system.setkey("name") | |
| 4105 | |
| 4106 # store issues related to those systems | |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4107 support = IssueClass(db, "support", |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4108 assignedto=Link("user"), keyword=Multilink("keyword"), |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4109 status=Link("status"), deadline=Date(), |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4110 affects=Multilink("system")) |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4111 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4112 3. Copy the existing ``issue.*`` (item, search and index) templates in the |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4113 tracker's ``html`` to ``support.*``. Edit them so they use the properties |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4114 defined in the ``support`` class. Be sure to check for hidden form |
|
2159
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4115 variables like "required" to make sure they have the correct set of |
|
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4116 required properties. |
|
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4117 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4118 4. Edit the modules in the ``detectors``, adding lines to their ``init`` |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4119 functions where appropriate. Look for ``audit`` and ``react`` registrations |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4120 on the ``issue`` class, and duplicate them for ``support``. |
|
2159
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4121 |
|
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4122 5. Create a new sidebar box for the new support class. Duplicate the |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4123 existing issues one, changing the ``issue`` class name to ``support``. |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4124 |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4125 6. Re-start your tracker and start using the new ``support`` class. |
|
2159
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4126 |
|
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4127 |
|
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4128 Optionally, you might want to restrict the users able to access this new |
|
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4129 class to just the users with a new "SysAdmin" Role. To do this, we add |
|
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4130 some security declarations:: |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4131 |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
4132 db.security.addPermissionToRole('SysAdmin', 'View', 'support') |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
4133 db.security.addPermissionToRole('SysAdmin', 'Create', 'support') |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
4134 db.security.addPermissionToRole('SysAdmin', 'Edit', 'support') |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4135 |
|
2159
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4136 You would then (as an "admin" user) edit the details of the appropriate |
|
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4137 users, and add "SysAdmin" to their Roles list. |
|
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4138 |
|
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4139 Alternatively, you might want to change the Edit/View permissions granted |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4140 for the ``issue`` class so that it's only available to users with the "System" |
|
2159
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4141 or "Developer" Role, and then the new class you're adding is available to |
|
c22329f379ae
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
2156
diff
changeset
|
4142 all with the "User" Role. |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4143 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4144 |
|
4891
ad3d628e73f2
docs: Link custom authentication examples in admin guide
anatoly techtonik <techtonik@gmail.com>
parents:
4888
diff
changeset
|
4145 .. _external-authentication: |
|
ad3d628e73f2
docs: Link custom authentication examples in admin guide
anatoly techtonik <techtonik@gmail.com>
parents:
4888
diff
changeset
|
4146 |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4147 Using External User Databases |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4148 ----------------------------- |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4149 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4150 Using an external password validation source |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4151 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4152 |
|
3228
1b15e9eeb592
fixes to the "Using an external password validation source"...
Richard Jones <richard@users.sourceforge.net>
parents:
3130
diff
changeset
|
4153 .. note:: You will need to either have an "admin" user in your external |
|
1b15e9eeb592
fixes to the "Using an external password validation source"...
Richard Jones <richard@users.sourceforge.net>
parents:
3130
diff
changeset
|
4154 password source *or* have one of your regular users have |
|
1b15e9eeb592
fixes to the "Using an external password validation source"...
Richard Jones <richard@users.sourceforge.net>
parents:
3130
diff
changeset
|
4155 the Admin Role assigned. If you need to assign the Role *after* |
|
1b15e9eeb592
fixes to the "Using an external password validation source"...
Richard Jones <richard@users.sourceforge.net>
parents:
3130
diff
changeset
|
4156 making the changes below, you may use the ``roundup-admin`` |
|
1b15e9eeb592
fixes to the "Using an external password validation source"...
Richard Jones <richard@users.sourceforge.net>
parents:
3130
diff
changeset
|
4157 program to edit a user's details. |
|
1b15e9eeb592
fixes to the "Using an external password validation source"...
Richard Jones <richard@users.sourceforge.net>
parents:
3130
diff
changeset
|
4158 |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4159 We have a centrally-managed password changing system for our users. This |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4160 results in a UN*X passwd-style file that we use for verification of |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4161 users. Entries in the file consist of ``name:password`` where the |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4162 password is encrypted using the standard UN*X ``crypt()`` function (see |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4163 the ``crypt`` module in your Python distribution). An example entry |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4164 would be:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4165 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4166 admin:aamrgyQfDFSHw |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4167 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4168 Each user of Roundup must still have their information stored in the Roundup |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4169 database - we just use the passwd file to check their password. To do this, we |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4170 need to override the standard ``verifyPassword`` method defined in |
| 2915 | 4171 ``roundup.cgi.actions.LoginAction`` and register the new class. The |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4172 following is added as ``externalpassword.py`` in the tracker ``extensions`` |
| 2915 | 4173 directory:: |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4174 |
|
3228
1b15e9eeb592
fixes to the "Using an external password validation source"...
Richard Jones <richard@users.sourceforge.net>
parents:
3130
diff
changeset
|
4175 import os, crypt |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4176 from roundup.cgi.actions import LoginAction |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4177 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4178 class ExternalPasswordLoginAction(LoginAction): |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4179 def verifyPassword(self, userid, password): |
| 2915 | 4180 '''Look through the file, line by line, looking for a |
| 4181 name that matches. | |
| 4182 ''' | |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4183 # get the user's username |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4184 username = self.db.user.get(userid, 'username') |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4185 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4186 # the passwords are stored in the "passwd.txt" file in the |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4187 # tracker home |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4188 file = os.path.join(self.db.config.TRACKER_HOME, 'passwd.txt') |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4189 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4190 # see if we can find a match |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4191 for ent in [line.strip().split(':') for line in |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4192 open(file).readlines()]: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4193 if ent[0] == username: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4194 return crypt.crypt(password, ent[1][:2]) == ent[1] |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4195 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4196 # user doesn't exist in the file |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4197 return 0 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4198 |
| 2915 | 4199 def init(instance): |
| 4200 instance.registerAction('login', ExternalPasswordLoginAction) | |
| 4201 | |
| 4202 You should also remove the redundant password fields from the ``user.item`` | |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4203 template. |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4204 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4205 |
|
1292
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4206 Using a UN*X passwd file as the user database |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4207 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
1292
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4208 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4209 On some systems the primary store of users is the UN*X passwd file. It |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4210 holds information on users such as their username, real name, password |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4211 and primary user group. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4212 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4213 Roundup can use this store as its primary source of user information, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4214 but it needs additional information too - email address(es), roundup |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4215 Roles, vacation flags, roundup hyperdb item ids, etc. Also, "retired" |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4216 users must still exist in the user database, unlike some passwd files in |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4217 which the users are removed when they no longer have access to a system. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4218 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4219 To make use of the passwd file, we therefore synchronise between the two |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4220 user stores. We also use the passwd file to validate the user logins, as |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4221 described in the previous example, `using an external password |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4222 validation source`_. We keep the user lists in sync using a fairly |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4223 simple script that runs once a day, or several times an hour if more |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4224 immediate access is needed. In short, it: |
|
1292
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4225 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4226 1. parses the passwd file, finding usernames, passwords and real names, |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4227 2. compares that list to the current roundup user list: |
|
1299
b2d04ce03802
Email improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
1293
diff
changeset
|
4228 |
|
1292
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4229 a. entries no longer in the passwd file are *retired* |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4230 b. entries with mismatching real names are *updated* |
| 1293 | 4231 c. entries only exist in the passwd file are *created* |
|
1299
b2d04ce03802
Email improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
1293
diff
changeset
|
4232 |
|
1292
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4233 3. send an email to administrators to let them know what's been done. |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4234 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4235 The retiring and updating are simple operations, requiring only a call |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4236 to ``retire()`` or ``set()``. The creation operation requires more |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4237 information though - the user's email address and their Roundup Roles. |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4238 We're going to assume that the user's email address is the same as their |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4239 login name, so we just append the domain name to that. The Roles are |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4240 determined using the passwd group identifier - mapping their UN*X group |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4241 to an appropriate set of Roles. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4242 |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4243 The script to perform all this, broken up into its main components, is |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4244 as follows. Firstly, we import the necessary modules and open the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4245 tracker we're to work on:: |
|
1292
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4246 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4247 import sys, os, smtplib |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4248 from roundup import instance, date |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4249 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4250 # open the tracker |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4251 tracker_home = sys.argv[1] |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4252 tracker = instance.open(tracker_home) |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4253 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4254 Next we read in the *passwd* file from the tracker home:: |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4255 |
|
3228
1b15e9eeb592
fixes to the "Using an external password validation source"...
Richard Jones <richard@users.sourceforge.net>
parents:
3130
diff
changeset
|
4256 # read in the users from the "passwd.txt" file |
|
1b15e9eeb592
fixes to the "Using an external password validation source"...
Richard Jones <richard@users.sourceforge.net>
parents:
3130
diff
changeset
|
4257 file = os.path.join(tracker_home, 'passwd.txt') |
|
1292
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4258 users = [x.strip().split(':') for x in open(file).readlines()] |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4259 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4260 Handle special users (those to ignore in the file, and those who don't |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4261 appear in the file):: |
|
1292
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4262 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4263 # users to not keep ever, pre-load with the users I know aren't |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4264 # "real" users |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4265 ignore = ['ekmmon', 'bfast', 'csrmail'] |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4266 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4267 # users to keep - pre-load with the roundup-specific users |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4268 keep = ['comment_pool', 'network_pool', 'admin', 'dev-team', |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4269 'cs_pool', 'anonymous', 'system_pool', 'automated'] |
|
1292
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4270 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4271 Now we map the UN*X group numbers to the Roles that users should have:: |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4272 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4273 roles = { |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4274 '501': 'User,Tech', # tech |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4275 '502': 'User', # finance |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4276 '503': 'User,CSR', # customer service reps |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4277 '504': 'User', # sales |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4278 '505': 'User', # marketing |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4279 } |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4280 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4281 Now we do all the work. Note that the body of the script (where we have |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4282 the tracker database open) is wrapped in a ``try`` / ``finally`` clause, |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4283 so that we always close the database cleanly when we're finished. So, we |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4284 now do all the work:: |
|
1292
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4285 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4286 # open the database |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4287 db = tracker.open('admin') |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4288 try: |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4289 # store away messages to send to the tracker admins |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4290 msg = [] |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4291 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4292 # loop over the users list read in from the passwd file |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4293 for user,passw,uid,gid,real,home,shell in users: |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4294 if user in ignore: |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4295 # this user shouldn't appear in our tracker |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4296 continue |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4297 keep.append(user) |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4298 try: |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4299 # see if the user exists in the tracker |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4300 uid = db.user.lookup(user) |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4301 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4302 # yes, they do - now check the real name for correctness |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4303 if real != db.user.get(uid, 'realname'): |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4304 db.user.set(uid, realname=real) |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4305 msg.append('FIX %s - %s'%(user, real)) |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4306 except KeyError: |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4307 # nope, the user doesn't exist |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4308 db.user.create(username=user, realname=real, |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4309 address='%s@ekit-inc.com'%user, roles=roles[gid]) |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4310 msg.append('ADD %s - %s (%s)'%(user, real, roles[gid])) |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4311 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4312 # now check that all the users in the tracker are also in our |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4313 # "keep" list - retire those who aren't |
|
1292
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4314 for uid in db.user.list(): |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4315 user = db.user.get(uid, 'username') |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4316 if user not in keep: |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4317 db.user.retire(uid) |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4318 msg.append('RET %s'%user) |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4319 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4320 # if we did work, then send email to the tracker admins |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4321 if msg: |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4322 # create the email |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4323 msg = '''Subject: %s user database maintenance |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4324 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4325 %s |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4326 '''%(db.config.TRACKER_NAME, '\n'.join(msg)) |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4327 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4328 # send the email |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4329 smtp = smtplib.SMTP(db.config.MAILHOST) |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4330 addr = db.config.ADMIN_EMAIL |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4331 smtp.sendmail(addr, addr, msg) |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4332 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4333 # now we're done - commit the changes |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4334 db.commit() |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4335 finally: |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4336 # always close the database cleanly |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4337 db.close() |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4338 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4339 And that's it! |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4340 |
|
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4341 |
|
1680
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4342 Using an LDAP database for user information |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4343 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
1680
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4344 |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4345 A script that reads users from an LDAP store using |
| 5367 | 4346 https://pypi.org/project/python-ldap/ and then compares the list to the users in the |
|
1680
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4347 roundup user database would be pretty easy to write. You'd then have it run |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4348 once an hour / day (or on demand if you can work that into your LDAP store |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4349 workflow). See the example `Using a UN*X passwd file as the user database`_ |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4350 for more information about doing this. |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4351 |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4352 To authenticate off the LDAP store (rather than using the passwords in the |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4353 Roundup user database) you'd use the same python-ldap module inside an |
|
2017
31d920b31642
Update customization examples too, expand upgrade notice a bit.
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
2016
diff
changeset
|
4354 extension to the cgi interface. You'd do this by overriding the method called |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4355 ``verifyPassword`` on the ``LoginAction`` class in your tracker's |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4356 ``extensions`` directory (see `using an external password validation |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4357 source`_). The method is implemented by default as:: |
|
1680
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4358 |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4359 def verifyPassword(self, userid, password): |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4360 ''' Verify the password that the user has supplied |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4361 ''' |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4362 stored = self.db.user.get(self.userid, 'password') |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4363 if password == stored: |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4364 return 1 |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4365 if not password and not stored: |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4366 return 1 |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4367 return 0 |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4368 |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4369 So you could reimplement this as something like:: |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4370 |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4371 def verifyPassword(self, userid, password): |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4372 ''' Verify the password that the user has supplied |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4373 ''' |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4374 # look up some unique LDAP information about the user |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4375 username = self.db.user.get(self.userid, 'username') |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4376 # now verify the password supplied against the LDAP store |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4377 |
|
86cc794cc3a0
added simplistic LDAP authentication example
Richard Jones <richard@users.sourceforge.net>
parents:
1679
diff
changeset
|
4378 |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4379 Changes to Tracker Behaviour |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4380 ---------------------------- |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4381 |
|
3830
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4382 Preventing SPAM |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4383 ~~~~~~~~~~~~~~~ |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4384 |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4385 The following detector code may be installed in your tracker's |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4386 ``detectors`` directory. It will block any messages being created that |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4387 have HTML attachments (a very common vector for spam and phishing) |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4388 and any messages that have more than 2 HTTP URLs in them. Just copy |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4389 the following into ``detectors/anti_spam.py`` in your tracker:: |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4390 |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4391 from roundup.exceptions import Reject |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4392 |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4393 def reject_html(db, cl, nodeid, newvalues): |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4394 if newvalues['type'] == 'text/html': |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
4395 raise Reject('not allowed') |
|
3830
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4396 |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4397 def reject_manylinks(db, cl, nodeid, newvalues): |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4398 content = newvalues['content'] |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4399 if content.count('http://') > 2: |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
4400 raise Reject('not allowed') |
|
3830
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4401 |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4402 def init(db): |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4403 db.file.audit('create', reject_html) |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4404 db.msg.audit('create', reject_manylinks) |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4405 |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4406 You may also wish to block image attachments if your tracker does not |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4407 need that ability:: |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4408 |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4409 if newvalues['type'].startswith('image/'): |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
4410 raise Reject('not allowed') |
|
3830
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4411 |
|
a48c514c465f
Add simple anti-spam recipe to docs
Richard Jones <richard@users.sourceforge.net>
parents:
3818
diff
changeset
|
4412 |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4413 Stop "nosy" messages going to people on vacation |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4414 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4415 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4416 When users go on vacation and set up vacation email bouncing, you'll |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4417 start to see a lot of messages come back through Roundup "Fred is on |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4418 vacation". Not very useful, and relatively easy to stop. |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4419 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4420 1. add a "vacation" flag to your users:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4421 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4422 user = Class(db, "user", |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4423 username=String(), password=Password(), |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4424 address=String(), realname=String(), |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4425 phone=String(), organisation=String(), |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4426 alternate_addresses=String(), |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4427 roles=String(), queries=Multilink("query"), |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4428 vacation=Boolean()) |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4429 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4430 2. So that users may edit the vacation flags, add something like the |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4431 following to your ``user.item`` template:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4432 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4433 <tr> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4434 <th>On Vacation</th> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4435 <td tal:content="structure context/vacation/field">vacation</td> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4436 </tr> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4437 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4438 3. edit your detector ``nosyreactor.py`` so that the ``nosyreaction()`` |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4439 consists of:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4440 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4441 def nosyreaction(db, cl, nodeid, oldvalues): |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4442 users = db.user |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4443 messages = db.msg |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4444 # send a copy of all new messages to the nosy list |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4445 for msgid in determineNewMessages(cl, nodeid, oldvalues): |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4446 try: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4447 # figure the recipient ids |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4448 sendto = [] |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4449 seen_message = {} |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4450 recipients = messages.get(msgid, 'recipients') |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4451 for recipid in messages.get(msgid, 'recipients'): |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4452 seen_message[recipid] = 1 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4453 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4454 # figure the author's id, and indicate they've received |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4455 # the message |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4456 authid = messages.get(msgid, 'author') |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4457 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4458 # possibly send the message to the author, as long as |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4459 # they aren't anonymous |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4460 if (db.config.MESSAGES_TO_AUTHOR == 'yes' and |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4461 users.get(authid, 'username') != 'anonymous'): |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4462 sendto.append(authid) |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4463 seen_message[authid] = 1 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4464 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4465 # now figure the nosy people who weren't recipients |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4466 nosy = cl.get(nodeid, 'nosy') |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4467 for nosyid in nosy: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4468 # Don't send nosy mail to the anonymous user (that |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4469 # user shouldn't appear in the nosy list, but just |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4470 # in case they do...) |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4471 if users.get(nosyid, 'username') == 'anonymous': |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4472 continue |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4473 # make sure they haven't seen the message already |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
4474 if nosyid not in seen_message: |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4475 # send it to them |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4476 sendto.append(nosyid) |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4477 recipients.append(nosyid) |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4478 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4479 # generate a change note |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4480 if oldvalues: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4481 note = cl.generateChangeNote(nodeid, oldvalues) |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4482 else: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4483 note = cl.generateCreateNote(nodeid) |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4484 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4485 # we have new recipients |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4486 if sendto: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4487 # filter out the people on vacation |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4488 sendto = [i for i in sendto |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4489 if not users.get(i, 'vacation', 0)] |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4490 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4491 # map userids to addresses |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4492 sendto = [users.get(i, 'address') for i in sendto] |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4493 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4494 # update the message's recipients list |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4495 messages.set(msgid, recipients=recipients) |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4496 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4497 # send the message |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4498 cl.send_message(nodeid, msgid, note, sendto) |
|
5248
198b6e810c67
Use Python-3-compatible 'as' syntax for except statements
Eric S. Raymond <esr@thyrsus.com>
parents:
5239
diff
changeset
|
4499 except roundupdb.MessageSendError as message: |
|
198b6e810c67
Use Python-3-compatible 'as' syntax for except statements
Eric S. Raymond <esr@thyrsus.com>
parents:
5239
diff
changeset
|
4500 raise roundupdb.DetectorError(message) |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4501 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4502 Note that this is the standard nosy reaction code, with the small |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4503 addition of:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4504 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4505 # filter out the people on vacation |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4506 sendto = [i for i in sendto if not users.get(i, 'vacation', 0)] |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4507 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4508 which filters out the users that have the vacation flag set to true. |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4509 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4510 Adding in state transition control |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4511 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4512 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4513 Sometimes tracker admins want to control the states to which users may |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4514 move issues. You can do this by following these steps: |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4515 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4516 1. make "status" a required variable. This is achieved by adding the |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4517 following to the top of the form in the ``issue.item.html`` |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4518 template:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4519 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4520 <input type="hidden" name="@required" value="status"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4521 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4522 This will force users to select a status. |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4523 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4524 2. add a Multilink property to the status class:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4525 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4526 stat = Class(db, "status", ... , transitions=Multilink('status'), |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4527 ...) |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4528 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4529 and then edit the statuses already created, either: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4530 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4531 a. through the web using the class list -> status class editor, or |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4532 b. using the ``roundup-admin`` "set" command. |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4533 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4534 3. add an auditor module ``checktransition.py`` in your tracker's |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4535 ``detectors`` directory, for example:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4536 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4537 def checktransition(db, cl, nodeid, newvalues): |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4538 ''' Check that the desired transition is valid for the "status" |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4539 property. |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4540 ''' |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
4541 if 'status' not in newvalues: |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4542 return |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4543 current = cl.get(nodeid, 'status') |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4544 new = newvalues['status'] |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4545 if new == current: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4546 return |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4547 ok = db.status.get(current, 'transitions') |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4548 if new not in ok: |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
4549 raise ValueError('Status not allowed to move from "%s" to "%s"'%( |
|
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
4550 db.status.get(current, 'name'), db.status.get(new, 'name'))) |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4551 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4552 def init(db): |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4553 db.issue.audit('set', checktransition) |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4554 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4555 4. in the ``issue.item.html`` template, change the status editing bit |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4556 from:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4557 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4558 <th>Status</th> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4559 <td tal:content="structure context/status/menu">status</td> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4560 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4561 to:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4562 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4563 <th>Status</th> |
|
1292
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4564 <td> |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4565 <select tal:condition="context/id" name="status"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4566 <tal:block tal:define="ok context/status/transitions" |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4567 tal:repeat="state db/status/list"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4568 <option tal:condition="python:state.id in ok" |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4569 tal:attributes=" |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4570 value state/id; |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4571 selected python:state.id == context.status.id" |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4572 tal:content="state/name"></option> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4573 </tal:block> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4574 </select> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4575 <tal:block tal:condition="not:context/id" |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4576 tal:replace="structure context/status/menu" /> |
|
1292
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4577 </td> |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4578 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4579 which displays only the allowed status to transition to. |
|
1292
f7d9fefcae88
Fixes for SourceForge tracker bugs.
Richard Jones <richard@users.sourceforge.net>
parents:
1278
diff
changeset
|
4580 |
| 1262 | 4581 |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4582 Blocking issues that depend on other issues |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4583 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4584 |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4585 We needed the ability to mark certain issues as "blockers" - that is, |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4586 they can't be resolved until another issue (the blocker) they rely on is |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4587 resolved. To achieve this: |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4588 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4589 1. Create a new property on the ``issue`` class: |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4590 ``blockers=Multilink("issue")``. To do this, edit the definition of |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4591 this class in your tracker's ``schema.py`` file. Change this:: |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4592 |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4593 issue = IssueClass(db, "issue", |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4594 assignedto=Link("user"), keyword=Multilink("keyword"), |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4595 priority=Link("priority"), status=Link("status")) |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4596 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4597 to this, adding the blockers entry:: |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4598 |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4599 issue = IssueClass(db, "issue", |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4600 blockers=Multilink("issue"), |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4601 assignedto=Link("user"), keyword=Multilink("keyword"), |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4602 priority=Link("priority"), status=Link("status")) |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4603 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4604 2. Add the new ``blockers`` property to the ``issue.item.html`` edit |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4605 page, using something like:: |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4606 |
|
1825
fad32dafc174
Replaced all uses of the 'nowrap' attribute with its CSS equivalent:
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1817
diff
changeset
|
4607 <th>Waiting On</th> |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4608 <td> |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4609 <span tal:replace="structure python:context.blockers.field(showid=1, |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4610 size=20)" /> |
|
3881
e7050411a774
fix documentation per [SF#731171] thanks to Forest Wilkinson
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3878
diff
changeset
|
4611 <span tal:replace="structure python:db.issue.classhelp('id,title', |
|
e7050411a774
fix documentation per [SF#731171] thanks to Forest Wilkinson
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3878
diff
changeset
|
4612 property='blockers')" /> |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4613 <span tal:condition="context/blockers" |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4614 tal:repeat="blk context/blockers"> |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4615 <br>View: <a tal:attributes="href string:issue${blk/id}" |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4616 tal:content="blk/id"></a> |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4617 </span> |
|
3881
e7050411a774
fix documentation per [SF#731171] thanks to Forest Wilkinson
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3878
diff
changeset
|
4618 </td> |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4619 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4620 You'll need to fiddle with your item page layout to find an |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4621 appropriate place to put it - I'll leave that fun part up to you. |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4622 Just make sure it appears in the first table, possibly somewhere near |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4623 the "superseders" field. |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4624 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4625 3. Create a new detector module (see below) which enforces the rules: |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4626 |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4627 - issues may not be resolved if they have blockers |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4628 - when a blocker is resolved, it's removed from issues it blocks |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4629 |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4630 The contents of the detector should be something like this:: |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4631 |
| 3258 | 4632 |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4633 def blockresolution(db, cl, nodeid, newvalues): |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4634 ''' If the issue has blockers, don't allow it to be resolved. |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4635 ''' |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4636 if nodeid is None: |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4637 blockers = [] |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4638 else: |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4639 blockers = cl.get(nodeid, 'blockers') |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4640 blockers = newvalues.get('blockers', blockers) |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4641 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4642 # don't do anything if there's no blockers or the status hasn't |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4643 # changed |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
4644 if not blockers or 'status' not in newvalues: |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4645 return |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4646 |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4647 # get the resolved state ID |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4648 resolved_id = db.status.lookup('resolved') |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4649 |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4650 # format the info |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4651 u = db.config.TRACKER_WEB |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4652 s = ', '.join(['<a href="%sissue%s">%s</a>'%( |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4653 u,id,id) for id in blockers]) |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4654 if len(blockers) == 1: |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4655 s = 'issue %s is'%s |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4656 else: |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4657 s = 'issues %s are'%s |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4658 |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4659 # ok, see if we're trying to resolve |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4660 if newvalues['status'] == resolved_id: |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
4661 raise ValueError("This issue can't be resolved until %s resolved."%s) |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4662 |
| 3258 | 4663 |
| 4664 def resolveblockers(db, cl, nodeid, oldvalues): | |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4665 ''' When we resolve an issue that's a blocker, remove it from the |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4666 blockers list of the issue(s) it blocks. |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4667 ''' |
| 3258 | 4668 newstatus = cl.get(nodeid,'status') |
| 4669 | |
| 4670 # no change? | |
| 4671 if oldvalues.get('status', None) == newstatus: | |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4672 return |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4673 |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4674 resolved_id = db.status.lookup('resolved') |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4675 |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4676 # interesting? |
| 3258 | 4677 if newstatus != resolved_id: |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4678 return |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4679 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4680 # yes - find all the blocked issues, if any, and remove me from |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4681 # their blockers list |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4682 issues = cl.find(blockers=nodeid) |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4683 for issueid in issues: |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4684 blockers = cl.get(issueid, 'blockers') |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4685 if nodeid in blockers: |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4686 blockers.remove(nodeid) |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4687 cl.set(issueid, blockers=blockers) |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4688 |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4689 def init(db): |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4690 # might, in an obscure situation, happen in a create |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4691 db.issue.audit('create', blockresolution) |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4692 db.issue.audit('set', blockresolution) |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4693 |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4694 # can only happen on a set |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4695 db.issue.react('set', resolveblockers) |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4696 |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4697 Put the above code in a file called "blockers.py" in your tracker's |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4698 "detectors" directory. |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4699 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4700 4. Finally, and this is an optional step, modify the tracker web page |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4701 URLs so they filter out issues with any blockers. You do this by |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4702 adding an additional filter on "blockers" for the value "-1". For |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4703 example, the existing "Show All" link in the "page" template (in the |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4704 tracker's "html" directory) looks like this:: |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4705 |
|
3796
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4706 <a href="#" |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4707 tal:attributes="href python:request.indexargs_url('issue', { |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4708 '@sort': '-activity', |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4709 '@group': 'priority', |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4710 '@filter': 'status', |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4711 '@columns': columns_showall, |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4712 '@search_text': '', |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4713 'status': status_notresolved, |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4714 '@dispname': i18n.gettext('Show All'), |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4715 })" |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4716 i18n:translate="">Show All</a><br> |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4717 |
|
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4718 modify it to add the "blockers" info to the URL (note, both the |
| 3590 | 4719 "@filter" *and* "blockers" values must be specified):: |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4720 |
|
3796
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4721 <a href="#" |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4722 tal:attributes="href python:request.indexargs_url('issue', { |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4723 '@sort': '-activity', |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4724 '@group': 'priority', |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4725 '@filter': 'status,blockers', |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4726 '@columns': columns_showall, |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4727 '@search_text': '', |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4728 'status': status_notresolved, |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4729 'blockers': '-1', |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4730 '@dispname': i18n.gettext('Show All'), |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4731 })" |
|
aef19fff38dd
If-Modified-Since handling was broken
Richard Jones <richard@users.sourceforge.net>
parents:
3772
diff
changeset
|
4732 i18n:translate="">Show All</a><br> |
| 2409 | 4733 |
| 3052 | 4734 The above examples are line-wrapped on the trailing & and should |
| 4735 be unwrapped. | |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4736 |
|
1674
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4737 That's it. You should now be able to set blockers on your issues. Note |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4738 that if you want to know whether an issue has any other issues dependent |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4739 on it (i.e. it's in their blockers list) you can look at the journal |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4740 history at the bottom of the issue page - look for a "link" event to |
|
0807e3676133
Reflowed to 72 columns, some tidying, updating & rephrasing ..
Jean Jordaan <neaj@users.sourceforge.net>
parents:
1671
diff
changeset
|
4741 another issue's "blockers" property. |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4742 |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4743 Add users to the nosy list based on the keyword |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4744 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4745 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4746 Let's say we need the ability to automatically add users to the nosy |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4747 list based |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4748 on the occurance of a keyword. Every user should be allowed to edit their |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4749 own list of keywords for which they want to be added to the nosy list. |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4750 |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4751 Below, we'll show that this change can be done with minimal |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4752 understanding of the Roundup system, using only copy and paste. |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4753 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4754 This requires three changes to the tracker: a change in the database to |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4755 allow per-user recording of the lists of keywords for which he wants to |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4756 be put on the nosy list, a change in the user view allowing them to edit |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4757 this list of keywords, and addition of an auditor which updates the nosy |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4758 list when a keyword is set. |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4759 |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4760 Adding the nosy keyword list |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4761 :::::::::::::::::::::::::::: |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4762 |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4763 The change to make in the database, is that for any user there should be a list |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4764 of keywords for which he wants to be put on the nosy list. Adding a |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4765 ``Multilink`` of ``keyword`` seems to fullfill this. As such, all that has to |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4766 be done is to add a new field to the definition of ``user`` within the file |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4767 ``schema.py``. We will call this new field ``nosy_keywords``, and the updated |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4768 definition of user will be:: |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4769 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4770 user = Class(db, "user", |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4771 username=String(), password=Password(), |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4772 address=String(), realname=String(), |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4773 phone=String(), organisation=String(), |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4774 alternate_addresses=String(), |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4775 queries=Multilink('query'), roles=String(), |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4776 timezone=String(), |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4777 nosy_keywords=Multilink('keyword')) |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4778 |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4779 Changing the user view to allow changing the nosy keyword list |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4780 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4781 |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4782 We want any user to be able to change the list of keywords for which |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4783 he will by default be added to the nosy list. We choose to add this |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4784 to the user view, as is generated by the file ``html/user.item.html``. |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4785 We can easily |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4786 see that the keyword field in the issue view has very similar editing |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4787 requirements as our nosy keywords, both being lists of keywords. As |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4788 such, we look for Keywords in ``issue.item.html``, and extract the |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4789 associated parts from there. We add this to ``user.item.html`` at the |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4790 bottom of the list of viewed items (i.e. just below the 'Alternate |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4791 E-mail addresses' in the classic template):: |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4792 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4793 <tr> |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4794 <th>Nosy Keywords</th> |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4795 <td> |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4796 <span tal:replace="structure context/nosy_keywords/field" /> |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4797 <span tal:replace="structure python:db.keyword.classhelp(property='nosy_keywords')" /> |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4798 </td> |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4799 </tr> |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4800 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4801 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4802 Addition of an auditor to update the nosy list |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4803 :::::::::::::::::::::::::::::::::::::::::::::: |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4804 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4805 The more difficult part is the logic to add |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4806 the users to the nosy list when required. |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4807 We choose to perform this action whenever the keywords on an |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4808 item are set (this includes the creation of items). |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4809 Here we choose to start out with a copy of the |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4810 ``detectors/nosyreaction.py`` detector, which we copy to the file |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4811 ``detectors/nosy_keyword_reaction.py``. |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4812 This looks like a good start as it also adds users |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4813 to the nosy list. A look through the code reveals that the |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4814 ``nosyreaction`` function actually sends the e-mail. |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4815 We don't need this. Therefore, we can change the ``init`` function to:: |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4816 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4817 def init(db): |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4818 db.issue.audit('create', update_kw_nosy) |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4819 db.issue.audit('set', update_kw_nosy) |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4820 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4821 After that, we rename the ``updatenosy`` function to ``update_kw_nosy``. |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4822 The first two blocks of code in that function relate to setting |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4823 ``current`` to a combination of the old and new nosy lists. This |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4824 functionality is left in the new auditor. The following block of |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4825 code, which handled adding the assignedto user(s) to the nosy list in |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4826 ``updatenosy``, should be replaced by a block of code to add the |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4827 interested users to the nosy list. We choose here to loop over all |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4828 new keywords, than looping over all users, |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4829 and assign the user to the nosy list when the keyword occurs in the user's |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4830 ``nosy_keywords``. The next part in ``updatenosy`` -- adding the author |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4831 and/or recipients of a message to the nosy list -- is obviously not |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4832 relevant here and is thus deleted from the new auditor. The last |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4833 part, copying the new nosy list to ``newvalues``, can stay as is. |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4834 This results in the following function:: |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4835 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4836 def update_kw_nosy(db, cl, nodeid, newvalues): |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4837 '''Update the nosy list for changes to the keywords |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4838 ''' |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4839 # nodeid will be None if this is a new node |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4840 current = {} |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4841 if nodeid is None: |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4842 ok = ('new', 'yes') |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4843 else: |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4844 ok = ('yes',) |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4845 # old node, get the current values from the node if they haven't |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4846 # changed |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
4847 if 'nosy' not in newvalues: |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4848 nosy = cl.get(nodeid, 'nosy') |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4849 for value in nosy: |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
4850 if value not in current: |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4851 current[value] = 1 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4852 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4853 # if the nosy list changed in this transaction, init from the new value |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
4854 if 'nosy' in newvalues: |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4855 nosy = newvalues.get('nosy', []) |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4856 for value in nosy: |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4857 if not db.hasnode('user', value): |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4858 continue |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
4859 if value not in current: |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4860 current[value] = 1 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4861 |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4862 # add users with keyword in nosy_keywords to the nosy list |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
4863 if 'keyword' in newvalues and newvalues['keyword'] is not None: |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4864 keyword_ids = newvalues['keyword'] |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4865 for keyword in keyword_ids: |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4866 # loop over all users, |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4867 # and assign user to nosy when keyword in nosy_keywords |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4868 for user_id in db.user.list(): |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4869 nosy_kw = db.user.get(user_id, "nosy_keywords") |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4870 found = 0 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4871 for kw in nosy_kw: |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4872 if kw == keyword: |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4873 found = 1 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4874 if found: |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4875 current[user_id] = 1 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4876 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4877 # that's it, save off the new nosy list |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
4878 newvalues['nosy'] = list(current.keys()) |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4879 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4880 These two function are the only ones needed in the file. |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4881 |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4882 TODO: update this example to use the ``find()`` Class method. |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4883 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4884 Caveats |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4885 ::::::: |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4886 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4887 A few problems with the design here can be noted: |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4888 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4889 Multiple additions |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4890 When a user, after automatic selection, is manually removed |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4891 from the nosy list, he is added to the nosy list again when the |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4892 keyword list of the issue is updated. A better design might be |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4893 to only check which keywords are new compared to the old list |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4894 of keywords, and only add users when they have indicated |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4895 interest on a new keyword. |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4896 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4897 The code could also be changed to only trigger on the ``create()`` |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4898 event, rather than also on the ``set()`` event, thus only setting |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4899 the nosy list when the issue is created. |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4900 |
|
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4901 Scalability |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4902 In the auditor, there is a loop over all users. For a site with |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4903 only few users this will pose no serious problem; however, with |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4904 many users this will be a serious performance bottleneck. |
|
3904
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4905 A way out would be to link from the keywords to the users who |
|
91008ec8f9a0
retire "topic" usage
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3881
diff
changeset
|
4906 selected these keywords as nosy keywords. This will eliminate the |
|
1808
3ac35c8e1782
new example and some more installation docs
Richard Jones <richard@users.sourceforge.net>
parents:
1800
diff
changeset
|
4907 loop over all users. |
|
1559
6bfb9c9de03c
added blockers customisation example to doc
Richard Jones <richard@users.sourceforge.net>
parents:
1522
diff
changeset
|
4908 |
| 4781 | 4909 Restricting updates that arrive by email |
| 4910 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| 4911 | |
| 4912 Roundup supports multiple update methods: | |
| 4913 | |
| 4914 1. command line | |
| 4915 2. plain email | |
| 4916 3. pgp signed email | |
| 4917 4. web access | |
| 4918 | |
| 4919 in some cases you may need to prevent changes to properties by some of | |
| 4920 these methods. For example you can set up issues that are viewable | |
| 4921 only by people on the nosy list. So you must prevent unauthenticated | |
| 4922 changes to the nosy list. | |
| 4923 | |
| 4924 Since plain email can be easily forged, it does not provide sufficient | |
| 4925 authentication in this senario. | |
| 4926 | |
| 4927 To prevent this we can add a detector that audits the source of the | |
| 4928 transaction and rejects the update if it changes the nosy list. | |
| 4929 | |
| 4930 Create the detector (auditor) module and add it to the detectors | |
| 4931 directory of your tracker:: | |
| 4932 | |
| 4933 from roundup import roundupdb, hyperdb | |
| 4934 | |
| 4935 from roundup.mailgw import Unauthorized | |
| 4936 | |
| 4937 def restrict_nosy_changes(db, cl, nodeid, newvalues): | |
| 4938 '''Do not permit changes to nosy via email.''' | |
| 4939 | |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
4940 if 'nosy' not in newvalues: |
| 4781 | 4941 # the nosy field has not changed so no need to check. |
| 4942 return | |
| 4943 | |
|
5881
9938c40e03bc
Add "rest" and "xmlrpc" values for database tx_Source property
John Rouillard <rouilj@ieee.org>
parents:
5759
diff
changeset
|
4944 if db.tx_Source in ['web', 'rest', 'xmlrpc', 'email-sig-openpgp', 'cli' ]: |
| 4781 | 4945 # if the source of the transaction is from an authenticated |
| 4946 # source or a privileged process allow the transaction. | |
| 4947 # Other possible sources: 'email' | |
| 4948 return | |
| 4949 | |
| 4950 # otherwise raise an error | |
|
5248
198b6e810c67
Use Python-3-compatible 'as' syntax for except statements
Eric S. Raymond <esr@thyrsus.com>
parents:
5239
diff
changeset
|
4951 raise Unauthorized( \ |
| 4781 | 4952 'Changes to nosy property not allowed via %s for this issue.'%\ |
|
5248
198b6e810c67
Use Python-3-compatible 'as' syntax for except statements
Eric S. Raymond <esr@thyrsus.com>
parents:
5239
diff
changeset
|
4953 tx_Source) |
| 4781 | 4954 |
| 4955 def init(db): | |
| 4956 ''' Install restrict_nosy_changes to run after other auditors. | |
| 4957 | |
| 4958 Allow initial creation email to set nosy. | |
| 4959 So don't execute: db.issue.audit('create', requestedbyauditor) | |
| 4960 | |
| 4961 Set priority to 110 to run this auditor after other auditors | |
| 4962 that can cause nosy to change. | |
| 4963 ''' | |
| 4964 db.issue.audit('set', restrict_nosy_changes, 110) | |
| 4965 | |
| 4966 This detector (auditor) will prevent updates to the nosy field if it | |
| 4967 arrives by email. Since it runs after other auditors (due to the | |
| 4968 priority of 110), it will also prevent changes to the nosy field that | |
| 4969 are done by other auditors if triggered by an email. | |
| 4970 | |
| 4971 Note that db.tx_Source was not present in roundup versions before | |
|
4790
07014a4b8a49
tx_Source property: doc fix.
Bernhard Reiter <bernhard@intevation.de>
parents:
4781
diff
changeset
|
4972 1.4.22, so you must be running a newer version to use this detector. |
| 4781 | 4973 Read the CHANGES.txt document in the roundup source code for further |
| 4974 details on tx_Source. | |
| 4975 | |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4976 Changes to Security and Permissions |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4977 ----------------------------------- |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4978 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4979 Restricting the list of users that are assignable to a task |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4980 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4981 |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
4982 1. In your tracker's ``schema.py``, create a new Role, say "Developer":: |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4983 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4984 db.security.addRole(name='Developer', description='A developer') |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4985 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4986 2. Just after that, create a new Permission, say "Fixer", specific to |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4987 "issue":: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4988 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4989 p = db.security.addPermission(name='Fixer', klass='issue', |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4990 description='User is allowed to be assigned to fix issues') |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4991 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4992 3. Then assign the new Permission to your "Developer" Role:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4993 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4994 db.security.addPermissionToRole('Developer', p) |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4995 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
4996 4. In the issue item edit page (``html/issue.item.html`` in your tracker |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4997 directory), use the new Permission in restricting the "assignedto" |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4998 list:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
4999 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5000 <select name="assignedto"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5001 <option value="-1">- no selection -</option> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5002 <tal:block tal:repeat="user db/user/list"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5003 <option tal:condition="python:user.hasPermission( |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5004 'Fixer', context._classname)" |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5005 tal:attributes=" |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5006 value user/id; |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5007 selected python:user.id == context.assignedto" |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5008 tal:content="user/realname"></option> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5009 </tal:block> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5010 </select> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5011 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5012 For extra security, you may wish to setup an auditor to enforce the |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5013 Permission requirement (install this as ``assignedtoFixer.py`` in your |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5014 tracker ``detectors`` directory):: |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5015 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5016 def assignedtoMustBeFixer(db, cl, nodeid, newvalues): |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5017 ''' Ensure the assignedto value in newvalues is used with the |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5018 Fixer Permission |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5019 ''' |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
5020 if 'assignedto' not in newvalues: |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5021 # don't care |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5022 return |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5023 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5024 # get the userid |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5025 userid = newvalues['assignedto'] |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5026 if not db.security.hasPermission('Fixer', userid, cl.classname): |
|
5332
d0689aaa83db
Applied patch 0038 from issue2550960 to upgrade code examples in
John Rouillard <rouilj@ieee.org>
parents:
5268
diff
changeset
|
5027 raise ValueError('You do not have permission to edit %s'%cl.classname) |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5028 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5029 def init(db): |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5030 db.issue.audit('set', assignedtoMustBeFixer) |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5031 db.issue.audit('create', assignedtoMustBeFixer) |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5032 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5033 So now, if an edit action attempts to set "assignedto" to a user that |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5034 doesn't have the "Fixer" Permission, the error will be raised. |
|
1816
61a23c293147
added another example
Richard Jones <richard@users.sourceforge.net>
parents:
1808
diff
changeset
|
5035 |
| 3121 | 5036 |
|
1954
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5037 Users may only edit their issues |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5038 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
1954
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5039 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5040 In this case, users registering themselves are granted Provisional |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5041 access, meaning they |
|
1954
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5042 have access to edit the issues they submit, but not others. We create a new |
|
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5043 Role called "Provisional User" which is granted to newly-registered users, |
|
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5044 and has limited access. One of the Permissions they have is the new "Edit |
| 3121 | 5045 Own" on issues (regular users have "Edit".) |
|
1954
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5046 |
|
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5047 First up, we create the new Role and Permission structure in |
|
2983
9614a101b68f
Stuff from the train ride this morning:
Richard Jones <richard@users.sourceforge.net>
parents:
2958
diff
changeset
|
5048 ``schema.py``:: |
|
1954
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5049 |
| 3121 | 5050 # |
|
1954
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5051 # New users not approved by the admin |
| 3121 | 5052 # |
|
1954
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5053 db.security.addRole(name='Provisional User', |
|
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5054 description='New user registered via web or email') |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
5055 |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
5056 # These users need to be able to view and create issues but only edit |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
5057 # and view their own |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
5058 db.security.addPermissionToRole('Provisional User', 'Create', 'issue') |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
5059 def own_issue(db, userid, itemid): |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
5060 '''Determine whether the userid matches the creator of the issue.''' |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
5061 return userid == db.issue.get(itemid, 'creator') |
|
3079
64df8d65cc54
fix "Users may only edit their issues"
Richard Jones <richard@users.sourceforge.net>
parents:
3052
diff
changeset
|
5062 p = db.security.addPermission(name='Edit', klass='issue', |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5063 check=own_issue, description='Can only edit own issues') |
|
1954
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5064 db.security.addPermissionToRole('Provisional User', p) |
|
3079
64df8d65cc54
fix "Users may only edit their issues"
Richard Jones <richard@users.sourceforge.net>
parents:
3052
diff
changeset
|
5065 p = db.security.addPermission(name='View', klass='issue', |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5066 check=own_issue, description='Can only view own issues') |
|
1954
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5067 db.security.addPermissionToRole('Provisional User', p) |
|
5537
d698d3d843a9
'Provisional User' example needed to have search permissions added
John Rouillard <rouilj@ieee.org>
parents:
5367
diff
changeset
|
5068 # This allows the interface to get the names of the properties |
|
d698d3d843a9
'Provisional User' example needed to have search permissions added
John Rouillard <rouilj@ieee.org>
parents:
5367
diff
changeset
|
5069 # in the issue. Used for selecting sorting and grouping |
|
d698d3d843a9
'Provisional User' example needed to have search permissions added
John Rouillard <rouilj@ieee.org>
parents:
5367
diff
changeset
|
5070 # on the index page. |
|
d698d3d843a9
'Provisional User' example needed to have search permissions added
John Rouillard <rouilj@ieee.org>
parents:
5367
diff
changeset
|
5071 p = db.security.addPermission(name='Search', klass='issue') |
|
d698d3d843a9
'Provisional User' example needed to have search permissions added
John Rouillard <rouilj@ieee.org>
parents:
5367
diff
changeset
|
5072 db.security.addPermissionToRole ('Provisional User', p) |
|
d698d3d843a9
'Provisional User' example needed to have search permissions added
John Rouillard <rouilj@ieee.org>
parents:
5367
diff
changeset
|
5073 |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
5074 |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
5075 # Assign the Permissions for issue-related classes |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
5076 for cl in 'file', 'msg', 'query', 'keyword': |
| 3121 | 5077 db.security.addPermissionToRole('Provisional User', 'View', cl) |
| 5078 db.security.addPermissionToRole('Provisional User', 'Edit', cl) | |
| 5079 db.security.addPermissionToRole('Provisional User', 'Create', cl) | |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
5080 for cl in 'priority', 'status': |
| 3121 | 5081 db.security.addPermissionToRole('Provisional User', 'View', cl) |
|
1954
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5082 |
|
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5083 # and give the new users access to the web and email interface |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
5084 db.security.addPermissionToRole('Provisional User', 'Web Access') |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2983
diff
changeset
|
5085 db.security.addPermissionToRole('Provisional User', 'Email Access') |
|
1954
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5086 |
|
3260
e41e1540a287
fix provisional user so they can view their own record
Richard Jones <richard@users.sourceforge.net>
parents:
3258
diff
changeset
|
5087 # make sure they can view & edit their own user record |
|
e41e1540a287
fix provisional user so they can view their own record
Richard Jones <richard@users.sourceforge.net>
parents:
3258
diff
changeset
|
5088 def own_record(db, userid, itemid): |
|
e41e1540a287
fix provisional user so they can view their own record
Richard Jones <richard@users.sourceforge.net>
parents:
3258
diff
changeset
|
5089 '''Determine whether the userid matches the item being accessed.''' |
|
e41e1540a287
fix provisional user so they can view their own record
Richard Jones <richard@users.sourceforge.net>
parents:
3258
diff
changeset
|
5090 return userid == itemid |
|
e41e1540a287
fix provisional user so they can view their own record
Richard Jones <richard@users.sourceforge.net>
parents:
3258
diff
changeset
|
5091 p = db.security.addPermission(name='View', klass='user', check=own_record, |
|
e41e1540a287
fix provisional user so they can view their own record
Richard Jones <richard@users.sourceforge.net>
parents:
3258
diff
changeset
|
5092 description="User is allowed to view their own user details") |
|
e41e1540a287
fix provisional user so they can view their own record
Richard Jones <richard@users.sourceforge.net>
parents:
3258
diff
changeset
|
5093 db.security.addPermissionToRole('Provisional User', p) |
|
e41e1540a287
fix provisional user so they can view their own record
Richard Jones <richard@users.sourceforge.net>
parents:
3258
diff
changeset
|
5094 p = db.security.addPermission(name='Edit', klass='user', check=own_record, |
|
e41e1540a287
fix provisional user so they can view their own record
Richard Jones <richard@users.sourceforge.net>
parents:
3258
diff
changeset
|
5095 description="User is allowed to edit their own user details") |
|
e41e1540a287
fix provisional user so they can view their own record
Richard Jones <richard@users.sourceforge.net>
parents:
3258
diff
changeset
|
5096 db.security.addPermissionToRole('Provisional User', p) |
|
1954
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5097 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5098 Then, in ``config.ini``, we change the Role assigned to newly-registered |
|
1954
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5099 users, replacing the existing ``'User'`` values:: |
|
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5100 |
|
2921
ad4fb8a14a97
more doc updates, not so many TODOs any more
Richard Jones <richard@users.sourceforge.net>
parents:
2915
diff
changeset
|
5101 [main] |
|
ad4fb8a14a97
more doc updates, not so many TODOs any more
Richard Jones <richard@users.sourceforge.net>
parents:
2915
diff
changeset
|
5102 ... |
|
4941
b76710818d31
Roundup Tracker isssue #: 2550857
John Rouillard <rouilj@ieee.org>
parents:
4921
diff
changeset
|
5103 new_web_user_roles = Provisional User |
|
b76710818d31
Roundup Tracker isssue #: 2550857
John Rouillard <rouilj@ieee.org>
parents:
4921
diff
changeset
|
5104 new_email_user_roles = Provisional User |
|
1954
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5105 |
|
a71bc3a6f433
Added 'Users may only edit their issues' customisation example.
Richard Jones <richard@users.sourceforge.net>
parents:
1952
diff
changeset
|
5106 |
|
3126
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5107 All users may only view and edit issues, files and messages they create |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5108 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5109 |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5110 Replace the standard "classic" tracker View and Edit Permission assignments |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5111 for the "issue", "file" and "msg" classes with the following:: |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5112 |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5113 def checker(klass): |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5114 def check(db, userid, itemid, klass=klass): |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5115 return db.getclass(klass).get(itemid, 'creator') == userid |
|
3580
5c26b9bbd31a
fix "All users may only view and edit issues, files and messages they...
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
5116 return check |
|
3126
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5117 for cl in 'issue', 'file', 'msg': |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5118 p = db.security.addPermission(name='View', klass=cl, |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5119 check=checker(cl)) |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5120 db.security.addPermissionToRole('User', p) |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5121 p = db.security.addPermission(name='Edit', klass=cl, |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5122 check=checker(cl)) |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5123 db.security.addPermissionToRole('User', p) |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5124 db.security.addPermissionToRole('User', 'Create', cl) |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5125 |
|
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5126 |
|
4300
608919e3bbbf
add another simple recipe
Richard Jones <richard@users.sourceforge.net>
parents:
4296
diff
changeset
|
5127 Moderating user registration |
|
608919e3bbbf
add another simple recipe
Richard Jones <richard@users.sourceforge.net>
parents:
4296
diff
changeset
|
5128 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
608919e3bbbf
add another simple recipe
Richard Jones <richard@users.sourceforge.net>
parents:
4296
diff
changeset
|
5129 |
|
608919e3bbbf
add another simple recipe
Richard Jones <richard@users.sourceforge.net>
parents:
4296
diff
changeset
|
5130 You could set up new-user moderation in a public tracker by: |
|
608919e3bbbf
add another simple recipe
Richard Jones <richard@users.sourceforge.net>
parents:
4296
diff
changeset
|
5131 |
|
608919e3bbbf
add another simple recipe
Richard Jones <richard@users.sourceforge.net>
parents:
4296
diff
changeset
|
5132 1. creating a new highly-restricted user role "Pending", |
|
608919e3bbbf
add another simple recipe
Richard Jones <richard@users.sourceforge.net>
parents:
4296
diff
changeset
|
5133 2. set the config new_web_user_roles and/or new_email_user_roles to that |
|
608919e3bbbf
add another simple recipe
Richard Jones <richard@users.sourceforge.net>
parents:
4296
diff
changeset
|
5134 role, |
|
608919e3bbbf
add another simple recipe
Richard Jones <richard@users.sourceforge.net>
parents:
4296
diff
changeset
|
5135 3. have an auditor that emails you when new users are created with that |
|
608919e3bbbf
add another simple recipe
Richard Jones <richard@users.sourceforge.net>
parents:
4296
diff
changeset
|
5136 role using roundup.mailer |
|
608919e3bbbf
add another simple recipe
Richard Jones <richard@users.sourceforge.net>
parents:
4296
diff
changeset
|
5137 4. edit the role to "User" for valid users. |
|
608919e3bbbf
add another simple recipe
Richard Jones <richard@users.sourceforge.net>
parents:
4296
diff
changeset
|
5138 |
|
608919e3bbbf
add another simple recipe
Richard Jones <richard@users.sourceforge.net>
parents:
4296
diff
changeset
|
5139 Some simple javascript might help in the last step. If you have high volume |
|
608919e3bbbf
add another simple recipe
Richard Jones <richard@users.sourceforge.net>
parents:
4296
diff
changeset
|
5140 you could search for all currently-Pending users and do a bulk edit of all |
|
608919e3bbbf
add another simple recipe
Richard Jones <richard@users.sourceforge.net>
parents:
4296
diff
changeset
|
5141 their roles at once (again probably with some simple javascript help). |
|
608919e3bbbf
add another simple recipe
Richard Jones <richard@users.sourceforge.net>
parents:
4296
diff
changeset
|
5142 |
|
3126
a2889d22db4a
the cgi templating code now checks item-level
Richard Jones <richard@users.sourceforge.net>
parents:
3123
diff
changeset
|
5143 |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5144 Changes to the Web User Interface |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5145 --------------------------------- |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5146 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5147 Adding action links to the index page |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5148 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5149 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5150 Add a column to the ``item.index.html`` template. |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5151 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5152 Resolving the issue:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5153 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5154 <a tal:attributes="href |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5155 string:issue${i/id}?:status=resolved&:action=edit">resolve</a> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5156 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5157 "Take" the issue:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5158 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5159 <a tal:attributes="href |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5160 string:issue${i/id}?:assignedto=${request/user/id}&:action=edit">take</a> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5161 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5162 ... and so on. |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5163 |
|
1966
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5164 Colouring the rows in the issue index according to priority |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5165 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
1966
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5166 |
|
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5167 A simple ``tal:attributes`` statement will do the bulk of the work here. In |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5168 the ``issue.index.html`` template, add this to the ``<tr>`` that |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5169 displays the rows of data:: |
|
1966
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5170 |
|
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5171 <tr tal:attributes="class string:priority-${i/priority/plain}"> |
|
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5172 |
|
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5173 and then in your stylesheet (``style.css``) specify the colouring for the |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5174 different priorities, as follows:: |
|
1966
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5175 |
|
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5176 tr.priority-critical td { |
|
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5177 background-color: red; |
|
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5178 } |
|
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5179 |
|
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5180 tr.priority-urgent td { |
|
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5181 background-color: orange; |
|
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5182 } |
|
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5183 |
|
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5184 and so on, with far less offensive colours :) |
|
c8d8d03b6d94
another example
Richard Jones <richard@users.sourceforge.net>
parents:
1954
diff
changeset
|
5185 |
|
2009
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5186 Editing multiple items in an index view |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5187 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
2009
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5188 |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5189 To edit the status of all items in the item index view, edit the |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5190 ``issue.item.html``: |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5191 |
|
2726
aa95c79cff8b
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
2589
diff
changeset
|
5192 1. add a form around the listing table (separate from the existing |
|
aa95c79cff8b
clarification
Richard Jones <richard@users.sourceforge.net>
parents:
2589
diff
changeset
|
5193 index-page form), so at the top it reads:: |
|
2009
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5194 |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5195 <form method="POST" tal:attributes="action request/classname"> |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5196 <table class="list"> |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5197 |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5198 and at the bottom of that table:: |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5199 |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5200 </table> |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5201 </form |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5202 |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5203 making sure you match the ``</table>`` from the list table, not the |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5204 navigation table or the subsequent form table. |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5205 |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5206 2. in the display for the issue property, change:: |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5207 |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5208 <td tal:condition="request/show/status" |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5209 tal:content="python:i.status.plain() or default"> </td> |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5210 |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5211 to:: |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5212 |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5213 <td tal:condition="request/show/status" |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5214 tal:content="structure i/status/field"> </td> |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5215 |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5216 this will result in an edit field for the status property. |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5217 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5218 3. after the ``tal:block`` which lists the index items (marked by |
|
2009
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5219 ``tal:repeat="i batch"``) add a new table row:: |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5220 |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5221 <tr> |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5222 <td tal:attributes="colspan python:len(request.columns)"> |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
5223 <input name="@csrf" type="hidden" |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
5224 tal:attributes="value python:utils.anti_csrf_nonce()"> |
|
2009
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5225 <input type="submit" value=" Save Changes "> |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5226 <input type="hidden" name="@action" value="edit"> |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5227 <tal:block replace="structure request/indexargs_form" /> |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5228 </td> |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5229 </tr> |
|
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5230 |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
5231 which gives us a submit button, indicates that we are performing an |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
5232 edit on any changed statuses, and provides a defense against cross |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
5233 site request forgery attacks. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
5234 |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
5235 The final ``tal:block`` will make sure that the current index view |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
5236 parameters (filtering, columns, etc) will be used in rendering the |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
5237 next page (the results of the editing). |
|
2009
3594e5d2b411
added new example
Richard Jones <richard@users.sourceforge.net>
parents:
2007
diff
changeset
|
5238 |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5239 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5240 Displaying only message summaries in the issue display |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5241 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5242 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5243 Alter the ``issue.item`` template section for messages to:: |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5244 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5245 <table class="messages" tal:condition="context/messages"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5246 <tr><th colspan="5" class="header">Messages</th></tr> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5247 <tr tal:repeat="msg context/messages"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5248 <td><a tal:attributes="href string:msg${msg/id}" |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5249 tal:content="string:msg${msg/id}"></a></td> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5250 <td tal:content="msg/author">author</td> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5251 <td class="date" tal:content="msg/date/pretty">date</td> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5252 <td tal:content="msg/summary">summary</td> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5253 <td> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5254 <a tal:attributes="href string:?@remove@messages=${msg/id}&@action=edit"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5255 remove</a> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5256 </td> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5257 </tr> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5258 </table> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5259 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5260 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5261 Enabling display of either message summaries or the entire messages |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5262 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5263 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5264 This is pretty simple - all we need to do is copy the code from the |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5265 example `displaying only message summaries in the issue display`_ into |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5266 our template alongside the summary display, and then introduce a switch |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5267 that shows either the one or the other. We'll use a new form variable, |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5268 ``@whole_messages`` to achieve this:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5269 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5270 <table class="messages" tal:condition="context/messages"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5271 <tal:block tal:condition="not:request/form/@whole_messages/value | python:0"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5272 <tr><th colspan="3" class="header">Messages</th> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5273 <th colspan="2" class="header"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5274 <a href="?@whole_messages=yes">show entire messages</a> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5275 </th> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5276 </tr> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5277 <tr tal:repeat="msg context/messages"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5278 <td><a tal:attributes="href string:msg${msg/id}" |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5279 tal:content="string:msg${msg/id}"></a></td> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5280 <td tal:content="msg/author">author</td> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5281 <td class="date" tal:content="msg/date/pretty">date</td> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5282 <td tal:content="msg/summary">summary</td> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5283 <td> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5284 <a tal:attributes="href string:?@remove@messages=${msg/id}&@action=edit">remove</a> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5285 </td> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5286 </tr> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5287 </tal:block> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5288 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5289 <tal:block tal:condition="request/form/@whole_messages/value | python:0"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5290 <tr><th colspan="2" class="header">Messages</th> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5291 <th class="header"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5292 <a href="?@whole_messages=">show only summaries</a> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5293 </th> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5294 </tr> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5295 <tal:block tal:repeat="msg context/messages"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5296 <tr> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5297 <th tal:content="msg/author">author</th> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5298 <th class="date" tal:content="msg/date/pretty">date</th> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5299 <th style="text-align: right"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5300 (<a tal:attributes="href string:?@remove@messages=${msg/id}&@action=edit">remove</a>) |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5301 </th> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5302 </tr> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5303 <tr><td colspan="3" tal:content="msg/content"></td></tr> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5304 </tal:block> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5305 </tal:block> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5306 </table> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5307 |
| 3121 | 5308 |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5309 Setting up a "wizard" (or "druid") for controlled adding of issues |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5310 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5311 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5312 1. Set up the page templates you wish to use for data input. My wizard |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5313 is going to be a two-step process: first figuring out what category |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5314 of issue the user is submitting, and then getting details specific to |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5315 that category. The first page includes a table of help, explaining |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5316 what the category names mean, and then the core of the form:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5317 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5318 <form method="POST" onSubmit="return submit_once()" |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5319 enctype="multipart/form-data"> |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
5320 <input name="@csrf" type="hidden" |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
5321 tal:attributes="value python:utils.anti_csrf_nonce()"> |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5322 <input type="hidden" name="@template" value="add_page1"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5323 <input type="hidden" name="@action" value="page1_submit"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5324 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5325 <strong>Category:</strong> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5326 <tal:block tal:replace="structure context/category/menu" /> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5327 <input type="submit" value="Continue"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5328 </form> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5329 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5330 The next page has the usual issue entry information, with the |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5331 addition of the following form fragments:: |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5332 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5333 <form method="POST" onSubmit="return submit_once()" |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5334 enctype="multipart/form-data" |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5335 tal:condition="context/is_edit_ok" |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5336 tal:define="cat request/form/category/value"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5337 |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
5338 <input name="@csrf" type="hidden" |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5196
diff
changeset
|
5339 tal:attributes="value python:utils.anti_csrf_nonce()"> |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5340 <input type="hidden" name="@template" value="add_page2"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5341 <input type="hidden" name="@required" value="title"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5342 <input type="hidden" name="category" tal:attributes="value cat"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5343 . |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5344 . |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5345 . |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5346 </form> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5347 |
|
3130
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5348 Note that later in the form, I use the value of "cat" to decide which |
|
7308c3c5a943
docs editing from Jean Jordaan
Richard Jones <richard@users.sourceforge.net>
parents:
3127
diff
changeset
|
5349 form elements should be displayed. For example:: |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5350 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5351 <tal:block tal:condition="python:cat in '6 10 13 14 15 16 17'.split()"> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5352 <tr> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5353 <th>Operating System</th> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5354 <td tal:content="structure context/os/field"></td> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5355 </tr> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5356 <tr> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5357 <th>Web Browser</th> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5358 <td tal:content="structure context/browser/field"></td> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5359 </tr> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5360 </tal:block> |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5361 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5362 ... the above section will only be displayed if the category is one |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5363 of 6, 10, 13, 14, 15, 16 or 17. |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5364 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5365 3. Determine what actions need to be taken between the pages - these are |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5366 usually to validate user choices and determine what page is next. Now encode |
| 2915 | 5367 those actions in a new ``Action`` class (see `defining new web actions`_):: |
| 5368 | |
| 5369 from roundup.cgi.actions import Action | |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5370 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5371 class Page1SubmitAction(Action): |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5372 def handle(self): |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5373 ''' Verify that the user has selected a category, and then move |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5374 on to page 2. |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5375 ''' |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5376 category = self.form['category'].value |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5377 if category == '-1': |
|
4880
ca692423e401
Different approach to fix XSS in issue2550817
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4790
diff
changeset
|
5378 self.client.add_error_message('You must select a category of report') |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5379 return |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5380 # everything's ok, move on to the next page |
|
4464
c62c0f383e41
Fix incorrect setting of template in customizing.txt example action
Richard Jones <richard@users.sourceforge.net>
parents:
4435
diff
changeset
|
5381 self.client.template = 'add_page2' |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5382 |
| 2915 | 5383 def init(instance): |
| 5384 instance.registerAction('page1_submit', Page1SubmitAction) | |
|
2156
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5385 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5386 4. Use the usual "new" action as the ``@action`` on the final page, and |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5387 you're done (the standard context/submit method can do this for you). |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5388 |
|
d68eeb9d363f
reorg of the (now quite long) examples section and add new example
Richard Jones <richard@users.sourceforge.net>
parents:
2154
diff
changeset
|
5389 |
|
5714
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5390 Silent Submit |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5391 ~~~~~~~~~~~~~ |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5392 |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5393 When working on an issue, most of the time the people on the nosy list |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5394 need to be notified of changes. There are cases where a user wants to |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5395 add a comment to an issue and not bother other users on the nosy |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5396 list. |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5397 This feature is called Silent Submit because it allows the user to |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5398 silently modify an issue and not tell anyone. |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5399 |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5400 There are several parts to this change. The main activity part |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5401 involves editing the stock detectors/nosyreaction.py file in your |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5402 tracker. Insert the following lines near the top of the nosyreaction |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5403 function:: |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5404 |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5405 # Did user click button to do a silent change? |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5406 try: |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5407 if db.web['submit'] == "silent_change": |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5408 return |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5409 except (AttributeError, KeyError) as err: |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5410 # The web attribute or submit key don't exist. |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5411 # That's fine. We were probably triggered by an email |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5412 # or cli based change. |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5413 pass |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5414 |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5415 This checks the submit button to see if it is the silent type. If there |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5416 are exceptions trying to make that determination they are ignored and |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5417 processing continues. You may wonder how db.web gets set. This is done |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5418 by creating an extension. Add the file extensions/edit.py with |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5419 this content:: |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5420 |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5421 from roundup.cgi.actions import EditItemAction |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5422 |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5423 class Edit2Action(EditItemAction): |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5424 def handle(self): |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5425 self.db.web = {} # create the dict |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5426 # populate the dict by getting the value of the submit_button |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5427 # element from the form. |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5428 self.db.web['submit'] = self.form['submit_button'].value |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5429 |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5430 # call the core EditItemAction to process the edit. |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5431 EditItemAction.handle(self) |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5432 |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5433 def init(instance): |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5434 '''Override the default edit action with this new version''' |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5435 instance.registerAction('edit', Edit2Action) |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5436 |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5437 This code is a wrapper for the roundup EditItemAction. It checks the |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5438 form's submit button to save the value element. The rest of the changes |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5439 needed for the Silent Submit feature involves editing |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5440 html/issue.item.html to add the silent submit button. In |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5441 the stock issue.item.html the submit button is on a line that contains |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5442 "submit button". Replace that line with something like the following:: |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5443 |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5444 <input type="submit" name="submit_button" |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5445 tal:condition="context/is_edit_ok" |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5446 value="Submit Changes"> |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5447 <button type="submit" name="submit_button" |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5448 tal:condition="context/is_edit_ok" |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5449 title="Click this to submit but not send nosy email." |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5450 value="silent_change" i18n:translate=""> |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5451 Silent Change</button> |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5452 |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5453 Note the difference in the value attribute for the two submit buttons. |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5454 The value "silent_change" in the button specification must match the |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5455 string in the nosy reaction function. |
|
a5f5c044049f
Documentation additions by Tom Ekberg to add example of performing
John Rouillard <rouilj@ieee.org>
parents:
5538
diff
changeset
|
5456 |
|
3548
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5457 Debugging Trackers |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5458 ================== |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5459 |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5460 There are three switches in tracker configs that turn on debugging in |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5461 Roundup: |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5462 |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5463 1. web :: debug |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5464 2. mail :: debug |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5465 3. logging :: level |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5466 |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5467 See the config.ini file or the `tracker configuration`_ section above for |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5468 more information. |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5469 |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5470 Additionally, the ``roundup-server.py`` script has its own debugging mode |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5471 in which it reloads edited templates immediately when they are changed, |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5472 rather than requiring a web server restart. |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5473 |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
5474 |
|
1244
8dd4f736370b
merge from maintenance branch
Richard Jones <richard@users.sourceforge.net>
parents:
1236
diff
changeset
|
5475 .. _`design documentation`: design.html |
|
4325
6ec048310de7
add simple doc about translating customised tracker content
Richard Jones <richard@users.sourceforge.net>
parents:
4300
diff
changeset
|
5476 .. _`developer's guide`: developers.html |
