From: richard Date: Sun, 22 Jul 2001 12:09:32 +0000 (+0000) Subject: Final commit of Grande Splite X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=9af8ac2feb15e0b28d547b7bf0af9103376a5210;p=roundup.git Final commit of Grande Splite git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/trunk@30 57a73879-2fb5-44c3-a270-3262357dd7e2 --- diff --git a/roundup/__init__.py b/roundup/__init__.py index e69de29..49e3802 100644 --- a/roundup/__init__.py +++ b/roundup/__init__.py @@ -0,0 +1,6 @@ +# $Id: __init__.py,v 1.2 2001-07-22 12:09:32 richard Exp $ + + +# +# $Log: not supported by cvs2svn $ +# diff --git a/roundup/cgi_client.py b/roundup/cgi_client.py index 8af92a2..c182509 100644 --- a/roundup/cgi_client.py +++ b/roundup/cgi_client.py @@ -1,4 +1,4 @@ -# $Id: cgi_client.py,v 1.1 2001-07-22 11:58:35 richard Exp $ +# $Id: cgi_client.py,v 1.2 2001-07-22 12:09:32 richard Exp $ import os, cgi, pprint, StringIO, urlparse, re, traceback @@ -489,25 +489,6 @@ class Client: # # $Log: not supported by cvs2svn $ -# Revision 1.7 2001/07/20 07:35:55 richard -# largish changes as a start of splitting off bits and pieces to allow more -# flexible installation / database back-ends +# Revision 1.1 2001/07/22 11:58:35 richard +# More Grande Splite # -# Revision 1.6 2001/07/20 00:53:20 richard -# Default index now filters out the resolved issues ;) -# -# Revision 1.5 2001/07/20 00:17:16 richard -# Fixed adding a new issue when there is no __note -# -# Revision 1.4 2001/07/19 06:27:07 anthonybaxter -# fixing (manually) the (dollarsign)Log(dollarsign) entries caused by -# my using the magic (dollarsign)Id(dollarsign) and (dollarsign)Log(dollarsign) -# strings in a commit message. I'm a twonk. -# -# Also broke the help string in two. -# -# Revision 1.3 2001/07/19 05:52:22 anthonybaxter -# Added CVS keywords Id and Log to all python files. -# -# - diff --git a/roundup/cgitb.py b/roundup/cgitb.py index 60ef528..9d9fd9f 100644 --- a/roundup/cgitb.py +++ b/roundup/cgitb.py @@ -1,4 +1,4 @@ -# $Id: cgitb.py,v 1.1 2001-07-22 11:58:35 richard Exp $ +# $Id: cgitb.py,v 1.2 2001-07-22 12:09:32 richard Exp $ import sys, os, types, string, keyword, linecache, tokenize, inspect, pydoc @@ -115,14 +115,6 @@ def handler(): # # $Log: not supported by cvs2svn $ -# Revision 1.3 2001/07/19 06:27:07 anthonybaxter -# fixing (manually) the (dollarsign)Log(dollarsign) entries caused by -# my using the magic (dollarsign)Id(dollarsign) and (dollarsign)Log(dollarsign) -# strings in a commit message. I'm a twonk. -# -# Also broke the help string in two. -# -# Revision 1.2 2001/07/19 05:52:22 anthonybaxter -# Added CVS keywords Id and Log to all python files. -# +# Revision 1.1 2001/07/22 11:58:35 richard +# More Grande Splite # diff --git a/roundup/date.py b/roundup/date.py index e516de2..e7002ae 100644 --- a/roundup/date.py +++ b/roundup/date.py @@ -1,4 +1,4 @@ -# $Id: date.py,v 1.1 2001-07-22 11:58:35 richard Exp $ +# $Id: date.py,v 1.2 2001-07-22 12:09:32 richard Exp $ import time, re, calendar @@ -344,15 +344,6 @@ if __name__ == '__main__': # # $Log: not supported by cvs2svn $ -# Revision 1.3 2001/07/19 06:27:07 anthonybaxter -# fixing (manually) the (dollarsign)Log(dollarsign) entries caused by -# my using the magic (dollarsign)Id(dollarsign) and (dollarsign)Log(dollarsign) -# strings in a commit message. I'm a twonk. +# Revision 1.1 2001/07/22 11:58:35 richard +# More Grande Splite # -# Also broke the help string in two. -# -# Revision 1.2 2001/07/19 05:52:22 anthonybaxter -# Added CVS keywords Id and Log to all python files. -# -# - diff --git a/roundup/htmltemplate.py b/roundup/htmltemplate.py index dd17ac2..b4087fd 100644 --- a/roundup/htmltemplate.py +++ b/roundup/htmltemplate.py @@ -1,4 +1,4 @@ -# $Id: htmltemplate.py,v 1.1 2001-07-22 11:58:35 richard Exp $ +# $Id: htmltemplate.py,v 1.2 2001-07-22 12:09:32 richard Exp $ import os, re, StringIO, urllib, cgi @@ -702,18 +702,6 @@ def newitem(client, templates, db, classname, form, replace=re.compile( # # $Log: not supported by cvs2svn $ -# Revision 1.5 2001/07/20 07:34:43 richard -# Quote the value put in the text input value attribute. +# Revision 1.1 2001/07/22 11:58:35 richard +# More Grande Splite # -# Revision 1.4 2001/07/19 06:27:07 anthonybaxter -# fixing (manually) the (dollarsign)Log(dollarsign) entries caused by -# my using the magic (dollarsign)Id(dollarsign) and (dollarsign)Log(dollarsign) -# strings in a commit message. I'm a twonk. -# -# Also broke the help string in two. -# -# Revision 1.3 2001/07/19 05:52:22 anthonybaxter -# Added CVS keywords Id and Log to all python files. -# -# - diff --git a/roundup/hyper_bsddb.py b/roundup/hyper_bsddb.py index 996319e..3a2a4c6 100644 --- a/roundup/hyper_bsddb.py +++ b/roundup/hyper_bsddb.py @@ -1,4 +1,4 @@ -#$Id: hyper_bsddb.py,v 1.1 2001-07-22 11:58:35 richard Exp $ +#$Id: hyper_bsddb.py,v 1.2 2001-07-22 12:09:32 richard Exp $ import bsddb, os, cPickle import hyperdb, date @@ -162,8 +162,6 @@ class Database(hyperdb.Database): # #$Log: not supported by cvs2svn $ -#Revision 1.1 2001/07/20 07:35:55 richard -#largish changes as a start of splitting off bits and pieces to allow more -#flexible installation / database back-ends +#Revision 1.1 2001/07/22 11:58:35 richard +#More Grande Splite # - diff --git a/roundup/hyperdb.py b/roundup/hyperdb.py index 5dfb416..f9f3a26 100644 --- a/roundup/hyperdb.py +++ b/roundup/hyperdb.py @@ -1,4 +1,4 @@ -# $Id: hyperdb.py,v 1.1 2001-07-22 11:58:35 richard Exp $ +# $Id: hyperdb.py,v 1.2 2001-07-22 12:09:32 richard Exp $ # standard python modules import cPickle, re, string @@ -735,13 +735,6 @@ def Choice(name, *options): # # $Log: not supported by cvs2svn $ -# Revision 1.6 2001/07/20 08:20:24 richard -# Fixed a bug in the filter - wrong variable names in the error message. -# Recognised that the filter has an outstanding bug. Hrm. we need a bug tracker -# for this project :) +# Revision 1.1 2001/07/22 11:58:35 richard +# More Grande Splite # -# Revision 1.5 2001/07/20 07:35:55 richard -# largish changes as a start of splitting off bits and pieces to allow more -# flexible installation / database back-ends -# - diff --git a/roundup/init.py b/roundup/init.py index 4174afc..5e2d31c 100644 --- a/roundup/init.py +++ b/roundup/init.py @@ -1,3 +1,5 @@ +# $Id: init.py,v 1.2 2001-07-22 12:09:32 richard Exp $ + import os, shutil, sys def copytree(src, dst, symlinks=0): @@ -43,3 +45,6 @@ def init(instance, template, adminpw): instance = __import__(instance) instance.init(adminpw) +# +# $Log: not supported by cvs2svn $ +# diff --git a/roundup/mailgw.py b/roundup/mailgw.py index 52e4057..0324aab 100644 --- a/roundup/mailgw.py +++ b/roundup/mailgw.py @@ -44,7 +44,7 @@ are calling the create() method to create a new node). If an auditor raises an exception, the original message is bounced back to the sender with the explanatory message given in the exception. -$Id: mailgw.py,v 1.1 2001-07-22 11:58:35 richard Exp $ +$Id: mailgw.py,v 1.2 2001-07-22 12:09:32 richard Exp $ ''' @@ -265,3 +265,6 @@ class MailGW: props['nosy'].sort() nodeid = cl.create(**props) +# +# $Log: not supported by cvs2svn $ +# diff --git a/roundup/roundupdb.py b/roundup/roundupdb.py index b27493a..57023bc 100644 --- a/roundup/roundupdb.py +++ b/roundup/roundupdb.py @@ -1,4 +1,4 @@ -# $Id: roundupdb.py,v 1.1 2001-07-22 11:58:35 richard Exp $ +# $Id: roundupdb.py,v 1.2 2001-07-22 12:09:32 richard Exp $ import re, os, smtplib, socket @@ -227,23 +227,6 @@ class IssueClass(Class): # # $Log: not supported by cvs2svn $ -# Revision 1.6 2001/07/20 07:35:55 richard -# largish changes as a start of splitting off bits and pieces to allow more -# flexible installation / database back-ends +# Revision 1.1 2001/07/22 11:58:35 richard +# More Grande Splite # -# Revision 1.5 2001/07/20 00:22:50 richard -# Priority list changes - removed the redundant TODO and added support. See -# roundup-devel for details. -# -# Revision 1.4 2001/07/19 06:27:07 anthonybaxter -# fixing (manually) the (dollarsign)Log(dollarsign) entries caused by -# my using the magic (dollarsign)Id(dollarsign) and (dollarsign)Log(dollarsign) -# strings in a commit message. I'm a twonk. -# -# Also broke the help string in two. -# -# Revision 1.3 2001/07/19 05:52:22 anthonybaxter -# Added CVS keywords Id and Log to all python files. -# -# - diff --git a/templates/__init__.py b/templates/__init__.py index e04751e..b1f9ff6 100644 --- a/templates/__init__.py +++ b/templates/__init__.py @@ -1,4 +1,4 @@ -# $Id: __init__.py,v 1.1 2001-07-22 12:01:27 richard Exp $ +# $Id: __init__.py,v 1.2 2001-07-22 12:09:32 richard Exp $ MAIL_DOMAIN=MAILHOST=HTTP_HOST=None HTTP_PORT=0 @@ -179,19 +179,6 @@ def init(adminpw): # # $Log: not supported by cvs2svn $ -# Revision 1.6 2001/07/19 10:43:01 anthonybaxter -# HTTP_HOST and HTTP_PORT config options. -# -# Revision 1.5 2001/07/19 06:27:07 anthonybaxter -# fixing (manually) the (dollarsign)Log(dollarsign) entries caused by -# my using the magic (dollarsign)Id(dollarsign) and (dollarsign)Log(dollarsign) -# strings in a commit message. I'm a twonk. -# -# Also broke the help string in two. -# -# Revision 1.4 2001/07/19 05:52:22 anthonybaxter -# Added CVS keywords Id and Log to all python files. -# # diff --git a/templates/detectors/__init__.py b/templates/detectors/__init__.py new file mode 100644 index 0000000..6c04133 --- /dev/null +++ b/templates/detectors/__init__.py @@ -0,0 +1,21 @@ +#$Id: __init__.py,v 1.1 2001-07-22 12:09:32 richard Exp $ + +def init(db): + ''' execute the init functions of all the modules in this directory + ''' + import os, sys + this_dir = os.path.split(__file__)[0] + try: + sys.path.insert(0, this_dir) + for file in os.listdir(this_dir): + file, ext = os.path.splitext(file) + if file == '__init__': continue + if ext in ('.py', '.pyc'): + module = __import__(file) + module.init(db) + finally: + del sys.path[0] + +# +#$Log: not supported by cvs2svn $ +# diff --git a/templates/detectors/nosyreaction.py b/templates/detectors/nosyreaction.py new file mode 100644 index 0000000..a946fee --- /dev/null +++ b/templates/detectors/nosyreaction.py @@ -0,0 +1,64 @@ +#$Id: nosyreaction.py,v 1.1 2001-07-22 12:09:32 richard Exp $ + +def nosyreaction(db, cl, nodeid, oldvalues): + ''' A standard detector is provided that watches for additions to the + "messages" property. + + When a new message is added, the detector sends it to all the users on + the "nosy" list for the issue that are not already on the "recipients" + list of the message. + + Those users are then appended to the "recipients" property on the + message, so multiple copies of a message are never sent to the same + user. + + The journal recorded by the hyperdatabase on the "recipients" property + then provides a log of when the message was sent to whom. + ''' + messages = [] + if oldvalues is None: + # the action was a create, so use all the messages in the create + messages = cl.get(nodeid, 'messages') + elif oldvalues.has_key('messages'): + # the action was a set (so adding new messages to an existing issue) + m = {} + for msgid in oldvalues['messages']: + m[msgid] = 1 + messages = [] + # figure which of the messages now on the issue weren't there before + for msgid in cl.get(nodeid, 'messages'): + if not m.has_key(msgid): + messages.append(msgid) + if not messages: + return + + # send a copy to the nosy list + for msgid in messages: + cl.sendmessage(nodeid, msgid) + + # update the nosy list with the recipients from the new messages + nosy = cl.get(nodeid, 'nosy') + n = {} + for nosyid in nosy: n[nosyid] = 1 + change = 0 + # but don't add admin to the nosy list + for msgid in messages: + for recipid in db.msg.get(msgid, 'recipients'): + if recipid != '1' and not n.has_key(recipid): + change = 1 + nosy.append(recipid) + authid = db.msg.get(msgid, 'author') + if authid != '1' and not n.has_key(authid): + change = 1 + nosy.append(authid) + if change: + cl.set(nodeid, nosy=nosy) + + +def init(db): + db.issue.react('create', nosyreaction) + db.issue.react('set', nosyreaction) + +# +#$Log: not supported by cvs2svn $ +# diff --git a/templates/templates/file.index b/templates/templates/file.index new file mode 100644 index 0000000..2f60125 --- /dev/null +++ b/templates/templates/file.index @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/templates/templates/issue.filter b/templates/templates/issue.filter new file mode 100644 index 0000000..3cc86f7 --- /dev/null +++ b/templates/templates/issue.filter @@ -0,0 +1,37 @@ + + + Title + + + + Status + + + + Priority + + + + Platform + + + + Product + + + + Version + + + + Source + + + + Assigned to + + + + Customer name + + diff --git a/templates/templates/issue.index b/templates/templates/issue.index new file mode 100644 index 0000000..f7b7113 --- /dev/null +++ b/templates/templates/issue.index @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/templates/issue.item b/templates/templates/issue.item new file mode 100644 index 0000000..d3c277b --- /dev/null +++ b/templates/templates/issue.item @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Item Information
Title
Product + version:Platform
Created + ()Last activity
PrioritySource
StatusRate
Assigned ToCustomer Name
SupersederNosy List
Change Note
 
Messages
Files
+ diff --git a/templates/templates/msg.index b/templates/templates/msg.index new file mode 100644 index 0000000..123c4dc --- /dev/null +++ b/templates/templates/msg.index @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/templates/templates/msg.item b/templates/templates/msg.item new file mode 100644 index 0000000..50cbf9b --- /dev/null +++ b/templates/templates/msg.item @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Message Information
Author
Recipients
Date
+
+
Files
History
diff --git a/templates/templates/style.css b/templates/templates/style.css new file mode 100644 index 0000000..2316c7c --- /dev/null +++ b/templates/templates/style.css @@ -0,0 +1,163 @@ +h1 { + font-family: Verdana, Helvetica, sans-serif; + font-size: 18pt; + font-weight: bold; +} + +h2 { + font-family: Verdana, Helvetica, sans-serif; + font-size: 16pt; + font-weight: bold; +} + +h3 { + font-family: Verdana, Helvetica, sans-serif; + font-size: 12pt; + font-weight: bold; +} + +a:hover { + font-family: Verdana, Helvetica, sans-serif; + text-decoration: underline; + color: #333333; +} + +a:link { + font-family: Verdana, Helvetica, sans-serif; + text-decoration: none; + color: #000099; +} + +a { + font-family: Verdana, Helvetica, sans-serif; + text-decoration: none; + color: #000099; +} + +p { + font-family: Verdana, Helvetica, sans-serif; + font-size: 10pt; + color: #333333; +} + +th { + font-family: Verdana, Helvetica, sans-serif; + font-weight: bold; + font-size: 10pt; + color: #333333; +} + +.form-help { + font-family: Verdana, Helvetica, sans-serif; + font-size: 10pt; + color: #333333; +} + +.std-text { + font-family: Verdana, Helvetica, sans-serif; + font-size: 10pt; + color: #333333; +} + +.tab-small { + font-family: Verdana, Helvetica, sans-serif; + font-size: 8pt; + color: #333333; +} + +.location-bar { + background-color: #efefef; + border: none; +} + +.strong-header { + font-family: Verdana, Helvetica, sans-serif; + font-size: 12pt; + font-weight: bold; + background-color: #000000; + color: #ffffff; +} + +.list-header { + background-color: #c0c0c0; + border: none; +} + +.list-item { + font-family: Verdana, Helvetica, sans-serif; + font-size: 10pt; +} + +.list-nav { + font-family: Verdana, Helvetica, sans-serif; + font-size: 10pt; + font-weight: bold; +} + +.row-normal { + background-color: #ffffff; + border: none; + +} + +.row-hilite { + background-color: #efefef; + border: none; +} + +.section-bar { + background-color: #c0c0c0; + border: none; +} + +.system-msg { + font-family: Verdana, Helvetica, sans-serif; + font-size: 10pt; + background-color: #ffffff; + border: 1px solid #000000; + margin-bottom: 6px; + margin-top: 6px; + padding: 4px; + width: 100%; + color: #660033; +} + +.form-title { + font-family: Verdana, Helvetica, sans-serif; + font-weight: bold; + font-size: 12pt; + color: #333333; +} + +.form-label { + font-family: Verdana, Helvetica, sans-serif; + font-weight: bold; + font-size: 10pt; + color: #333333; +} + +.form-optional { + font-family: Verdana, Helvetica, sans-serif; + font-weight: bold; + font-style: italic; + font-size: 10pt; + color: #333333; +} + +.form-element { + font-family: Verdana, Helvetica, aans-serif; + font-size: 10pt; + color: #000000; +} + +.form-text { + font-family: Verdana, Helvetica, sans-serif; + font-size: 10pt; + color: #333333; +} + +.form-mono { + font-family: monospace; + font-size: 12px; + text-decoration: none; +} diff --git a/templates/templates/user.index b/templates/templates/user.index new file mode 100644 index 0000000..4e30b5a --- /dev/null +++ b/templates/templates/user.index @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/templates/templates/user.item b/templates/templates/user.item new file mode 100644 index 0000000..281fd5d --- /dev/null +++ b/templates/templates/user.item @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Your Details
Name
Login Name
Login Password
Phone
Organisation
E-mail address
 
History
+