From: richard Date: Tue, 10 Sep 2002 00:08:21 +0000 (+0000) Subject: removing extended template X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=b237810bc28e8b95ea3df8e390c8a3c1675fa922;p=roundup.git removing extended template git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/trunk@1107 57a73879-2fb5-44c3-a270-3262357dd7e2 --- diff --git a/roundup/templates/extended/.cvsignore b/roundup/templates/extended/.cvsignore deleted file mode 100644 index d90d51d..0000000 --- a/roundup/templates/extended/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -*.pyc -*.pyo -htmlbase.py -*.cover diff --git a/roundup/templates/extended/__init__.py b/roundup/templates/extended/__init__.py deleted file mode 100644 index d31a466..0000000 --- a/roundup/templates/extended/__init__.py +++ /dev/null @@ -1,52 +0,0 @@ -# -# Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) -# This module is free software, and you may redistribute it and/or modify -# under the same terms as Python, so long as this copyright message and -# disclaimer are retained in their original form. -# -# IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR -# DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING -# OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -# BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" -# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, -# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -# -# $Id: __init__.py,v 1.7 2001-08-07 00:24:43 richard Exp $ - -from instance_config import * -try: - from dbinit import * -except ImportError: - pass # in installdir (probably :) - -from interfaces import * - -# -# $Log: not supported by cvs2svn $ -# Revision 1.6 2001/08/07 00:15:51 richard -# Added the copyright/license notice to (nearly) all files at request of -# Bizar Software. -# -# Revision 1.5 2001/07/29 07:01:39 richard -# Added vim command to all source so that we don't get no steenkin' tabs :) -# -# Revision 1.4 2001/07/24 10:46:22 anthonybaxter -# Added templatebuilder module. two functions - one to pack up the html base, -# one to unpack it. Packed up the two standard templates into htmlbases. -# Modified __init__ to install them. -# -# __init__.py magic was needed for the rather high levels of wierd import magic. -# Reducing level of import magic == (good, future) -# -# Revision 1.3 2001/07/23 23:16:01 richard -# Split off the interfaces (CGI, mailgw) into a separate file from the DB stuff. -# -# Revision 1.2 2001/07/23 04:33:21 anthonybaxter -# split __init__.py into 2. dbinit and instance_config. -# -# -# vim: set filetype=python ts=4 sw=4 et si diff --git a/roundup/templates/extended/dbinit.py b/roundup/templates/extended/dbinit.py deleted file mode 100644 index d5178d9..0000000 --- a/roundup/templates/extended/dbinit.py +++ /dev/null @@ -1,383 +0,0 @@ -# -# Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) -# This module is free software, and you may redistribute it and/or modify -# under the same terms as Python, so long as this copyright message and -# disclaimer are retained in their original form. -# -# IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR -# DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING -# OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -# BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" -# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, -# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -# -# $Id: dbinit.py,v 1.25 2002-08-01 00:56:22 richard Exp $ - -import os - -import instance_config -from select_db import Database, Class, FileClass, IssueClass - -def open(name=None): - ''' as from the roundupdb method openDB - ''' - from roundup.hyperdb import String, Password, Date, Link, Multilink - - # open the database - db = Database(instance_config, name) - - # - # Now initialise the schema. Must do this each time the database is - # opened. - # - - # Class automatically gets these properties: - # creation = Date() - # activity = Date() - # creator = Link('user') - pri = Class(db, "priority", - name=String(), order=String()) - pri.setkey("name") - - stat = Class(db, "status", - name=String(), order=String()) - stat.setkey("name") - - keywords = Class(db, "keyword", - name=String()) - keywords.setkey("name") - - user = Class(db, "user", - username=String(), password=Password(), - address=String(), realname=String(), - phone=String(), organisation=String(), - alternate_addresses=String(), - queries=Multilink('query'), roles=String()) - user.setkey("username") - - # FileClass automatically gets these properties: - # content = String() [saved to disk in /db/files/] - # (it also gets the Class properties creation, activity and creator) - msg = FileClass(db, "msg", - author=Link("user"), recipients=Multilink("user"), - date=Date(), summary=String(), - files=Multilink("file"), - messageid=String(), inreplyto=String()) - - file = FileClass(db, "file", - name=String(), type=String()) - - # bugs and support calls etc - rate = Class(db, "rate", - name=String(), order=String()) - rate.setkey("name") - - source = Class(db, "source", - name=String(), order=String()) - source.setkey("name") - - platform = Class(db, "platform", - name=String(), order=String()) - platform.setkey("name") - - product = Class(db, "product", - name=String(), order=String()) - product.setkey("name") - - timelog = Class(db, "timelog", - date=Date(), time=String(), - performedby=Link("user"), description=String()) - - # IssueClass automatically gets these properties: - # title = String() - # messages = Multilink("msg") - # files = Multilink("file") - # nosy = Multilink("user") - # superseder = Multilink("issue") - # (it also gets the Class properties creation, activity and creator) - support = IssueClass(db, "support", - assignedto=Link("user"), status=Link("status"), - rate=Link("rate"), source=Link("source"), - product=Link("product"), platform=Multilink("platform"), - version=String(), timelog=Multilink("timelog"), - customername=String()) - - issue = IssueClass(db, "issue", - assignedto=Link("user"), priority=Link("priority"), - status=Link("status"), product=Link("product"), - platform=Multilink("platform"), version=String(), - targetversion=String(), supportcall=Multilink("support")) - - # - # SECURITY SETTINGS - # - # new permissions for this schema - for cl in 'issue', 'support', 'file', 'msg': - db.security.addPermission(name="Edit", klass=cl, - description="User is allowed to edit "+cl) - db.security.addPermission(name="View", klass=cl, - description="User is allowed to access "+cl) - - # Assign the access and edit permissions for issue, file and message - # to regular users now - for cl in 'issue', 'support', 'file', 'msg': - p = db.security.getPermission('View', cl) - db.security.addPermissionToRole('User', p) - p = db.security.getPermission('Edit', cl) - db.security.addPermissionToRole('User', p) - # and give the regular users access to the web and email interface - p = db.security.getPermission('Web Access') - db.security.addPermissionToRole('User', p) - p = db.security.getPermission('Email Access') - db.security.addPermissionToRole('User', p) - - # Assign the appropriate permissions to the anonymous user's Anonymous - # Role. Choices here are: - # - Allow anonymous users to register through the web - p = db.security.getPermission('Web Registration') - db.security.addPermissionToRole('Anonymous', p) - # - Allow anonymous (new) users to register through the email gateway - p = db.security.getPermission('Email Registration') - db.security.addPermissionToRole('Anonymous', p) - # - Allow anonymous users access to the "issue" class of data - # Note: this also grants access to related information like files, - # messages, statuses etc that are linked to issues - #p = db.security.getPermission('View', 'issue') - #db.security.addPermissionToRole('Anonymous', p) - # - Allow anonymous users access to edit the "issue" class of data - # Note: this also grants access to create related information like - # files and messages etc that are linked to issues - #p = db.security.getPermission('Edit', 'issue') - #db.security.addPermissionToRole('Anonymous', p) - - # oh, g'wan, let anonymous access the web interface too - p = db.security.getPermission('Web Access') - db.security.addPermissionToRole('Anonymous', p) - - import detectors - detectors.init(db) - - # schema is set up - run any post-initialisation - db.post_init() - return db - -def init(adminpw): - ''' as from the roundupdb method initDB - - Open the new database, and add new nodes - used for initialisation. You - can edit this before running the "roundup-admin initialise" command to - change the initial database entries. - ''' - dbdir = os.path.join(instance_config.DATABASE, 'files') - if not os.path.isdir(dbdir): - os.makedirs(dbdir) - - db = open("admin") - db.clear() - - pri = db.getclass('priority') - pri.create(name="fatal-bug", order="1") - pri.create(name="bug", order="2") - pri.create(name="usability", order="3") - pri.create(name="feature", order="4") - - stat = db.getclass('status') - stat.create(name="unread", order="1") - stat.create(name="deferred", order="2") - stat.create(name="chatting", order="3") - stat.create(name="need-eg", order="4") - stat.create(name="in-progress", order="5") - stat.create(name="testing", order="6") - stat.create(name="done-cbb", order="7") - stat.create(name="resolved", order="8") - - rate = db.getclass("rate") - rate.create(name='basic', order="1") - rate.create(name='premium', order="2") - rate.create(name='internal', order="3") - - source = db.getclass("source") - source.create(name='phone', order="1") - source.create(name='e-mail', order="2") - source.create(name='internal', order="3") - source.create(name='internal-qa', order="4") - - platform = db.getclass("platform") - platform.create(name='linux', order="1") - platform.create(name='windows', order="2") - platform.create(name='mac', order="3") - - product = db.getclass("product") - product.create(name='Bizar Shop', order="1") - product.create(name='Bizar Shop Developer', order="2") - product.create(name='Bizar Shop Manual', order="3") - product.create(name='Bizar Shop Developer Manual', order="4") - - user = db.getclass('user') - user.create(username="admin", password=adminpw, - address=instance_config.ADMIN_EMAIL, roles="Admin") - user.create(username="anonymous", roles='Anonymous') - - db.commit() - -# -# $Log: not supported by cvs2svn $ -# Revision 1.24 2002/07/26 08:27:00 richard -# Very close now. The cgi and mailgw now use the new security API. The two -# templates have been migrated to that setup. Lots of unit tests. Still some -# issue in the web form for editing Roles assigned to users. -# -# Revision 1.23 2002/07/14 02:05:54 richard -# . all storage-specific code (ie. backend) is now implemented by the backends -# -# Revision 1.22 2002/07/09 03:02:53 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.21 2002/05/24 04:03:23 richard -# Added commentage to the dbinit files to help people with their -# customisation. -# -# Revision 1.20 2002/02/15 07:08:44 richard -# . Alternate email addresses are now available for users. See the MIGRATION -# file for info on how to activate the feature. -# -# Revision 1.19 2002/01/14 02:20:15 richard -# . changed all config accesses so they access either the instance or the -# config attriubute on the db. This means that all config is obtained from -# instance_config instead of the mish-mash of classes. This will make -# switching to a ConfigParser setup easier too, I hope. -# -# At a minimum, this makes migration a _little_ easier (a lot easier in the -# 0.5.0 switch, I hope!) -# -# Revision 1.18 2002/01/02 02:31:38 richard -# Sorry for the huge checkin message - I was only intending to implement #496356 -# but I found a number of places where things had been broken by transactions: -# . modified ROUNDUPDBSENDMAILDEBUG to be SENDMAILDEBUG and hold a filename -# for _all_ roundup-generated smtp messages to be sent to. -# . the transaction cache had broken the roundupdb.Class set() reactors -# . newly-created author users in the mailgw weren't being committed to the db -# -# Stuff that made it into CHANGES.txt (ie. the stuff I was actually working -# on when I found that stuff :): -# . #496356 ] Use threading in messages -# . detectors were being registered multiple times -# . added tests for mailgw -# . much better attaching of erroneous messages in the mail gateway -# -# Revision 1.17 2001/12/02 05:06:16 richard -# . We now use weakrefs in the Classes to keep the database reference, so -# the close() method on the database is no longer needed. -# I bumped the minimum python requirement up to 2.1 accordingly. -# . #487480 ] roundup-server -# . #487476 ] INSTALL.txt -# -# I also cleaned up the change message / post-edit stuff in the cgi client. -# There's now a clearly marked "TODO: append the change note" where I believe -# the change note should be added there. The "changes" list will obviously -# have to be modified to be a dict of the changes, or somesuch. -# -# More testing needed. -# -# Revision 1.16 2001/12/01 07:17:50 richard -# . We now have basic transaction support! Information is only written to -# the database when the commit() method is called. Only the anydbm -# backend is modified in this way - neither of the bsddb backends have been. -# The mail, admin and cgi interfaces all use commit (except the admin tool -# doesn't have a commit command, so interactive users can't commit...) -# . Fixed login/registration forwarding the user to the right page (or not, -# on a failure) -# -# Revision 1.15 2001/11/26 22:55:56 richard -# Feature: -# . Added INSTANCE_NAME to configuration - used in web and email to identify -# the instance. -# . Added EMAIL_SIGNATURE_POSITION to indicate where to place the roundup -# signature info in e-mails. -# . Some more flexibility in the mail gateway and more error handling. -# . Login now takes you to the page you back to the were denied access to. -# -# Fixed: -# . Lots of bugs, thanks Roché and others on the devel mailing list! -# -# Revision 1.14 2001/11/21 02:34:18 richard -# Added a target version field to the extended issue schema -# -# Revision 1.13 2001/10/30 00:54:45 richard -# Features: -# . #467129 ] Lossage when username=e-mail-address -# . #473123 ] Change message generation for author -# . MailGW now moves 'resolved' to 'chatting' on receiving e-mail for an issue. -# -# Revision 1.12 2001/10/09 07:25:59 richard -# Added the Password property type. See "pydoc roundup.password" for -# implementation details. Have updated some of the documentation too. -# -# Revision 1.11 2001/08/07 00:24:43 richard -# stupid typo -# -# Revision 1.10 2001/08/07 00:15:51 richard -# Added the copyright/license notice to (nearly) all files at request of -# Bizar Software. -# -# Revision 1.9 2001/08/02 06:38:17 richard -# Roundupdb now appends "mailing list" information to its messages which -# include the e-mail address and web interface address. Templates may -# override this in their db classes to include specific information (support -# instructions, etc). -# -# Revision 1.8 2001/07/30 01:26:59 richard -# Big changes: -# . split off the support priority into its own class -# . added "new support, new user" to the page head -# . fixed the display options for the heading links -# -# Revision 1.7 2001/07/29 07:01:39 richard -# Added vim command to all source so that we don't get no steenkin' tabs :) -# -# Revision 1.6 2001/07/25 01:23:07 richard -# Added the Roundup spec to the new documentation directory. -# -# Revision 1.5 2001/07/23 23:20:35 richard -# forgot to remove the interfaces from the dbinit module ;) -# -# Revision 1.4 2001/07/23 08:45:28 richard -# ok, so now "./roundup-admin init" will ask questions in an attempt to get a -# workable instance_home set up :) -# _and_ anydbm has had its first test :) -# -# Revision 1.3 2001/07/23 07:14:41 richard -# Moved the database backends off into backends. -# -# Revision 1.2 2001/07/23 06:25:50 richard -# relfected the move to roundup/backends -# -# Revision 1.1 2001/07/23 04:33:21 anthonybaxter -# split __init__.py into 2. dbinit and instance_config. -# -# Revision 1.1 2001/07/23 03:50:46 anthonybaxter -# moved templates to proper location -# -# Revision 1.2 2001/07/22 12:09:32 richard -# Final commit of Grande Splite -# -# -# vim: set filetype=python ts=4 sw=4 et si - diff --git a/roundup/templates/extended/detectors/.cvsignore b/roundup/templates/extended/detectors/.cvsignore deleted file mode 100644 index 4162d5e..0000000 --- a/roundup/templates/extended/detectors/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.pyc -*.pyo -*.cover diff --git a/roundup/templates/extended/detectors/__init__.py b/roundup/templates/extended/detectors/__init__.py deleted file mode 100644 index 78f532f..0000000 --- a/roundup/templates/extended/detectors/__init__.py +++ /dev/null @@ -1,54 +0,0 @@ -# -# Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) -# This module is free software, and you may redistribute it and/or modify -# under the same terms as Python, so long as this copyright message and -# disclaimer are retained in their original form. -# -# IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR -# DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING -# OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -# BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" -# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, -# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -# -#$Id: __init__.py,v 1.4 2002-05-29 01:16:17 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 $ -#Revision 1.3 2001/08/07 00:24:43 richard -#stupid typo -# -#Revision 1.2 2001/08/07 00:15:51 richard -#Added the copyright/license notice to (nearly) all files at request of -#Bizar Software. -# -#Revision 1.1 2001/07/23 23:29:10 richard -#Adding the classic template -# -#Revision 1.1 2001/07/23 03:50:47 anthonybaxter -#moved templates to proper location -# -#Revision 1.1 2001/07/22 12:09:32 richard -#Final commit of Grande Splite -# -# diff --git a/roundup/templates/extended/detectors/nosyreaction.py b/roundup/templates/extended/detectors/nosyreaction.py deleted file mode 100644 index a11928a..0000000 --- a/roundup/templates/extended/detectors/nosyreaction.py +++ /dev/null @@ -1,218 +0,0 @@ -# -# Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) -# This module is free software, and you may redistribute it and/or modify -# under the same terms as Python, so long as this copyright message and -# disclaimer are retained in their original form. -# -# IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR -# DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING -# OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -# BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" -# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, -# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -# -#$Id: nosyreaction.py,v 1.13 2002-07-31 23:57:37 richard Exp $ - -from roundup import roundupdb, hyperdb - -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. - ''' - # send a copy of all new messages to the nosy list - for msgid in determineNewMessages(cl, nodeid, oldvalues): - try: - cl.nosymessage(nodeid, msgid, oldvalues) - except roundupdb.MessageSendError, message: - raise roundupdb.DetectorError, message - -def determineNewMessages(cl, nodeid, oldvalues): - ''' Figure a list of the messages that are being added to the given - node in this transaction. - ''' - 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) - return messages - -def updatenosy(db, cl, nodeid, newvalues): - '''Update the nosy list for changes to the assignedto - ''' - # nodeid will be None if this is a new node - current = {} - if nodeid is None: - ok = ('new', 'yes') - else: - ok = ('yes',) - # old node, get the current values from the node if they haven't - # changed - if not newvalues.has_key('nosy'): - nosy = cl.get(nodeid, 'nosy') - for value in nosy: - if not current.has_key(value): - current[value] = 1 - - # if the nosy list changed in this transaction, init from the new value - if newvalues.has_key('nosy'): - nosy = newvalues.get('nosy', []) - for value in nosy: - if not db.hasnode('user', value): - continue - if not current.has_key(value): - current[value] = 1 - - # add assignedto(s) to the nosy list - if newvalues.has_key('assignedto') and newvalues['assignedto'] is not None: - propdef = cl.getprops() - if isinstance(propdef['assignedto'], hyperdb.Link): - assignedto_ids = [newvalues['assignedto']] - elif isinstance(propdef['assignedto'], hyperdb.Multilink): - assignedto_ids = newvalues['assignedto'] - for assignedto_id in assignedto_ids: - if not current.has_key(assignedto_id): - current[assignedto_id] = 1 - - # see if there's any new messages - if so, possibly add the author and - # recipient to the nosy - if newvalues.has_key('messages'): - if nodeid is None: - ok = ('new', 'yes') - messages = newvalues['messages'] - else: - ok = ('yes',) - # figure which of the messages now on the issue weren't - # there before - make sure we don't get a cached version! - oldmessages = cl.get(nodeid, 'messages', cache=0) - messages = [] - for msgid in newvalues['messages']: - if msgid not in oldmessages: - messages.append(msgid) - - # configs for nosy modifications - add_author = getattr(db.config, 'ADD_AUTHOR_TO_NOSY', 'new') - add_recips = getattr(db.config, 'ADD_RECIPIENTS_TO_NOSY', 'new') - - # now for each new message: - msg = db.msg - for msgid in messages: - if add_author in ok: - authid = msg.get(msgid, 'author') - current[authid] = 1 - - # add on the recipients of the message - if add_recips in ok: - for recipient in msg.get(msgid, 'recipients'): - current[recipient] = 1 - - # that's it, save off the new nosy list - newvalues['nosy'] = current.keys() - -def init(db): - db.issue.react('create', nosyreaction) - db.issue.react('set', nosyreaction) - db.issue.audit('create', updatenosy) - db.issue.audit('set', updatenosy) - -# -#$Log: not supported by cvs2svn $ -#Revision 1.12 2002/05/29 01:16:17 richard -#Sorry about this huge checkin! It's fixing a lot of related stuff in one go -#though. -# -#. #541941 ] changing multilink properties by mail -#. #526730 ] search for messages capability -#. #505180 ] split MailGW.handle_Message -# - also changed cgi client since it was duplicating the functionality -#. build htmlbase if tests are run using CVS checkout (removed note from -# installation.txt) -#. don't create an empty message on email issue creation if the email is empty -# -#Revision 1.11 2002/01/14 22:21:38 richard -##503353 ] setting properties in initial email -# -#Revision 1.10 2002/01/11 23:22:29 richard -# . #502437 ] rogue reactor and unittest -# in short, the nosy reactor was modifying the nosy list. That code had -# been there for a long time, and I suspsect it was there because we -# weren't generating the nosy list correctly in other places of the code. -# We're now doing that, so the nosy-modifying code can go away from the -# nosy reactor. -# -#Revision 1.9 2001/12/15 19:24:39 rochecompaan -# . Modified cgi interface to change properties only once all changes are -# collected, files created and messages generated. -# . Moved generation of change note to nosyreactors. -# . We now check for changes to "assignedto" to ensure it's added to the -# nosy list. -# -#Revision 1.8 2001/12/05 14:26:44 rochecompaan -#Removed generation of change note from "sendmessage" in roundupdb.py. -#The change note is now generated when the message is created. -# -#Revision 1.7 2001/11/30 11:29:04 rochecompaan -#Property changes are now listed in emails generated by Roundup -# -#Revision 1.6 2001/11/26 22:55:56 richard -#Feature: -# . Added INSTANCE_NAME to configuration - used in web and email to identify -# the instance. -# . Added EMAIL_SIGNATURE_POSITION to indicate where to place the roundup -# signature info in e-mails. -# . Some more flexibility in the mail gateway and more error handling. -# . Login now takes you to the page you back to the were denied access to. -# -#Fixed: -# . Lots of bugs, thanks Roché and others on the devel mailing list! -# -#Revision 1.5 2001/11/12 22:01:07 richard -#Fixed issues with nosy reaction and author copies. -# -#Revision 1.4 2001/10/30 00:54:45 richard -#Features: -# . #467129 ] Lossage when username=e-mail-address -# . #473123 ] Change message generation for author -# . MailGW now moves 'resolved' to 'chatting' on receiving e-mail for an issue. -# -#Revision 1.3 2001/08/07 00:24:43 richard -#stupid typo -# -#Revision 1.2 2001/08/07 00:15:51 richard -#Added the copyright/license notice to (nearly) all files at request of -#Bizar Software. -# -#Revision 1.1 2001/07/23 23:29:10 richard -#Adding the classic template -# -#Revision 1.1 2001/07/23 03:50:47 anthonybaxter -#moved templates to proper location -# -#Revision 1.1 2001/07/22 12:09:32 richard -#Final commit of Grande Splite -# -# diff --git a/roundup/templates/extended/detectors/statusauditor.py b/roundup/templates/extended/detectors/statusauditor.py deleted file mode 100644 index b935706..0000000 --- a/roundup/templates/extended/detectors/statusauditor.py +++ /dev/null @@ -1,68 +0,0 @@ -# Copyright (c) 2002 ekit.com Inc (http://www.ekit-inc.com/) -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -# -#$Id: statusauditor.py,v 1.1 2002-05-29 01:16:17 richard Exp $ - -def chatty(db, cl, nodeid, newvalues): - ''' If the issue is currently 'unread' or 'resolved', then set - it to 'chatting' - ''' - # don't fire if there's no new message (ie. chat) - if not newvalues.has_key('messages'): - return - if newvalues['messages'] == cl.get(nodeid, 'messages', cache=0): - return - - # determine the id of 'unread', 'resolved' and 'chatting' - unread_id = db.status.lookup('unread') - resolved_id = db.status.lookup('resolved') - chatting_id = db.status.lookup('chatting') - - # get the current value - current_status = cl.get(nodeid, 'status') - - # see if there's an explicit change in this transaction - if newvalues.has_key('status') and newvalues['status'] != current_status: - # yep, skip - return - - # ok, there's no explicit change, so do it manually - if current_status in (unread_id, resolved_id): - newvalues['status'] = chatting_id - - -def presetunread(db, cl, nodeid, newvalues): - ''' Make sure the status is set on new issues - ''' - if newvalues.has_key('status'): - return - - # ok, do it - newvalues['status'] = db.status.lookup('unread') - - -def init(db): - # fire before changes are made - db.issue.audit('set', chatty) - db.issue.audit('create', presetunread) - -# -#$Log: not supported by cvs2svn $ -# diff --git a/roundup/templates/extended/html/file.index b/roundup/templates/extended/html/file.index deleted file mode 100644 index ab69ce6..0000000 --- a/roundup/templates/extended/html/file.index +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/roundup/templates/extended/html/file.newitem b/roundup/templates/extended/html/file.newitem deleted file mode 100644 index 003daf4..0000000 --- a/roundup/templates/extended/html/file.newitem +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - -
File upload details
File:
 
diff --git a/roundup/templates/extended/html/issue.filter b/roundup/templates/extended/html/issue.filter deleted file mode 100644 index a05573d..0000000 --- a/roundup/templates/extended/html/issue.filter +++ /dev/null @@ -1,29 +0,0 @@ - - - Title - - - - Status - - - - Priority - - - - Platform - - - - Product - - - - Version - - - - Assigned to - - diff --git a/roundup/templates/extended/html/issue.index b/roundup/templates/extended/html/issue.index deleted file mode 100644 index 59045d8..0000000 --- a/roundup/templates/extended/html/issue.index +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/roundup/templates/extended/html/issue.item b/roundup/templates/extended/html/issue.item deleted file mode 100644 index 84cfecb..0000000 --- a/roundup/templates/extended/html/issue.item +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Item Information
Title
Product - version:Platform
 Target Version - -
Created - ()Last activity
PriorityStatus
Assigned toNosy List -
Superseder - - - -
View: -
-
Support call - - - -
View: -
-
Change Note
File
 
Messages
Files
- :files">Attach a file to this issue -
History
- diff --git a/roundup/templates/extended/html/msg.index b/roundup/templates/extended/html/msg.index deleted file mode 100644 index a82fdd5..0000000 --- a/roundup/templates/extended/html/msg.index +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - -
- diff --git a/roundup/templates/extended/html/msg.item b/roundup/templates/extended/html/msg.item deleted file mode 100644 index 1963313..0000000 --- a/roundup/templates/extended/html/msg.item +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Message Information
Author
Recipients
Date
-
-
Files
History
diff --git a/roundup/templates/extended/html/style.css b/roundup/templates/extended/html/style.css deleted file mode 100644 index dcaa8a0..0000000 --- a/roundup/templates/extended/html/style.css +++ /dev/null @@ -1,112 +0,0 @@ -a:hover { - text-decoration: underline; - color: #333333; -} - -a:link { - text-decoration: none; - color: #000099; -} - -a { - text-decoration: none; - color: #000099; -} - -p { - color: #333333; -} - -th { - font-weight: bold; - color: #333333; -} - -.form-help { - color: #333333; -} - -.location-bar { - background-color: #efefef; - border: none; -} - -.strong-header { - font-weight: bold; - background-color: #000000; - color: #ffffff; -} - -.list-header { - background-color: #aaccff; - color: #000000; - border: none; -} - -.section-bar { - background-color: #707070; - color: #ffffff; - border: 1px solid #404040; -} - -.row-normal { - background-color: #ffffff; - border: none; -} - -.row-hilite { - background-color: #efefef; - border: none; -} - -.msg-header { - font-family: Verdana, Helvetica, sans-serif; - font-weight: bold; - background-color: #EE71AC; - color: #ffffff; -} - -.msg-content { - font-family: monospace; - background-color: #ffeaff; - color: #000000; -} - -.system-msg { - background-color: #ffffff; - border: 1px solid #000000; - margin-bottom: 6px; - margin-top: 6px; - padding: 4px; - width: 100%; - color: #660033; -} - -.form-title { - font-weight: bold; - color: #333333; -} - -.form-label { - font-weight: bold; - color: #333333; -} - -.form-optional { - font-weight: bold; - font-style: italic; - color: #333333; -} - -.form-element { - color: #000000; -} - -.form-text { - color: #333333; -} - -.form-mono { - font-family: monospace; -} - diff --git a/roundup/templates/extended/html/support.filter b/roundup/templates/extended/html/support.filter deleted file mode 100644 index 7da9ef0..0000000 --- a/roundup/templates/extended/html/support.filter +++ /dev/null @@ -1,33 +0,0 @@ - - - Title - - - - Status - - - - Platform - - - - Product - - - - Version - - - - Source - - - - Assigned to - - - - Customer name - - diff --git a/roundup/templates/extended/html/support.index b/roundup/templates/extended/html/support.index deleted file mode 100644 index e69f4ba..0000000 --- a/roundup/templates/extended/html/support.index +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/roundup/templates/extended/html/support.item b/roundup/templates/extended/html/support.item deleted file mode 100644 index 71ce756..0000000 --- a/roundup/templates/extended/html/support.item +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Item Information
Title
Product - version:Platform
Created - ()Last activity
EmptyXXXXSource
StatusRate
Assigned ToCustomer Name
Superseder - - - -
View: -
-
Nosy List
Change Note
File
 
Messages
Timelog
- :timelog">Log time against this support call -
Files
- :files">Attach a file to support call -
- diff --git a/roundup/templates/extended/html/timelog.index b/roundup/templates/extended/html/timelog.index deleted file mode 100644 index 18a2171..0000000 --- a/roundup/templates/extended/html/timelog.index +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/roundup/templates/extended/html/timelog.item b/roundup/templates/extended/html/timelog.item deleted file mode 100644 index cb08f4f..0000000 --- a/roundup/templates/extended/html/timelog.item +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Time log details
Time spent
Description
Date
Performed by
 
History
- diff --git a/roundup/templates/extended/html/user.index b/roundup/templates/extended/html/user.index deleted file mode 100644 index 5ccc140..0000000 --- a/roundup/templates/extended/html/user.index +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/roundup/templates/extended/html/user.item b/roundup/templates/extended/html/user.item deleted file mode 100644 index 09a4f50..0000000 --- a/roundup/templates/extended/html/user.item +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Your Details
Name
Login Name
Login Password
Roles
Phone
Organisation
E-mail address
Alternate E-mail addresses
 
History
- diff --git a/roundup/templates/extended/instance_config.py b/roundup/templates/extended/instance_config.py deleted file mode 100644 index 532e149..0000000 --- a/roundup/templates/extended/instance_config.py +++ /dev/null @@ -1,319 +0,0 @@ -# -# Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) -# This module is free software, and you may redistribute it and/or modify -# under the same terms as Python, so long as this copyright message and -# disclaimer are retained in their original form. -# -# IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR -# DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING -# OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -# BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" -# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, -# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -# -# $Id: instance_config.py,v 1.19 2002-07-26 08:27:00 richard Exp $ - -MAIL_DOMAIN=MAILHOST=HTTP_HOST=None -HTTP_PORT=0 - -try: - from localconfig import * -except ImportError: - localconfig = None - -import os - -# roundup home is this package's directory -INSTANCE_HOME=os.path.split(__file__)[0] - -# The SMTP mail host that roundup will use to send mail -if not MAILHOST: - MAILHOST = 'localhost' - -# The domain name used for email addresses. -if not MAIL_DOMAIN: - MAIL_DOMAIN = 'your.tracker.email.domain.example' - -# the next two are only used for the standalone HTTP server. -if not HTTP_HOST: - HTTP_HOST = '' -if not HTTP_PORT: - HTTP_PORT = 9080 - -# This is the directory that the database is going to be stored in -DATABASE = os.path.join(INSTANCE_HOME, 'db') - -# This is the directory that the HTML templates reside in -TEMPLATES = os.path.join(INSTANCE_HOME, 'html') - -# A descriptive name for your roundup instance -INSTANCE_NAME = 'Roundup issue tracker' - -# The email address that mail to roundup should go to -ISSUE_TRACKER_EMAIL = 'issue_tracker@%s'%MAIL_DOMAIN - -# The web address that the instance is viewable at -ISSUE_TRACKER_WEB = 'http://your.tracker.url.example/' - -# The email address that roundup will complain to if it runs into trouble -ADMIN_EMAIL = 'roundup-admin@%s'%MAIL_DOMAIN - -# Somewhere for roundup to log stuff internally sent to stdout or stderr -LOG = os.path.join(INSTANCE_HOME, 'roundup.log') - -# Where to place the web filtering HTML on the index page -FILTER_POSITION = 'bottom' # one of 'top', 'bottom', 'top and bottom' - -# -# SECURITY DEFINITIONS -# -# define the Roles that a user gets when they register with the tracker -# these are a comma-separated string of role names (e.g. 'Admin,User') -NEW_WEB_USER_ROLES = 'User' -NEW_EMAIL_USER_ROLES = 'User' - -# Send nosy messages to the author of the message -MESSAGES_TO_AUTHOR = 'no' # either 'yes' or 'no' - -# Does the author of a message get placed on the nosy list automatically? -# If 'new' is used, then the author will only be added when a message -# creates a new issue. If 'yes', then the author will be added on followups -# too. If 'no', they're never added to the nosy. -ADD_AUTHOR_TO_NOSY = 'new' # one of 'yes', 'no', 'new' - -# Do the recipients (To:, Cc:) of a message get placed on the nosy list? -# If 'new' is used, then the recipients will only be added when a message -# creates a new issue. If 'yes', then the recipients will be added on followups -# too. If 'no', they're never added to the nosy. -ADD_RECIPIENTS_TO_NOSY = 'new' # either 'yes', 'no', 'new' - -# Where to place the email signature -EMAIL_SIGNATURE_POSITION = 'bottom' # one of 'top', 'bottom', 'none' - -# Keep email citations -EMAIL_KEEP_QUOTED_TEXT = 'no' # either 'yes' or 'no' - -# Preserve the email body as is -EMAIL_LEAVE_BODY_UNCHANGED = 'no' # either 'yes' or 'no' - -# Default class to use in the mailgw if one isn't supplied in email -# subjects. To disable, comment out the variable below or leave it blank. -# Examples: -MAIL_DEFAULT_CLASS = 'issue' # use "issue" class by default -#MAIL_DEFAULT_CLASS = '' # disable (or just comment the var out) - -# Define what index links are available in the header, and what their -# labels are. Each key is used to look up one of the index specifications -# below - so 'DEFAULT' will use 'DEFAULT_INDEX'. -# Where the FILTERSPEC has 'assignedto' with a value of None, it will be -# replaced by the id of the logged-in user. -HEADER_INDEX_LINKS = ['DEFAULT', 'ALL_SUPPORT', 'UNASSIGNED_ISSUE', - 'UNASSIGNED_SUPPORT', 'MY_ISSUE', 'MY_SUPPORT'] - -# list the classes that users are able to add nodes to -HEADER_ADD_LINKS = ['issue', 'support'] - -# list the classes that users can search -HEADER_SEARCH_LINKS = ['issue', 'support'] - -SEARCH_FILTERS = ['ISSUE_FILTER', 'SUPPORT_FILTER'] - -# Now the DEFAULT display specifications. TODO: describe format -DEFAULT_INDEX = { - 'LABEL': 'All Issues', - 'CLASS': 'issue', - 'SORT': ['-activity'], - 'GROUP': ['priority'], - 'FILTER': ['status'], - 'COLUMNS': ['id','activity','title','creator','assignedto'], - 'FILTERSPEC': { - 'status': ['-1', '1', '2', '3', '4', '5', '6', '7'], - }, -} - -ALL_SUPPORT_INDEX = { - 'LABEL': 'All Support', - 'CLASS': 'support', - 'SORT': ['-activity'], - 'GROUP': ['customername'], - 'FILTER': ['status'], - 'COLUMNS': ['id','activity','title','creator','assignedto'], - 'FILTERSPEC': { - 'status': ['-1', '1', '2', '3', '4', '5', '6', '7'], - }, -} - -# The "unsassigned issues" indexes -UNASSIGNED_ISSUE_INDEX = { - 'LABEL': 'Unassigned Issues', - 'CLASS': 'issue', - 'SORT': ['-activity'], - 'GROUP': ['priority'], - 'FILTER': ['status', 'assignedto'], - 'COLUMNS': ['id','activity','title','creator','status'], - 'FILTERSPEC': { - 'status': ['-1', '1', '2', '3', '4', '5', '6', '7'], - 'assignedto': ['-1'], - }, -} -UNASSIGNED_SUPPORT_INDEX = { - 'LABEL': 'Unassigned Support', - 'CLASS': 'support', - 'SORT': ['-activity'], - 'GROUP': ['customername'], - 'FILTER': ['status', 'assignedto'], - 'COLUMNS': ['id','activity','title','creator','status'], - 'FILTERSPEC': { - 'status': ['-1', '1', '2', '3', '4', '5', '6', '7'], - 'assignedto': ['-1'], - }, -} - -# The "my issues" index -- note that the user's id will replace the -# 'CURRENT USER' value of the "assignedto" filterspec -MY_ISSUE_INDEX = { - 'LABEL': 'My Issues', - 'CLASS': 'issue', - 'SORT': ['-activity'], - 'GROUP': ['priority'], - 'FILTER': ['status', 'assignedto'], - 'COLUMNS': ['id','activity','title','creator','status'], - 'FILTERSPEC': { - 'status': ['-1', '1', '2', '3', '4', '5', '6', '7'], - 'assignedto': 'CURRENT USER', - }, -} - -MY_SUPPORT_INDEX = { - 'LABEL': 'My Support', - 'CLASS': 'support', - 'SORT': ['-activity'], - 'GROUP': ['customername'], - 'FILTER': ['status', 'assignedto'], - 'COLUMNS': ['id','activity','title','creator','status'], - 'FILTERSPEC': { - 'status': ['-1', '1', '2', '3', '4', '5', '6', '7'], - 'assignedto': 'CURRENT USER', - }, -} - -ISSUE_FILTER = { - 'CLASS': 'issue', - 'FILTER': ['status', 'priority', 'assignedto', 'creator'] -} - -SUPPORT_FILTER = { - 'CLASS': 'issue', - 'FILTER': ['status', 'priority', 'assignedto', 'creator'] -} - -# -# $Log: not supported by cvs2svn $ -# Revision 1.18 2002/05/25 07:16:25 rochecompaan -# Merged search_indexing-branch with HEAD -# -# Revision 1.17 2002/05/22 00:32:34 richard -# . changed the default message list in issues to display the message body -# . made backends.__init__ be more specific about which ImportErrors it really -# wants to ignore -# . fixed the example addresses in the templates to use correct example domains -# . cleaned out the template stylesheets, removing a bunch of junk that really -# wasn't necessary (font specs, styles never used) and added a style for -# message content -# -# Revision 1.16 2002/05/21 06:05:54 richard -# . #551483 ] assignedto in Client.make_index_link -# -# Revision 1.15 2002/05/02 07:56:34 richard -# . added option to automatically add the authors and recipients of messages -# to the nosy lists with the options ADD_AUTHOR_TO_NOSY (default 'new') and -# ADD_RECIPIENTS_TO_NOSY (default 'new'). These settings emulate the current -# behaviour. Setting them to 'yes' will add the author/recipients to the nosy -# on messages that create issues and followup messages. -# . added missing documentation for a few of the config option values -# -# Revision 1.14 2002/04/23 15:46:49 rochecompaan -# . stripping of the email message body can now be controlled through -# the config variables EMAIL_KEEP_QUOTED_TEST and -# EMAIL_LEAVE_BODY_UNCHANGED. -# -# Revision 1.13.2.2 2002/05/02 11:49:19 rochecompaan -# Allow customization of the search filters that should be displayed -# on the search page. -# -# Revision 1.13.2.1 2002/04/20 13:23:34 rochecompaan -# We now have a separate search page for nodes. Search links for -# different classes can be customized in instance_config similar to -# index links. -# -# Revision 1.13 2002/03/14 23:59:24 richard -# . #517734 ] web header customisation is obscure -# -# Revision 1.12 2002/02/15 00:13:38 richard -# . #503204 ] mailgw needs a default class -# - partially done - the setting of additional properties can wait for a -# better configuration system. -# -# Revision 1.11 2002/02/14 23:46:02 richard -# . #516883 ] mail interface + ANONYMOUS_REGISTER -# -# Revision 1.10 2001/11/26 22:55:56 richard -# Feature: -# . Added INSTANCE_NAME to configuration - used in web and email to identify -# the instance. -# . Added EMAIL_SIGNATURE_POSITION to indicate where to place the roundup -# signature info in e-mails. -# . Some more flexibility in the mail gateway and more error handling. -# . Login now takes you to the page you back to the were denied access to. -# -# Fixed: -# . Lots of bugs, thanks Roché and others on the devel mailing list! -# -# Revision 1.9 2001/10/30 00:54:45 richard -# Features: -# . #467129 ] Lossage when username=e-mail-address -# . #473123 ] Change message generation for author -# . MailGW now moves 'resolved' to 'chatting' on receiving e-mail for an issue. -# -# Revision 1.8 2001/10/23 01:00:18 richard -# Re-enabled login and registration access after lopping them off via -# disabling access for anonymous users. -# Major re-org of the htmltemplate code, cleaning it up significantly. Fixed -# a couple of bugs while I was there. Probably introduced a couple, but -# things seem to work OK at the moment. -# -# Revision 1.7 2001/10/22 03:25:01 richard -# Added configuration for: -# . anonymous user access and registration (deny/allow) -# . filter "widget" location on index page (top, bottom, both) -# Updated some documentation. -# -# Revision 1.6 2001/10/01 06:10:42 richard -# stop people setting up roundup with our addresses as default - need to -# handle this better in the init -# -# Revision 1.5 2001/08/07 00:24:43 richard -# stupid typo -# -# Revision 1.4 2001/08/07 00:15:51 richard -# Added the copyright/license notice to (nearly) all files at request of -# Bizar Software. -# -# Revision 1.3 2001/08/02 06:38:17 richard -# Roundupdb now appends "mailing list" information to its messages which -# include the e-mail address and web interface address. Templates may -# override this in their db classes to include specific information (support -# instructions, etc). -# -# Revision 1.2 2001/07/29 07:01:39 richard -# Added vim command to all source so that we don't get no steenkin' tabs :) -# -# Revision 1.1 2001/07/23 04:33:21 anthonybaxter -# split __init__.py into 2. dbinit and instance_config. -# -# -# vim: set filetype=python ts=4 sw=4 et si diff --git a/roundup/templates/extended/interfaces.py b/roundup/templates/extended/interfaces.py deleted file mode 100644 index e6fbcbb..0000000 --- a/roundup/templates/extended/interfaces.py +++ /dev/null @@ -1,114 +0,0 @@ -# -# Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) -# This module is free software, and you may redistribute it and/or modify -# under the same terms as Python, so long as this copyright message and -# disclaimer are retained in their original form. -# -# IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR -# DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING -# OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -# BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" -# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, -# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -# -# $Id: interfaces.py,v 1.16 2002-01-14 02:20:15 richard Exp $ - -import instance_config -from roundup import cgi_client, mailgw - -class Client(cgi_client.ExtendedClient): - ''' derives basic CGI implementation from the standard module, - with any specific extensions - ''' - pass - -class MailGW(mailgw.MailGW): - ''' derives basic mail gateway implementation from the standard module, - with any specific extensions - ''' - pass - -# -# $Log: not supported by cvs2svn $ -# Revision 1.15 2002/01/02 02:32:38 richard -# ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER -# -# Revision 1.14 2001/12/20 15:43:01 rochecompaan -# Features added: -# . Multilink properties are now displayed as comma separated values in -# a textbox -# . The add user link is now only visible to the admin user -# . Modified the mail gateway to reject submissions from unknown -# addresses if ANONYMOUS_ACCESS is denied -# -# Revision 1.13 2001/11/26 23:00:53 richard -# This config stuff is getting to be a real mess... -# -# Revision 1.12 2001/10/22 03:25:01 richard -# Added configuration for: -# . anonymous user access and registration (deny/allow) -# . filter "widget" location on index page (top, bottom, both) -# Updated some documentation. -# -# Revision 1.11 2001/10/09 07:38:58 richard -# Pushed the base code for the extended schema CGI interface back into the -# code cgi_client module so that future updates will be less painful. -# Also removed a debugging print statement from cgi_client. -# -# Revision 1.10 2001/10/05 02:23:24 richard -# . roundup-admin create now prompts for property info if none is supplied -# on the command-line. -# . hyperdb Class getprops() method may now return only the mutable -# properties. -# . Login now uses cookies, which makes it a whole lot more flexible. We can -# now support anonymous user access (read-only, unless there's an -# "anonymous" user, in which case write access is permitted). Login -# handling has been moved into cgi_client.Client.main() -# . The "extended" schema is now the default in roundup init. -# . The schemas have had their page headings modified to cope with the new -# login handling. Existing installations should copy the interfaces.py -# file from the roundup lib directory to their instance home. -# . Incorrectly had a Bizar Software copyright on the cgitb.py module from -# Ping - has been removed. -# . Fixed a whole bunch of places in the CGI interface where we should have -# been returning Not Found instead of throwing an exception. -# . Fixed a deviation from the spec: trying to modify the 'id' property of -# an item now throws an exception. -# -# Revision 1.9 2001/08/07 00:24:43 richard -# stupid typo -# -# Revision 1.8 2001/08/07 00:15:51 richard -# Added the copyright/license notice to (nearly) all files at request of -# Bizar Software. -# -# Revision 1.7 2001/08/02 00:43:06 richard -# Even better (more useful) headings -# -# Revision 1.6 2001/08/02 00:36:42 richard -# Made all the user-specific link names the same (My Foo) -# -# Revision 1.5 2001/08/01 05:15:09 richard -# Added "My Issues" and "My Support" to extended template. -# -# Revision 1.4 2001/07/30 08:12:17 richard -# Added time logging and file uploading to the templates. -# -# Revision 1.3 2001/07/30 01:26:59 richard -# Big changes: -# . split off the support priority into its own class -# . added "new support, new user" to the page head -# . fixed the display options for the heading links -# -# Revision 1.2 2001/07/29 07:01:39 richard -# Added vim command to all source so that we don't get no steenkin' tabs :) -# -# Revision 1.1 2001/07/23 23:16:01 richard -# Split off the interfaces (CGI, mailgw) into a separate file from the DB stuff. -# -# -# vim: set filetype=python ts=4 sw=4 et si