liquid_feedback_frontend
view db/demodata.lua @ 145:90520c9fca44
implement area filter in timeline
allows the user to ignore any area in the timeline filter.
better display in javascript off
allows the user to ignore any area in the timeline filter.
better display in javascript off
author | Daniel Poelzleithner <poelzi@poelzi.org> |
---|---|
date | Thu Oct 07 00:35:48 2010 +0200 (2010-10-07) |
parents | 3bfb2fcf7ab9 |
children |
line source
1 #!/usr/bin/env lua
3 member_count = 10000
4 area_count = 24
5 issue_count = 1000
6 policy_count = 3 -- do not change
8 function write(...)
9 io.stdout:write(...)
10 end
11 function writeln(...)
12 write(...)
13 write("\n")
14 end
16 math.randomseed(os.time())
18 writeln('BEGIN;')
20 for i = 2, member_count do
21 writeln('INSERT INTO "member" ("login", "name", "ident_number") VALUES (', "'testuser", i, "', 'Benutzer #", i, "', 'TEST", i, "');")
22 end
24 for i = 1, member_count do
25 local is_linked = {}
26 while math.random(4) > 1 do
27 local k = math.random(member_count)
28 if not is_linked[k] then
29 local public = math.random(2) == 1 and "TRUE" or "FALSE"
30 writeln('INSERT INTO "contact" ("member_id", "other_member_id", "public") VALUES (', i, ", ", k, ", ", public, ");")
31 is_linked[k] = true
32 end
33 end
34 end
36 for i = 2, area_count do
37 writeln('INSERT INTO "area" ("name") VALUES (', "'Area #", i, "');")
38 end
40 local memberships = {}
42 for i = 1, area_count do
43 memberships[i] = {}
44 for j = 1, member_count do
45 if math.random(4) == 1 then
46 memberships[i][j] = true
47 local autoreject = math.random(2) == 1 and "TRUE" or "FALSE"
48 writeln('INSERT INTO "membership" ("member_id", "area_id", "autoreject") VALUES (', j, ", ", i, ", ", autoreject, ");")
49 end
50 end
51 end
53 do
54 local issue_initiative_count = {}
55 local initiative_draft_count = {}
56 local initiative_idx = 1
57 local draft_count = 0
58 for i = 1, issue_count do
59 local area = math.random(area_count)
60 writeln('INSERT INTO "issue" ("area_id", "policy_id") VALUES (', area, ", ", math.random(policy_count), ");")
61 issue_initiative_count[i] = 1
62 while math.random(3) > 1 do
63 issue_initiative_count[i] = issue_initiative_count[i] + 1
64 end
65 for j = 1, issue_initiative_count[i] do
66 writeln('INSERT INTO "initiative" ("issue_id", "name") VALUES (', i, ", 'Initiative #", initiative_idx, "');")
67 initiative_draft_count[i] = 1
68 while math.random(4) > 1 do
69 initiative_draft_count[i] = initiative_draft_count[i] + 1
70 end
71 local initiators = {}
72 local is_used = {}
73 repeat
74 local member = math.random(member_count)
75 if not is_used[member] then
76 initiators[#initiators+1] = member
77 is_used[member] = true
78 end
79 until math.random(2) == 1
80 for k = 1, initiative_draft_count[i] do
81 draft_count = draft_count + 1
82 writeln('INSERT INTO "draft" ("initiative_id", "author_id", "content") VALUES (', initiative_idx, ", ", initiators[math.random(#initiators)], ", 'Lorem ipsum... (#", draft_count, ")');")
83 end
84 for k = 1, #initiators do
85 local member = math.random(member_count)
86 writeln('INSERT INTO "initiator" ("member_id", "initiative_id") VALUES (', initiators[k], ", ", initiative_idx, ");")
87 if math.random(50) > 1 then
88 writeln('INSERT INTO "supporter" ("member_id", "initiative_id", "draft_id") VALUES (', initiators[k], ", ", initiative_idx, ", ", draft_count - math.random(initiative_draft_count[i]) + 1, ");")
89 end
90 end
91 local probability = math.random(99) + 1
92 for k = 1, member_count do
93 if not is_used[k] and (memberships[area][k] and math.random(probability) <= 4 or math.random(probability) == 1) then
94 writeln('INSERT INTO "supporter" ("member_id", "initiative_id", "draft_id") VALUES (', k, ", ", initiative_idx, ", ", draft_count - math.random(initiative_draft_count[i]) + 1, ");")
95 end
96 end
97 initiative_idx = initiative_idx + 1
98 end
99 end
100 end
102 writeln('END;')