Skip to content

Commit ac22f4e

Browse files
author
Richard Jones
committed
backported fix to CGI form handling from 0.5
1 parent 9bf54b8 commit ac22f4e

File tree

5 files changed

+57
-39
lines changed

5 files changed

+57
-39
lines changed

CHANGES.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ are given with the most recent entry first.
55
Fixed:
66
. #600699 ] documentation in doc/getting_started.txt
77
. #600700 ] doc/upgrading.txt: no info about 0.4.3
8+
. #603703 ] way to unassign issues (backported from 0.5.0)
9+
810

911
2002-07-25 0.4.3
1012
Fixed:

doc/announcement.txt

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
=================================================
2-
SC-Track Roundup 0.4.2 - an issue tracking system
2+
SC-Track Roundup 0.4.3 - an issue tracking system
33
=================================================
44

55
Note: If you have an existing roundup installation, make a backup of your
@@ -8,18 +8,18 @@ database. Make sure you read doc/upgrading.txt!
88
Roundup requires python 2.1.1 for correct operation. Support for dumbdbm
99
requires python 2.1.2 or 2.2. 2.1.3 and 2.2.1 are recommended.
1010

11-
Big stuff in this release:
11+
This is a bugfix release, fixing:
1212

13-
- online demo at http://mechanicalcat.net/cgi-bin/roundup.cgi
14-
- fast full-text searching of messages
15-
- other speedups
16-
- bsddb3 backend is re-enabled
17-
- instance initialisation is a two-step process now, making mods easier
18-
- optionally auto-add the author and recipients of messages to the nosy
19-
- enhancements to make multilink editing through the web and email easier
20-
- cleaner use of auditors and reactors in the default schemas
21-
- demo scripts supplied in the scripts/ and detectors/ directories
22-
- Much, much more: see the CHANGES file for details
13+
. sf bug #576086: dumb copying mistake (frontends/ZRoundup.py)
14+
. installation instructions now mention "python2" in "testing your python".
15+
. bsddb3 backend should use 'c' for create, not 'n' for nuke
16+
. sf bug #571170: gdbm deadlock
17+
. sf bug #576241: MultiLink problems in parsePropsFromForm
18+
. sf bug #516854: "My Issues" and redisplay
19+
. htmltemplate do_menu with additional properties had problems when they
20+
weren't set
21+
. sf bug #562686: email attachments from outlook express
22+
. sf bug #535868: Anonymous User Login
2323

2424
Source and documentation is available at the website:
2525
http://roundup.sourceforge.net/
@@ -29,7 +29,6 @@ Mailing lists - the place to ask questions:
2929
http://sourceforge.net/mail/?group_id=31577
3030

3131

32-
3332
About Roundup
3433
=============
3534

doc/getting_started.txt

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Getting Started
33
===============
44

5-
:Version: $Revision: 1.3 $
5+
:Version: $Revision: 1.3.2.1 $
66

77
.. contents::
88

@@ -45,26 +45,18 @@ Instances are created using the ``roundup-admin`` tool.
4545
Command Line Tool
4646
-----------------
4747

48-
To initiliase a new instance, run "``roundup-admin init``". You will be asked a
49-
series of questions:
48+
To set up a new instance, run "``roundup-admin install``". You will be
49+
asked a few questions:
5050

5151
1. Instance home directory
5252
2. Schema to use
5353
3. Database back-end to use
54-
4. Administration user "admin" password.
5554

56-
You should also think about whether there is going to be controlled access
57-
to the
58-
instance on the machine the instance is running on. That is, who can
59-
actually make
60-
changes to the database using the roundup-admin tool. See the section on
61-
Users_and_Access_Control for information on how to secure your instance from the
62-
start.
63-
64-
Roundup is configurable using an ``instance_config.py`` file in the instance
65-
home. It
66-
should be edited before roundup is used, and may have the following variable
67-
declarations:
55+
Once you've chosen these, roundup will install the instance for you. It will
56+
then indicate that you should configure some more information in the
57+
file "``instance_config.py``" in the instance home. It
58+
should be edited before roundup is initialised, and may have the following
59+
variable declarations:
6860

6961
MAILHOST
7062
The SMTP mail host that roundup will use to send mail
@@ -81,6 +73,20 @@ ISSUE_TRACKER_EMAIL: ``issue_tracker@MAIL_DOMAIN``
8173
ADMIN_EMAIL: ``roundup-admin@MAIL_DOMAIN``
8274
roundup's internal use (problems, etc)
8375

76+
You may also alter the default schema - see the `customisation`_ documentation
77+
for more info on both configuration variables and schema modifications.
78+
79+
Once you're happy (and note that you can change any of this after the instance
80+
is initialised too!) you must run "``roundup-admin initialise``".
81+
82+
You should also think about whether there is going to be controlled access
83+
to the
84+
instance on the machine the instance is running on. That is, who can
85+
actually make
86+
changes to the database using the roundup-admin tool. See the section on
87+
Users_and_Access_Control for information on how to secure your instance from the
88+
start.
89+
8490
E-Mail Interface
8591
----------------
8692

@@ -160,7 +166,7 @@ Apache:
160166
SetEnv ROUNDUP_LOG "/var/log/roundup.log"
161167
SetEnv ROUNDUP_INSTANCE_HOMES "Default=/usr/local/share/roundup/instances/Default"
162168
SetEnv ROUNDUP_DEBUG "0"
163-
169+
164170
7. On Windows, write a batch file "roundup.bat" similar to the one below and
165171
place it into your cgi-bin directory::
166172

@@ -269,4 +275,5 @@ Next: `User Guide`_
269275

270276
.. _`table of contents`: index.html
271277
.. _`user guide`: user_guide.html
278+
.. _`customisation`: customizing.html
272279

roundup/__init__.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
1616
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
1717
#
18-
# $Id: __init__.py,v 1.9 2002-06-24 01:09:33 richard Exp $
18+
# $Id: __init__.py,v 1.9.2.1 2002-09-02 21:49:04 richard Exp $
1919

2020
__doc__ = '''
2121
This is a simple-to-use and -install issue-tracking system with
@@ -65,10 +65,13 @@
6565
much prettier cake :)
6666
'''
6767

68-
__version__ = '0.4.2'
68+
__version__ = '0.4.3'
6969

7070
#
7171
# $Log: not supported by cvs2svn $
72+
# Revision 1.9 2002/06/24 01:09:33 richard
73+
# Modifications for the final 0.4.2 release.
74+
#
7275
# Revision 1.8 2002/06/21 00:24:53 richard
7376
# *baff* richard.
7477
#

roundup/cgi_client.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
1616
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
1717
#
18-
# $Id: cgi_client.py,v 1.129.2.2 2002-07-22 22:06:45 richard Exp $
18+
# $Id: cgi_client.py,v 1.129.2.3 2002-09-02 21:49:04 richard Exp $
1919

2020
__doc__ = """
2121
WWW request handler (also used in the stand-alone server).
@@ -1296,20 +1296,23 @@ class ExtendedClient(Client):
12961296
default_index_columns = ['activity','status','title','assignedto']
12971297
default_index_filterspec = {'status': ['1', '2', '3', '4', '5', '6', '7']}
12981298

1299-
def parsePropsFromForm(db, cl, form, nodeid=0):
1299+
def parsePropsFromForm(db, cl, form, nodeid=0, num_re=re.compile('^\d+$')):
13001300
'''Pull properties for the given class out of the form.
13011301
'''
13021302
props = {}
13031303
keys = form.keys()
1304-
num_re = re.compile('^\d+$')
13051304
for key in keys:
13061305
if not cl.properties.has_key(key):
13071306
continue
13081307
proptype = cl.properties[key]
13091308
if isinstance(proptype, hyperdb.String):
13101309
value = form[key].value.strip()
13111310
elif isinstance(proptype, hyperdb.Password):
1312-
value = password.Password(form[key].value.strip())
1311+
value = form[key].value.strip()
1312+
if not value:
1313+
# ignore empty password values
1314+
continue
1315+
value = password.Password(value)
13131316
elif isinstance(proptype, hyperdb.Date):
13141317
value = form[key].value.strip()
13151318
if value:
@@ -1326,8 +1329,7 @@ def parsePropsFromForm(db, cl, form, nodeid=0):
13261329
value = form[key].value.strip()
13271330
# see if it's the "no selection" choice
13281331
if value == '-1':
1329-
# don't set this property
1330-
continue
1332+
value = None
13311333
else:
13321334
# handle key values
13331335
link = cl.properties[key].classname
@@ -1340,7 +1342,7 @@ def parsePropsFromForm(db, cl, form, nodeid=0):
13401342
'value': value, 'classname': link}
13411343
elif isinstance(proptype, hyperdb.Multilink):
13421344
value = form[key]
1343-
if hasattr(value,'value'):
1345+
if hasattr(value, 'value'):
13441346
# Quite likely to be a FormItem instance
13451347
value = value.value
13461348
if not isinstance(value, type([])):
@@ -1380,6 +1382,11 @@ def parsePropsFromForm(db, cl, form, nodeid=0):
13801382

13811383
#
13821384
# $Log: not supported by cvs2svn $
1385+
# Revision 1.129.2.2 2002/07/22 22:06:45 richard
1386+
# . #535868 ] Anonymous User Login
1387+
# Hrm, I re-read the intention of the web/email login stuff, and realised
1388+
# there was a quick fix.
1389+
#
13831390
# Revision 1.129.2.1 2002/07/10 06:50:49 richard
13841391
# . #576241 ] MultiLink problems in parsePropsFromForm
13851392
#

0 commit comments

Comments
 (0)