Code

Some more TODOs
authorrichard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2>
Sun, 14 Jul 2002 06:14:40 +0000 (06:14 +0000)
committerrichard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2>
Sun, 14 Jul 2002 06:14:40 +0000 (06:14 +0000)
git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/trunk@876 57a73879-2fb5-44c3-a270-3262357dd7e2

CHANGES.txt
TODO.txt
roundup/backends/blobfiles.py
roundup/cgi_client.py

index 3558ca1e69a4f04632bb8e2507a185d0e07eff6e..8fe5cd3f3e52d7372626b634ef2ae52902694451 100644 (file)
@@ -8,6 +8,7 @@ Fixed:
  . made the unit tests run again - they were quite b0rken
  . #571170 ] gdbm deadlock
  . #576241 ] MultiLink problems in parsePropsFromForm
+ . fixed the date module so that Date(". - 2d") works
 
 Feature:
  . cleaned up the indexer code:
index 0c893219ff71e3ac4dbb8a103d9f3382ddb83ffd..acf4b242c8e315a1b532684446d5b6416a300bec 100644 (file)
--- a/TODO.txt
+++ b/TODO.txt
@@ -1,4 +1,8 @@
-Implementation plan for 0.5 release:
+General Roundup project TODO list. Note that some of these are semi-formed
+ideas. Those ideas that don't make the cutoff for the next major release are
+punted automatically into the subsequent major release TODO.
+
+For 0.5 release:
 
 State    Description
 ------------------------------------------------------------------------------
@@ -15,11 +19,15 @@ pending  journalling: fix the journal bloat
          related: Re-enable link backrefs from messages
                   feature request #568714
 pending  alternative user auth: at least an LDAP implementation
-active   security overhaul: see doc/security.txt
-done     - switch to sessions for web authentication (RJ)
+active   security overhaul: see doc/security.txt (RJ)
+done     - switch to sessions for web authentication
          - authenticate over a secure connection
          - implement and use the new logical control mechanisms
          - use digital signatures in mailgw
+active   implement an RDB backend (RJ)
+done     - further split the *dbm backends from the core code, allowing
+           easier non-dict-like backends (eg metakit, RDB)
+         - write a backend for gadfly
 pending  fix double-submit by having new-item-submit redirect at end
 pending  split instance.open() into open() and login()
 pending  range searching of values (dates in particular)
index 62da5fa4821d89b2a9430fc3c2d23a71de02e402..e74f05c854da1d1fb25ddfe50a4b8049c2d78a3a 100644 (file)
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-#$Id: blobfiles.py,v 1.6 2002-07-09 03:02:52 richard Exp $
+#$Id: blobfiles.py,v 1.7 2002-07-14 06:14:40 richard Exp $
 '''
 This module exports file storage for roundup backends.
 Files are stored into a directory hierarchy.
@@ -37,10 +37,6 @@ def files_in_dir(dir):
 
 class FileStorage:
     """Store files in some directory structure"""
-# TODO: maybe set "files"
-#    def __init__(self):
-#        pass
-
     def filename(self, classname, nodeid, property=None):
         '''Determine what the filename for the given node and optionally 
            property is.
@@ -130,6 +126,22 @@ class FileStorage:
             os.remove(name+".tmp")
 
 # $Log: not supported by cvs2svn $
+# Revision 1.6  2002/07/09 03:02:52  richard
+# More indexer work:
+# - all String properties may now be indexed too. Currently there's a bit of
+#   "issue" specific code in the actual searching which needs to be
+#   addressed. In a nutshell:
+#   + pass 'indexme="yes"' as a String() property initialisation arg, eg:
+#         file = FileClass(db, "file", name=String(), type=String(),
+#             comment=String(indexme="yes"))
+#   + the comment will then be indexed and be searchable, with the results
+#     related back to the issue that the file is linked to
+# - as a result of this work, the FileClass has a default MIME type that may
+#   be overridden in a subclass, or by the use of a "type" property as is
+#   done in the default templates.
+# - the regeneration of the indexes (if necessary) is done once the schema is
+#   set up in the dbinit.
+#
 # Revision 1.5  2002/07/08 06:58:15  richard
 # cleaned up the indexer code:
 #  - it splits more words out (much simpler, faster splitter)
index ffef8ed3e40464993e8fff9e017c5ec5b0d1a2c7..72b37584bc99882ca03e4244a9acf8a48fcace7f 100644 (file)
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: cgi_client.py,v 1.138 2002-07-14 04:03:13 richard Exp $
+# $Id: cgi_client.py,v 1.139 2002-07-14 06:14:40 richard Exp $
 
 __doc__ = """
 WWW request handler (also used in the stand-alone server).
@@ -407,7 +407,6 @@ function help_window(helpurl, width, height) {
                 columns = d['COLUMNS']
                 filterspec = d['FILTERSPEC']
                 pagesize = d.get('PAGESIZE', '50')
-
             else:
                 # nope - fall back on the old way of doing it
                 self.classname = 'issue'
@@ -1137,7 +1136,7 @@ function help_window(helpurl, width, height) {
         # re-open the database as "admin"
         self.opendb('admin')
 
-        # TODO: pre-check the required fields and username key property
+        # create the new user
         cl = self.db.user
         try:
             props = parsePropsFromForm(self.db, cl, self.form)
@@ -1146,6 +1145,8 @@ function help_window(helpurl, width, height) {
             action = self.form['__destination_url'].value
             self.login(message, action=action)
             return 0
+
+        # log the new user in
         self.user = cl.get(uid, 'username')
         # re-open the database for real, using the user
         self.opendb(self.user)
@@ -1175,8 +1176,6 @@ function help_window(helpurl, width, height) {
         self.db.commit()
 
         # expire us in a long, long time
-        # TODO: hrm, how long should this be, and how many sessions can one
-        # user have?
         expire = Cookie._getdate(86400*365)
 
         # generate the cookie path - make sure it has a trailing '/'
@@ -1233,7 +1232,7 @@ function help_window(helpurl, width, height) {
         sessions = self.db.getclass('__sessions')
 
         # age sessions, remove when they haven't been used for a week
-        # TODO: this doesn't need to be done every access
+        # TODO: this shouldn't be done every access
         week = date.Interval('7d')
         now = date.Date()
         for sessid in sessions.list():
@@ -1500,6 +1499,10 @@ def parsePropsFromForm(db, cl, form, nodeid=0, num_re=re.compile('^\d+$')):
 
 #
 # $Log: not supported by cvs2svn $
+# Revision 1.138  2002/07/14 04:03:13  richard
+# Implemented a switch to disable journalling for a Class. CGI session
+# database now uses it.
+#
 # Revision 1.137  2002/07/10 07:00:30  richard
 # removed debugging
 #