liquid_feedback_frontend
view db/demodata.lua @ 156:74f1d4abf19e
fix that bailout can not be seen after the vote
linkify title
linkify title
| author | Daniel Poelzleithner <poelzi@poelzi.org> | 
|---|---|
| date | Fri Oct 08 20:06:23 2010 +0200 (2010-10-08) | 
| 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;')
