annotate whitepaper.txt @ 2:910fa7e781b9

update whitepaper
author k0s <k0scist@gmail.com>
date Tue, 02 Feb 2010 16:39:08 -0500
parents 79ba50af9443
children f09ba04b2e29
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
1 Discussions
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
2 ===========
0
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
3
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
4 All Discussions objects are basically the same. You get a set of
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
5 options which are inherited from the parent or provided.
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
6
2
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
7 Discussions (version 1) is a strict hierarchy with views on this object.
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
8 Email messages (as per the python ``email`` module) are used as the
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
9 basis of all message object: that is, each object should be
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
10 expressable as a set of headers and body. Since email messages are
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
11 hierarchal, the organization makes sense
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
12
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
13 Discussion version 2 is planned to be a directed graph.
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
14
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
15 Core concepts:
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
16 * events
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
17 * people
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
18 * moderation
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
19 * policy
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
20
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
21
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
22 Events
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
23 ------
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
24
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
25 The add_message event: this is the portal event for all messages going
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
26 through discussions. This may be via
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
27
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
28 * email
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
29 * web
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
30 * command line
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
31
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
32 This could provide a front for twitter, RSS, or other discussions instances.
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
33
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
34
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
35 Roles and Permissions
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
36 ---------------------
1
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
37
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
38 A member can be in one of three states with respect to a resource:
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
39
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
40 * administrator: has all rights over a resource except as set by
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
41 above resources; Administrators of the root ('/') resource are
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
42 site administrators and have all rights.
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
43
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
44 * members: has permissions of a resource as dictated by the
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
45 administrator (view, post, etc). [different types of members?
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
46 groups? probably not]
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
47
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
48 * non-members: if an agent isn't a member of a resource, they
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
49 generally have lowest level priveleges.
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
50
2
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
51 Options and Configuration
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
52 -------------------------
0
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
53
2
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
54 Configuration options can be in one of three states: unset, set, and locked (and
1
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
55 set + locked). In
0
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
56 the case where the option is locked, all children inherit the setting
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
57 as well:
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
58
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
59 archive.lock = false
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
60
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
61 Locking an option prohibits any but a higher-level admin from
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
62 unlocking it. The higher-level admin is free to change the setting:
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
63
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
64 archive.lock = false
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
65 archive = true
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
66
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
67 This locks the archive of subchildren into the false state, but sets
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
68 the archive for this discussion in the current discussion.
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
69
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
70 This prevents archiving on any sublist. Messages to a list inherit
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
71 the list settings.
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
72
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
73 If an option is unset, it will use the settings of its parent, the
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
74 site defaults, or the application default, based on its type
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
75 (Forum or Discussion).
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
76
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
77
2
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
78 Members
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
79 -------
0
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
80
2
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
81 Preferences:
0
c904249afb04 initial commit of discussions
k0s <k0scist@gmail.com>
parents:
diff changeset
82
1
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
83 Member preferences can also be set from the site level.
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
84
2
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
85
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
86 Digest
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
87 ------
1
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
88
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
89 Different templates can be used to display different digest methods.
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
90 For instance, you could display a brief form of the message with just
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
91 the links:
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
92
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
93 {{{
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
94 Example of .ini configuration:
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
95
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
96 [digest:daily]
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
97 template = /path/to/templates/daily-digest.txt
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
98
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
99 }}}
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
100
79ba50af9443 add more notes
k0s <k0scist@gmail.com>
parents: 0
diff changeset
101 This can be used to facilitate a moderated digest. Roundup emails can
2
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
102 be sent about a discussion written and editted by the moderator.
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
103
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
104
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
105 Hierarchy Example
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
106 -----------------
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
107
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
108 Both Forum and Conversation objects are MessageContainers.
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
109
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
110 /foo
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
111 bar/--message 1
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
112 | |
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
113 | +-reply to message 1
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
114 | | |
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
115 | | \-"..."
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
116 | |
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
117 | \-"..."
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
118 |
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
119 +-message 2
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
120 |
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
121 \-message 3
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
122
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
123 URL for reply posting: /foo/<message id>/reply
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
124 (posts to /foo/<message id> )
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
125
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
126
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
127 Message Objects
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
128 ---------------
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
129
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
130 { 'headers': {},
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
131 'messages': [ list, of, children ],
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
132 'next':
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
133 'previous':
910fa7e781b9 update whitepaper
k0s <k0scist@gmail.com>
parents: 1
diff changeset
134 'parent': }