annotate roundup/templates/classic/dbinit.py @ 57:6ff85bc2dd56

Adding the classic template
author Richard Jones <richard@users.sourceforge.net>
date Mon, 23 Jul 2001 23:29:10 +0000
parents
children e9735680d5b3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
57
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1 # $Id: dbinit.py,v 1.1 2001-07-23 23:28:43 richard Exp $
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3 import os
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5 import instance_config
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6 from roundup import roundupdb, cgi_client, mailgw
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7 import select_db
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8 from roundup.roundupdb import Class, FileClass
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10 class Database(roundupdb.Database, select_db.Database):
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11 ''' Creates a hybrid database from:
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 . the selected database back-end from select_db
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 . the roundup extensions from roundupdb
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14 '''
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 pass
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 class IssueClass(roundupdb.IssueClass):
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18 ''' issues need the email information
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19 '''
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20 ISSUE_TRACKER_EMAIL = instance_config.ISSUE_TRACKER_EMAIL
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 ADMIN_EMAIL = instance_config.ADMIN_EMAIL
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
22 MAILHOST = instance_config.MAILHOST
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
25 def open(name=None):
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
26 ''' as from the roundupdb method openDB
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
27
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
28 '''
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29 from roundup.hyperdb import String, Date, Link, Multilink
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31 # open the database
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32 db = Database(instance_config.DATABASE, name)
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34 # Now initialise the schema. Must do this each time.
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35 pri = Class(db, "priority",
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36 name=String(), order=String())
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
37 pri.setkey("name")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
38
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
39 stat = Class(db, "status",
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40 name=String(), order=String())
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41 stat.setkey("name")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
43 keywords = Class(db, "keyword",
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
44 name=String())
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
45
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
46 user = Class(db, "user",
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
47 username=String(), password=String(),
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
48 address=String(), realname=String(),
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
49 phone=String(), organisation=String())
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
50 user.setkey("username")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
51
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
52 msg = FileClass(db, "msg",
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
53 author=Link("user"), recipients=Multilink("user"),
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
54 date=Date(), summary=String(),
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
55 files=Multilink("file"))
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
56
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
57 file = FileClass(db, "file",
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
58 name=String(), type=String())
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
59
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
60 keyword = Class(db, "keyword", name=String())
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
61 keyword.setkey("name")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
62
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
63 issue = IssueClass(db, "issue",
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
64 assignedto=Link("user"), topic=hyperdb.Multilink("keyword"),
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
65 priority=Link("priority"), status=Link("status"))
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
66 issue.setkey('title')
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
67
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
68 import detectors
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
69 detectors.init(db)
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
70
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
71 return db
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
72
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
73 def init(adminpw):
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
74 ''' as from the roundupdb method initDB
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
75
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
76 Open the new database, and set up a bunch of attributes.
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
77
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
78 '''
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
79 dbdir = os.path.join(instance_config.DATABASE, 'files')
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
80 if not os.path.isdir(dbdir):
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
81 os.makedirs(dbdir)
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
82
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
83 db = open("admin")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
84 db.clear()
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
85
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
86 pri = db.getclass('priority')
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
87 pri.create(name="critical", order="1")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
88 pri.create(name="urgent", order="2")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
89 pri.create(name="bug", order="3")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
90 pri.create(name="feature", order="4")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
91 pri.create(name="wish", order="5")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
92
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
93 stat = db.getclass('status')
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
94 stat.create(name="unread", order="1")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
95 stat.create(name="deferred", order="2")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
96 stat.create(name="chatting", order="3")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
97 stat.create(name="need-eg", order="4")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
98 stat.create(name="in-progress", order="5")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
99 stat.create(name="testing", order="6")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
100 stat.create(name="done-cbb", order="7")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
101 stat.create(name="resolved", order="8")
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
102
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
103 user = db.getclass('user')
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
104 user.create(username="admin", password=adminpw,
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
105 address=instance_config.ADMIN_EMAIL)
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
106
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
107 db.close()
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
108
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
109 #
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
110 # $Log: not supported by cvs2svn $
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
111 # Revision 1.4 2001/07/23 08:45:28 richard
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
112 # ok, so now "./roundup-admin init" will ask questions in an attempt to get a
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
113 # workable instance_home set up :)
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
114 # _and_ anydbm has had its first test :)
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
115 #
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
116 # Revision 1.3 2001/07/23 07:14:41 richard
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
117 # Moved the database backends off into backends.
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
118 #
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
119 # Revision 1.2 2001/07/23 06:25:50 richard
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
120 # relfected the move to roundup/backends
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
121 #
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
122 # Revision 1.1 2001/07/23 04:33:21 anthonybaxter
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
123 # split __init__.py into 2. dbinit and instance_config.
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
124 #
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
125 # Revision 1.1 2001/07/23 03:50:46 anthonybaxter
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
126 # moved templates to proper location
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
127 #
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
128 # Revision 1.2 2001/07/22 12:09:32 richard
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
129 # Final commit of Grande Splite
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
130 #
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
131 #
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
132
6ff85bc2dd56 Adding the classic template
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
133

Roundup Issue Tracker: http://roundup-tracker.org/