annotate roundup/templates/classic/dbinit.py @ 68:5e71aaa87e5b

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

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