forked from karlproject/karl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CONTENT_FEEDS_TODO.txt
134 lines (75 loc) · 3.74 KB
/
CONTENT_FEEDS_TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
Content Feeds TODOs
===================
Vertical stripe
---------------
- [X] Prototype main feed view for review with Nat, Jason.
- [X} Implement primary feed store as conflict-resolving, append-only
stack.
- [X] Extend the stack with a utility lookup for pruned layers.
- [X] Move the appendstack functionality out into a separate package,
to allow installing it on the ZEO server (conflict resoultion code
has to be importable server side).
- [X] Ensure that tagging operations emit events required to generate
event-stream records for 'tagged' / 'untagged' operations.
- [X] Ensure that membership operations emit events required to generate
event-stream records for 'joined' / 'left' operations.
- [X] Work out computation of the ACL for event stream records.
- [X] Wire up event listener for 'joined' operation.
- [X] Wire up event listener for 'left' operation.
- [X} Implement the persistent site events object, using the `AppendStack`
class.
- [X] Write the ACL-based filter over the stack.
- [X] Update `bin/start_over` to add the `events` object to the root.
- [X] Wire the ACL-filtered events into the main view.
After vertical stripe
---------------------
- [X] Fix the profile thumbnail URL issue.
* Create a good-everywhere view which redirects to the correct image.
- [X] Wire up event listener for 'added' operation.
- [X] Wire up event listener for 'edited' operation.
- [X] Wire up event listener for 'tagged' operation.
- [X] Implement 'flavor' computation for all event listeners.
- [X] Implement 'elapsed' lookups for all relevant event listeners.
- [X] Wire the ACL-filtered events into the JSON update view.
- [X] Extend the prototype to query a dummy JSON-emitting view for
updates. (Paul, Carlos)
- [X] Implement 'tags' lookups for all relevant event listeners.
- [X] Implement 'commentcount' lookups for all relevant event listeners.
- [X] Add an evolve step to add the `events` object to the root.
Before demo
-----------
- [X] Verify that all expected operations yield correct contentfeed
entries.
* Editing a community did not show up on feed: the view didn't
set ``modified_by`` on the community.
* Tagging re-emitted events for existing tags.
After demo
----------
- [X] Add "my communities" view (filter out "group:KarlStaff")?
- [X] Add "my content" view (only content modified / created by user)?
- [X] Wire up filter buttons
- [X} Make events work for content outside any community (especially profiles).
- [_] Update nascent "user guide" docs to document all the event listeners
and any other policies, as part of getting ready for review.
- [_] Get client-side to trim bottom of list
- [_] Consider getting client-side to use the full description
- [_] The label "added" "a event" is wrong grammar, should be "an event".
Someday, maybe
--------------
- [/] Add feeds view for a single community.
o Needs better integration with community layout.
o Should it filter out events for content outside the community,
but visible to its members? E.g., members' profile edits.
o Needs to be surfaced in UI of community.
- [/] Add feeds view for a profile.
o Needs to be surfaced in UI of profile.
- [_] Add microblogging via profile feeds view.
- [_] Add microblogging bookmarklet.
- [_] Wire up the archive utiltiy to do something sensible:
o Write out JSON to disk for the pruned layer?
o Convert the pruned layer into a persistent object and
store in a BTree / linked list? Likely to conflict.
- [_] Add admin UI for tweaking the max layers / max length of the
underlying `AppendStack`.
o Could also show generations, first / last timestamps for archived
layers, if accessible.