Skip to content

Commit 0035fd7

Browse files
author
Richard Jones
committed
merge from HEAD
1 parent 0340478 commit 0035fd7

File tree

11 files changed

+75
-60
lines changed

11 files changed

+75
-60
lines changed

CHANGES.txt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11
This file contains the changes to the Roundup system over time. The entries
22
are given with the most recent entry first.
33

4-
2005-??-?? 0.8.5
4+
2006-??-?? 0.8.6
5+
Fixed:
6+
- french translation updated by Patrick Decat (sf patch 1397059)
7+
- tighten up Date parsing to not allow 'M/D/YY' (or 'D/M/YY) (sf bug
8+
1290550)
9+
- handle "schema" being reserved word in MySQL 5+ (sf bug 1397569)
10+
- fixed documentation of filter() in the case of multiple values in a
11+
String search (sf bug 1373396)
12+
13+
14+
2005-10-07 0.8.5
515
Feature:
616
- Argentinian Spanish translation by Ramiro Morales
717

@@ -11,7 +21,6 @@ Fixed:
1121
- Fix missing merge of fix to sf bug 1177057
1222
- Fix RDBMS indexer indexing UTF-8 words that encode to > 30 chars
1323
- Handle invalidly-specified charsets in incoming email
14-
- french translation updated by Patrick Decat (sf patch 1397059)
1524

1625

1726
2005-07-18 0.8.4

doc/index.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ Martin Uzak,
153153
Darryl VanDorp,
154154
J Vickroy,
155155
William (Wilk),
156+
Tue Wennerberg,
156157
Matt Wilbert,
157158
Chris Withers.
158159

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.31.2.6 2005-07-27 22:54:12 richard Exp $
18+
# $Id: __init__.py,v 1.31.2.7 2006-01-13 01:29:44 richard Exp $
1919

2020
'''Roundup - issue tracking for knowledge workers.
2121
@@ -68,6 +68,6 @@
6868
'''
6969
__docformat__ = 'restructuredtext'
7070

71-
__version__ = '0.8.4'
71+
__version__ = '0.8.6'
7272

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

roundup/backends/back_anydbm.py

Lines changed: 6 additions & 4 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.179.2.9 2005-07-18 01:42:26 richard Exp $
18+
#$Id: back_anydbm.py,v 1.179.2.10 2006-01-13 01:29:46 richard Exp $
1919
'''This module defines a backend that saves the hyperdatabase in a
2020
database chosen by anydbm. It is guaranteed to always be available in python
2121
versions >2.1.1 (the dumbdbm fallback in 2.1.1 and earlier has several
@@ -1569,9 +1569,11 @@ def filter(self, search_matches, filterspec, sort=(None,None),
15691569
15701570
"search_matches" is {nodeid: marker} or None
15711571
1572-
The filter must match all properties specificed - but if the
1573-
property value to match is a list, any one of the values in the
1574-
list may match for that property to match.
1572+
The filter must match all properties specificed. If the property
1573+
value to match is a list:
1574+
1575+
1. String properties must match all elements in the list, and
1576+
2. Other properties must match any of the elements in the list.
15751577
"""
15761578
if __debug__:
15771579
start_t = time.time()

roundup/backends/back_mysql.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,16 @@ def open_connection(self):
172172
self.sql('create index ids_name_idx on ids(name)')
173173
self.create_version_2_tables()
174174

175+
def load_dbschema(self):
176+
''' Load the schema definition that the database currently implements
177+
'''
178+
self.cursor.execute('select `schema` from `schema`')
179+
schema = self.cursor.fetchone()
180+
if schema:
181+
self.database_schema = eval(schema[0])
182+
else:
183+
self.database_schema = {}
184+
175185
def create_version_2_tables(self):
176186
# OTK store
177187
self.sql('''CREATE TABLE otks (otk_key VARCHAR(255),
@@ -507,9 +517,11 @@ def filter(self, search_matches, filterspec, sort=(None,None),
507517
508518
"search_matches" is {nodeid: marker} or None
509519
510-
The filter must match all properties specificed - but if the
511-
property value to match is a list, any one of the values in the
512-
list may match for that property to match.
520+
The filter must match all properties specificed. If the property
521+
value to match is a list:
522+
523+
1. String properties must match all elements in the list, and
524+
2. Other properties must match any of the elements in the list.
513525
'''
514526
# we can't match anything if search_matches is empty
515527
if search_matches == {}:

roundup/backends/rdbms_common.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# $Id: rdbms_common.py,v 1.142.2.11 2005-07-18 02:30:00 richard Exp $
1+
# $Id: rdbms_common.py,v 1.142.2.12 2006-01-13 01:29:46 richard Exp $
22
''' Relational database (SQL) backend common code.
33
44
Basics:
@@ -2039,9 +2039,11 @@ def filter(self, search_matches, filterspec, sort=(None,None),
20392039
20402040
"search_matches" is {nodeid: marker} or None
20412041
2042-
The filter must match all properties specificed - but if the
2043-
property value to match is a list, any one of the values in the
2044-
list may match for that property to match.
2042+
The filter must match all properties specificed. If the property
2043+
value to match is a list:
2044+
2045+
1. String properties must match all elements in the list, and
2046+
2. Other properties must match any of the elements in the list.
20452047
'''
20462048
# we can't match anything if search_matches is empty
20472049
if search_matches == {}:

roundup/date.py

Lines changed: 16 additions & 10 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: date.py,v 1.77.2.4 2005-03-03 04:47:35 richard Exp $
18+
# $Id: date.py,v 1.77.2.5 2006-01-13 01:29:45 richard Exp $
1919

2020
"""Date, time and time interval handling.
2121
"""
@@ -40,6 +40,19 @@ def _add_granularity(src, order, value = 1):
4040
src[gran] = int(src[gran]) + value
4141
break
4242

43+
# no, I don't know why we must anchor the date RE when we only ever use it
44+
# in a match()
45+
date_re = re.compile(r'''^
46+
((?P<y>\d\d\d\d)([/-](?P<m>\d\d?)([/-](?P<d>\d\d?))?)? # yyyy[-mm[-dd]]
47+
|(?P<a>\d\d?)[/-](?P<b>\d\d?))? # or mm-dd
48+
(?P<n>\.)? # .
49+
(((?P<H>\d?\d):(?P<M>\d\d))?(:(?P<S>\d\d(\.\d+)?))?)? # hh:mm:ss
50+
(?P<o>[\d\smyd\-+]+)? # offset
51+
$''', re.VERBOSE)
52+
serialised_date_re = re.compile(r'''
53+
(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d?(\.\d+)?)
54+
''', re.VERBOSE)
55+
4356
class Date:
4457
'''
4558
As strings, date-and-time stamps are specified with the date in
@@ -154,15 +167,8 @@ def __init__(self, spec='.', offset=0, add_granularity=0, translator=i18n):
154167
except:
155168
raise ValueError, 'Unknown spec %r' % (spec,)
156169

157-
def set(self, spec, offset=0, date_re=re.compile(r'''
158-
((?P<y>\d\d\d\d)([/-](?P<m>\d\d?)([/-](?P<d>\d\d?))?)? # yyyy[-mm[-dd]]
159-
|(?P<a>\d\d?)[/-](?P<b>\d\d?))? # or mm-dd
160-
(?P<n>\.)? # .
161-
(((?P<H>\d?\d):(?P<M>\d\d))?(:(?P<S>\d\d(\.\d+)?))?)? # hh:mm:ss
162-
(?P<o>.+)? # offset
163-
''', re.VERBOSE), serialised_re=re.compile(r'''
164-
(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d?(\.\d+)?)
165-
''', re.VERBOSE), add_granularity=0):
170+
def set(self, spec, offset=0, date_re=date_re,
171+
serialised_re=serialised_date_re, add_granularity=0):
166172
''' set the date to the value in spec
167173
'''
168174

roundup/hyperdb.py

Lines changed: 6 additions & 4 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: hyperdb.py,v 1.107.2.4 2005-07-18 02:30:00 richard Exp $
18+
# $Id: hyperdb.py,v 1.107.2.5 2006-01-13 01:29:46 richard Exp $
1919

2020
"""Hyperdatabase implementation, especially field types.
2121
"""
@@ -647,9 +647,11 @@ def filter(self, search_matches, filterspec, sort=(None,None),
647647
648648
"search_matches" is {nodeid: marker}
649649
650-
The filter must match all properties specificed - but if the
651-
property value to match is a list, any one of the values in the
652-
list may match for that property to match.
650+
The filter must match all properties specificed. If the property
651+
value to match is a list:
652+
653+
1. String properties must match all elements in the list, and
654+
2. Other properties must match any of the elements in the list.
653655
"""
654656
raise NotImplementedError
655657

setup.py

Lines changed: 8 additions & 28 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: setup.py,v 1.77.2.10 2005-07-27 22:54:10 richard Exp $
19+
# $Id: setup.py,v 1.77.2.11 2006-01-13 01:29:44 richard Exp $
2020

2121
from distutils.core import setup, Extension
2222
from distutils.util import get_platform
@@ -348,35 +348,15 @@ def main():
348348
command-line, web and e-mail interfaces. It is based on the winning design
349349
from Ka-Ping Yee in the Software Carpentry "Track" design competition.
350350
351-
This 0.8.4 release fixes some bugs:
351+
This 0.8.5 release includes an Argentinian Spanish translation by Ramiro
352+
Morales and fixes some bugs:
352353
353354
Fixed:
354-
355-
- extra CRs in CSV export files on Windows platform (sf bug 1195742)
356-
- activity RDBMS columns were being reported in changes
357-
- fix name collision in roundup.cgi script (sf bug 1203795)
358-
- fix handling of invalid interval input
359-
- search locale files relative ro roundup installation path (sf bug 1219689)
360-
- use translation for boolean property rendering (sf bug 1225152)
361-
- enabled disabling of REMOTE_USER for when it's not a valid username (sf
362-
bug 1190187)
363-
- fix invocation of hasPermission from templating code (sf bug 1224172)
364-
- have 'roundup-admin security' display property restrictions (sf bug
365-
1222135)
366-
- fixed templating menu() sort_on handling (sf bug 1221936)
367-
- allow specification of pagesize, sorting and filtering in "classhelp"
368-
popups (sf bug 1211800)
369-
- handle dropped properies in rdbms/metakit journal export (sf bug 1203569)
370-
- handle missing Subject lines better (sf bug 1198729)
371-
- sort/group by missing values correctly (sf bugs 1198623, 1176897)
372-
- discard, don't bounce messages to the mailgw when the messages's sender
373-
is invalid (ie. when we try to bounce, we get a 550 "unknown user
374-
account" response from the SMTP server) (sf bug 1190906)
375-
- removed debugging code from cgi/actions.py
376-
- refactored hyperdb.rawToHyperdb, allowing a number of improvements
377-
(thanks Ralf Schlatterbeck)
378-
- don't try to set a timeout for IMAPS (thanks Paul Jimenez)
379-
- present Reject exception messages to web users (sf bug 1237685)
355+
- Display of Multilinks where linked Class labelprop values are None
356+
- Fix references to the old * Registration Permissions
357+
- Fix missing merge of fix to sf bug 1177057
358+
- Fix RDBMS indexer indexing UTF-8 words that encode to > 30 chars
359+
- Handle invalidly-specified charsets in incoming email
380360
381361
If you're upgrading from an older version of Roundup you *must* follow
382362
the "Software Upgrade" guidelines given in the maintenance documentation.

test/db_test_base.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: db_test_base.py,v 1.55.2.5 2005-03-29 16:39:14 a1s Exp $
18+
# $Id: db_test_base.py,v 1.55.2.6 2006-01-13 01:29:48 richard Exp $
1919

2020
import unittest, os, shutil, errno, imp, sys, time, pprint
2121

@@ -260,7 +260,7 @@ def testDateChange(self):
260260
b = self.db.issue.get(nid, "deadline")
261261
if commit: self.db.commit()
262262
self.assertNotEqual(a, b)
263-
self.assertNotEqual(b, date.Date('1970-1-1 00:00:00'))
263+
self.assertNotEqual(b, date.Date('1970-1-1.00:00:00'))
264264

265265
def testDateUnset(self):
266266
for commit in (0,1):

0 commit comments

Comments
 (0)