comparison templates/classic/schema.py @ 2638:18e86941c950

Load up extensions in the tracker "extensions" directory. Wrote a proof-of-concept action, is in the wiki. Cleaned up the schema.py file of spaces-at-eol.
author Richard Jones <richard@users.sourceforge.net>
date Tue, 27 Jul 2004 02:30:32 +0000
parents a9e1fff1e793
children 1df7d4a41da4
comparison
equal deleted inserted replaced
2637:11811b313459 2638:18e86941c950
8 # activity = Date() 8 # activity = Date()
9 # creator = Link('user') 9 # creator = Link('user')
10 # actor = Link('user') 10 # actor = Link('user')
11 11
12 # Priorities 12 # Priorities
13 pri = Class(db, "priority", 13 pri = Class(db, "priority",
14 name=String(), 14 name=String(),
15 order=Number()) 15 order=Number())
16 pri.setkey("name") 16 pri.setkey("name")
17 17
18 # Statuses 18 # Statuses
19 stat = Class(db, "status", 19 stat = Class(db, "status",
20 name=String(), 20 name=String(),
21 order=Number()) 21 order=Number())
22 stat.setkey("name") 22 stat.setkey("name")
23 23
24 # Keywords 24 # Keywords
25 keyword = Class(db, "keyword", 25 keyword = Class(db, "keyword",
26 name=String()) 26 name=String())
27 keyword.setkey("name") 27 keyword.setkey("name")
28 28
29 # User-defined saved searches 29 # User-defined saved searches
30 query = Class(db, "query", 30 query = Class(db, "query",
33 url=String(), 33 url=String(),
34 private_for=Link('user')) 34 private_for=Link('user'))
35 35
36 # add any additional database schema configuration here 36 # add any additional database schema configuration here
37 37
38 user = Class(db, "user", 38 user = Class(db, "user",
39 username=String(), 39 username=String(),
40 password=Password(), 40 password=Password(),
41 address=String(), 41 address=String(),
42 realname=String(), 42 realname=String(),
43 phone=String(), 43 phone=String(),
44 organisation=String(), 44 organisation=String(),
45 alternate_addresses=String(), 45 alternate_addresses=String(),
46 queries=Multilink('query'), 46 queries=Multilink('query'),
47 roles=String(), # comma-separated string of Role names 47 roles=String(), # comma-separated string of Role names
48 timezone=String()) 48 timezone=String())
49 user.setkey("username") 49 user.setkey("username")
50 50
51 # FileClass automatically gets this property in addition to the Class ones: 51 # FileClass automatically gets this property in addition to the Class ones:
52 # content = String() [saved to disk in <tracker home>/db/files/] 52 # content = String() [saved to disk in <tracker home>/db/files/]
53 msg = FileClass(db, "msg", 53 msg = FileClass(db, "msg",
54 author=Link("user", do_journal='no'), 54 author=Link("user", do_journal='no'),
55 recipients=Multilink("user", do_journal='no'), 55 recipients=Multilink("user", do_journal='no'),
56 date=Date(), 56 date=Date(),
57 summary=String(), 57 summary=String(),
58 files=Multilink("file"), 58 files=Multilink("file"),
59 messageid=String(), 59 messageid=String(),
60 inreplyto=String()) 60 inreplyto=String())
61 61
62 file = FileClass(db, "file", 62 file = FileClass(db, "file",
63 name=String(), 63 name=String(),
64 type=String()) 64 type=String())
65 65
66 # IssueClass automatically gets these properties in addition to the Class ones: 66 # IssueClass automatically gets these properties in addition to the Class ones:
67 # title = String() 67 # title = String()
68 # messages = Multilink("msg") 68 # messages = Multilink("msg")
69 # files = Multilink("file") 69 # files = Multilink("file")
70 # nosy = Multilink("user") 70 # nosy = Multilink("user")
71 # superseder = Multilink("issue") 71 # superseder = Multilink("issue")
72 issue = IssueClass(db, "issue", 72 issue = IssueClass(db, "issue",
73 assignedto=Link("user"), 73 assignedto=Link("user"),
74 topic=Multilink("keyword"), 74 topic=Multilink("keyword"),
75 priority=Link("priority"), 75 priority=Link("priority"),
76 status=Link("status")) 76 status=Link("status"))
77 77

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