Skip to content

Commit dffec64

Browse files
author
Richard Jones
committed
working toward 0.5.2 release
1 parent b9d112b commit dffec64

File tree

11 files changed

+87
-59
lines changed

11 files changed

+87
-59
lines changed

CHANGES.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ are given with the most recent entry first.
2222
- added ID to the search page (sf bug 631601)
2323
- fixed filtering by id in anydbm
2424
- show issue ID in the headings (sf bug 631598)
25+
- show entire messages by default in issues (sf bug 625995)
26+
- fixed journalling to save old values instead of new (sorry it took so long GM)
27+
- handle missing REQUEST_URI for cgi-bin users (sf bug 620163)
2528

2629

2730
2002-10-16 0.5.1

cgi-bin/roundup.cgi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
1717
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
1818
#
19-
# $Id: roundup.cgi,v 1.34 2002-10-08 03:31:09 richard Exp $
19+
# $Id: roundup.cgi,v 1.35 2002-11-06 11:38:42 richard Exp $
2020

2121
# python version check
2222
from roundup import version_check
@@ -149,7 +149,7 @@ def main(out, err):
149149
else:
150150
protocol = 'http'
151151
absolute_url = '%s://%s%s/'%(protocol, os.environ['HTTP_HOST'],
152-
os.environ['REQUEST_URI'])
152+
os.environ.get('REQUEST_URI', ''))
153153
request.send_header('Location', absolute_url)
154154
request.end_headers()
155155
out.write('Moved Permanently')

doc/FAQ.txt

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,13 @@
22
Roundup FAQ
33
===========
44

5-
:Version: $Revision: 1.10 $
5+
:Version: $Revision: 1.11 $
66

77
NOTE: This is just a grabbag, most of this should go into documentation.
88

99
.. contents::
1010

1111

12-
Changing HTML layout
13-
--------------------
14-
1512
Installation
1613
------------
1714

@@ -34,11 +31,6 @@ Different jobs run under different users.
3431
* roundup-mailgw called via .forward from MTA, or running a cron job
3532
fetching via pop.
3633

37-
see Troubleshooting_.
38-
39-
40-
Troubleshooting
41-
---------------
4234

4335
-----------------
4436

doc/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
PYTHON = /usr/bin/python2
2-
STXTOHTML = -c "from docutils.core import publish;publish(writer_name='html')"
2+
STXTOHTML = stx2html
33

44
SOURCE = announcement.txt customizing.txt developers.txt FAQ.txt features.txt \
55
glossary.txt implementation.txt index.txt design.txt \
@@ -10,7 +10,7 @@ COMPILED := $(SOURCE:.txt=.html)
1010
all: ${COMPILED}
1111

1212
%.html: %.txt
13-
${PYTHON} ${STXTOHTML} --report=warning -d $< $@
13+
${STXTOHTML} --report=warning -d $< $@
1414

1515
clean:
1616
rm -f ${COMPILED}

doc/announcement.txt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,32 @@ sqlite backend are encouraged to upgrade sqlite to version 2.7.3.
1313

1414
We've had a good crack at bugs (thanks to all who contributed!):
1515

16+
- added quotes around python interpreter in windows bat (sf bug 623963)
17+
- fixed link at end of installation doc (sf bug 623957)
18+
- handle "classname" URL path errors cleaner (generate a 404)
19+
- added CGI :remove:<propname> and :add:<propname> which specify item
20+
ids to remove / add in <propname> multilink.
21+
- bugfix in boolean templating
22+
- remember the change note on bad submissions (sf bug 625989)
23+
- highlight required form fields (sf bug 625989)
24+
- force non-word boundary to match re: in subject (sf bug 626303)
25+
- handle sqlite bug (<2.7.2) (sf bug 630828)
26+
- handle missing props in anydbm stringFind
27+
- updated email package address formatting (deprecation)
28+
- copied email address quoting from email v2.4.3 so we're consistent
29+
with 2.2
30+
- email summary extraction now takes the first whole sentence or line -
31+
whichever is longer
32+
- documented dependency on Active State (sf bug 623959)
33+
- ensured there's no zero-length files in source (sf bug 633622)
34+
- added ID to the search page (sf bug 631601)
35+
- fixed filtering by id in anydbm
36+
- show issue ID in the headings (sf bug 631598)
37+
- show entire messages by default in issues (sf bug 625995)
38+
- fixed journalling to save old values instead of new (sorry I took so
39+
long, GM)
40+
- handle missing REQUEST_URI for cgi-bin users (sf bug 620163)
41+
1642

1743
Source and documentation is available at the website:
1844
http://roundup.sourceforge.net/

doc/customizing.txt

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Customising Roundup
33
===================
44

5-
:Version: $Revision: 1.61 $
5+
:Version: $Revision: 1.62 $
66

77
.. This document borrows from the ZopeBook section on ZPT. The original is at:
88
http://www.zope.org/Documentation/Books/ZopeBook/current/ZPT.stx
@@ -2144,26 +2144,23 @@ to.
21442144
which displays only the allowed status to transition to.
21452145

21462146

2147-
Displaying entire message contents in the issue display
2148-
-------------------------------------------------------
2147+
Displaying only message summaries in the issue display
2148+
------------------------------------------------------
21492149

21502150
Alter the issue.item template section for messages to::
21512151

21522152
<table class="messages" tal:condition="context/messages">
2153-
<tr><th colspan=3 class="header">Messages</th></tr>
2154-
<tal:block tal:repeat="msg context/messages/reverse">
2155-
<tr>
2156-
<th><a tal:attributes="href string:msg${msg/id}"
2157-
tal:content="string:msg${msg/id}"></a></th>
2158-
<th tal:content="string:Author: ${msg/author}">author</th>
2159-
<th tal:content="string:Date: ${msg/date}">date</th>
2160-
</tr>
2161-
<tr>
2162-
<td colspan="3" class="content">
2163-
<pre tal:content="msg/content">content</pre>
2164-
</td>
2165-
</tr>
2166-
</tal:block>
2153+
<tr><th colspan=5 class="header">Messages</th></tr>
2154+
<tr tal:repeat="msg context/messages">
2155+
<td><a tal:attributes="href string:msg${msg/id}"
2156+
tal:content="string:msg${msg/id}"></a></td>
2157+
<td tal:content="msg/author">author</td>
2158+
<td nowrap tal:content="msg/date/pretty">date</td>
2159+
<td tal:content="msg/summary">summary</td>
2160+
<td>
2161+
<a tal:attributes="href string:?:remove:messages=${msg/id}&:action=edit">remove</a>
2162+
</td>
2163+
</tr>
21672164
</table>
21682165

21692166
Restricting the list of users that are assignable to a task
@@ -2718,7 +2715,7 @@ Enabling display of either message summaries or the entire messages
27182715
-------------------------------------------------------------------
27192716

27202717
This is pretty simple - all we need to do is copy the code from the example
2721-
`displaying entire message contents in the issue display`_ into our template
2718+
`displaying only message summaries in the issue display`_ into our template
27222719
alongside the summary display, and then introduce a switch that shows either
27232720
one or the other. We'll use a new form variable, ``:whole_messages`` to
27242721
achieve this::

roundup/__init__.py

Lines changed: 2 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.15 2002-10-16 06:55:17 richard Exp $
18+
# $Id: __init__.py,v 1.16 2002-11-06 11:38:42 richard Exp $
1919

2020
''' Roundup - issue tracking for knowledge workers.
2121
@@ -67,6 +67,6 @@
6767
much prettier cake :)
6868
'''
6969

70-
__version__ = '0.5.1'
70+
__version__ = '0.5.2'
7171

7272
# vim: set filetype=python ts=4 sw=4 et si

roundup/backends/back_anydbm.py

Lines changed: 7 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: back_anydbm.py,v 1.91 2002-11-06 05:39:49 richard Exp $
18+
#$Id: back_anydbm.py,v 1.92 2002-11-06 11:38:42 richard Exp $
1919
'''
2020
This module defines a backend that saves the hyperdatabase in a database
2121
chosen by anydbm. It is guaranteed to always be available in python
@@ -888,7 +888,7 @@ def create(self, **propvalues):
888888
# done
889889
self.db.addnode(self.classname, newid, propvalues)
890890
if self.do_journal:
891-
self.db.addjournal(self.classname, newid, 'create', propvalues)
891+
self.db.addjournal(self.classname, newid, 'create', {})
892892

893893
self.fireReactors('create', newid, None)
894894

@@ -970,7 +970,7 @@ def import_list(self, propnames, proplist):
970970
creation = None
971971
if d.has_key('activity'):
972972
del d['activity']
973-
self.db.addjournal(self.classname, newid, 'create', d, creator,
973+
self.db.addjournal(self.classname, newid, 'create', {}, creator,
974974
creation)
975975
return newid
976976

@@ -1145,9 +1145,11 @@ class or a KeyError is raised.
11451145

11461146
# if the value's the same as the existing value, no sense in
11471147
# doing anything
1148-
if node.has_key(propname) and value == node[propname]:
1148+
current = node.get(propname, None)
1149+
if value == current:
11491150
del propvalues[propname]
11501151
continue
1152+
journalvalues[propname] = current
11511153

11521154
# do stuff based on the prop type
11531155
if isinstance(prop, Link):
@@ -1283,8 +1285,7 @@ class or a KeyError is raised.
12831285
self.db.setnode(self.classname, nodeid, node)
12841286

12851287
if self.do_journal:
1286-
propvalues.update(journalvalues)
1287-
self.db.addjournal(self.classname, nodeid, 'set', propvalues)
1288+
self.db.addjournal(self.classname, nodeid, 'set', journalvalues)
12881289

12891290
self.fireReactors('set', nodeid, oldvalues)
12901291

@@ -1612,7 +1613,6 @@ def filter(self, search_matches, filterspec, sort=(None,None),
16121613
# now, find all the nodes that are active and pass filtering
16131614
l = []
16141615
cldb = self.db.getclassdb(cn)
1615-
print filterspec
16161616
try:
16171617
# TODO: only full-scan once (use items())
16181618
for nodeid in self.db.getnodeids(cn, cldb):

roundup/backends/rdbms_common.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# $Id: rdbms_common.py,v 1.23 2002-10-31 04:02:23 richard Exp $
1+
# $Id: rdbms_common.py,v 1.24 2002-11-06 11:38:42 richard Exp $
22
''' Relational database (SQL) backend common code.
33
44
Basics:
@@ -1102,7 +1102,7 @@ def create(self, **propvalues):
11021102
# done
11031103
self.db.addnode(self.classname, newid, propvalues)
11041104
if self.do_journal:
1105-
self.db.addjournal(self.classname, newid, 'create', propvalues)
1105+
self.db.addjournal(self.classname, newid, 'create', {})
11061106

11071107
self.fireReactors('create', newid, None)
11081108

@@ -1184,7 +1184,7 @@ def import_list(self, propnames, proplist):
11841184
creation = None
11851185
if d.has_key('activity'):
11861186
del d['activity']
1187-
self.db.addjournal(self.classname, newid, 'create', d, creator,
1187+
self.db.addjournal(self.classname, newid, 'create', {}, creator,
11881188
creation)
11891189
return newid
11901190

@@ -1323,9 +1323,11 @@ class or a KeyError is raised.
13231323

13241324
# if the value's the same as the existing value, no sense in
13251325
# doing anything
1326-
if node.has_key(propname) and value == node[propname]:
1326+
current = node.get(propname, None)
1327+
if value == current:
13271328
del propvalues[propname]
13281329
continue
1330+
journalvalues[propname] = current
13291331

13301332
# do stuff based on the prop type
13311333
if isinstance(prop, Link):
@@ -1460,8 +1462,7 @@ class or a KeyError is raised.
14601462
self.db.setnode(self.classname, nodeid, propvalues, multilink_changes)
14611463

14621464
if self.do_journal:
1463-
propvalues.update(journalvalues)
1464-
self.db.addjournal(self.classname, nodeid, 'set', propvalues)
1465+
self.db.addjournal(self.classname, nodeid, 'set', journalvalues)
14651466

14661467
self.fireReactors('set', nodeid, oldvalues)
14671468

roundup/templates/classic/html/issue.item

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -127,17 +127,23 @@ python:db.user.classhelp('username,realname,address,phone')" /><br>
127127
</p>
128128

129129
<table class="messages" tal:condition="context/messages">
130-
<tr><th colspan=5 class="header">Messages</th></tr>
131-
<tr tal:repeat="msg context/messages">
132-
<td><a tal:attributes="href string:msg${msg/id}"
133-
tal:content="string:msg${msg/id}"></a></td>
134-
<td tal:content="msg/author">author</td>
135-
<td nowrap tal:content="msg/date/pretty">date</td>
136-
<td tal:content="msg/summary">summary</td>
137-
<td>
138-
<a tal:attributes="href string:?:remove:messages=${msg/id}&:action=edit">remove</a>
139-
</td>
140-
</tr>
130+
<tr><th colspan="4" class="header">Messages</th></tr>
131+
<tal:block tal:repeat="msg context/messages">
132+
<tr>
133+
<th><a tal:attributes="href string:msg${msg/id}"
134+
tal:content="string:msg${msg/id}"></a></th>
135+
<th tal:content="string:Author: ${msg/author}">author</th>
136+
<th tal:content="string:Date: ${msg/date}">date</th>
137+
<th>
138+
<a tal:attributes="href string:?:remove:messages=${msg/id}&:action=edit">remove</a>
139+
</th>
140+
</tr>
141+
<tr>
142+
<td colspan="4" class="content">
143+
<pre tal:content="msg/content">content</pre>
144+
</td>
145+
</tr>
146+
</tal:block>
141147
</table>
142148

143149
<table class="files" tal:condition="context/files">

0 commit comments

Comments
 (0)