Merge pull request #1760 from emanuelschuetze/cleanupExtras
Clean up extras directory.
@ -1,25 +0,0 @@
|
|||||||
Benchmark test script für OpenSlides
|
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
usage: bench.py [-h] [-d DELAY] [-j JOBS] [-p PAUSE] [-r REPEAT]
|
|
||||||
[-s {home,projector,agenda,application}]
|
|
||||||
base_url
|
|
||||||
|
|
||||||
|
|
||||||
Optionen:
|
|
||||||
-j JOBS Anzahl der zu startenden Clients
|
|
||||||
|
|
||||||
-d DELAY Pause zwischen dem Start der einzelnen Unterprozesse in ms
|
|
||||||
(negativer Wert: zufällige Wartezeit zwischen 0 und abs($wert)).
|
|
||||||
|
|
||||||
-p PAUSE "Denkpause" zwischen den einzelnen Requests (ms).
|
|
||||||
|
|
||||||
-r REPEAT Anzahl der Wiederholungen der Requests (jeweils pro Unterprozess/Job)
|
|
||||||
|
|
||||||
-s URLSET Angabe der abzufragenden URLs
|
|
||||||
|
|
||||||
Basisurl wird als positional Argument angegeben.
|
|
||||||
|
|
||||||
|
|
||||||
Beispiel:
|
|
||||||
$ python bench.py -j 100 -d 50 -r 100 -s projector http://127.0.0.1:8000
|
|
@ -1,194 +0,0 @@
|
|||||||
import argparse
|
|
||||||
import multiprocessing
|
|
||||||
import random
|
|
||||||
import signal
|
|
||||||
import sys
|
|
||||||
import time
|
|
||||||
import urlparse
|
|
||||||
|
|
||||||
import pycurl
|
|
||||||
|
|
||||||
URL_SETS = {
|
|
||||||
"projector": [
|
|
||||||
dict(
|
|
||||||
path = "/projector/",
|
|
||||||
headers = [
|
|
||||||
"X-Requested-With: XMLHttpRequest",
|
|
||||||
]
|
|
||||||
),
|
|
||||||
],
|
|
||||||
"home": [
|
|
||||||
"/",
|
|
||||||
"/jsi18n/",
|
|
||||||
"/static/styles/base.css",
|
|
||||||
"/static/javascript/utils.js",
|
|
||||||
"/static/javascript/jquery.min.js",
|
|
||||||
"/static/img/logo.png",
|
|
||||||
],
|
|
||||||
"agenda": [
|
|
||||||
"/agenda/",
|
|
||||||
"/static/styles/base.css",
|
|
||||||
"/static/javascript/utils.js",
|
|
||||||
"/static/styles/agenda.css",
|
|
||||||
"/static/javascript/jquery.min.js",
|
|
||||||
"/jsi18n/",
|
|
||||||
],
|
|
||||||
"application": [
|
|
||||||
"/application/",
|
|
||||||
"/static/styles/base.css",
|
|
||||||
"/static/javascript/utils.js",
|
|
||||||
"/static/javascript/jquery.min.js",
|
|
||||||
"/jsi18n/",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def nop_write(data):
|
|
||||||
return len(data)
|
|
||||||
|
|
||||||
class Client(object):
|
|
||||||
def __init__(self):
|
|
||||||
self._c = pycurl.Curl()
|
|
||||||
self._c.setopt(pycurl.FAILONERROR, 1)
|
|
||||||
self._c.setopt(pycurl.FOLLOWLOCATION, 1)
|
|
||||||
self._c.setopt(pycurl.TIMEOUT, 10)
|
|
||||||
self._c.setopt(pycurl.WRITEFUNCTION, nop_write)
|
|
||||||
self._c.setopt(pycurl.AUTOREFERER, 1)
|
|
||||||
|
|
||||||
|
|
||||||
def request(self, r):
|
|
||||||
if isinstance(r, basestring):
|
|
||||||
self._c.setopt(pycurl.URL, r)
|
|
||||||
else:
|
|
||||||
self._c.setopt(pycurl.URL, r["url"])
|
|
||||||
self._c.setopt(pycurl.HTTPHEADER, r["headers"])
|
|
||||||
|
|
||||||
try:
|
|
||||||
self._c.perform()
|
|
||||||
except pycurl.error as e:
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
def request_loop(pause, repeat, urls, should_quit):
|
|
||||||
c = Client()
|
|
||||||
|
|
||||||
requests, errors = 0, 0
|
|
||||||
max_time = 0
|
|
||||||
sum_time = 0
|
|
||||||
|
|
||||||
urls = list(urls)
|
|
||||||
random.shuffle(urls)
|
|
||||||
|
|
||||||
for x in xrange(repeat):
|
|
||||||
if should_quit.value:
|
|
||||||
break
|
|
||||||
if pause:
|
|
||||||
time.sleep(pause)
|
|
||||||
for url in urls:
|
|
||||||
if should_quit.value:
|
|
||||||
break
|
|
||||||
|
|
||||||
requests += 1
|
|
||||||
t0 = time.time()
|
|
||||||
if not c.request(url):
|
|
||||||
errors += 1
|
|
||||||
t1 = time.time()
|
|
||||||
|
|
||||||
dt = t1 - t0
|
|
||||||
sum_time += dt
|
|
||||||
if dt > max_time:
|
|
||||||
max_time = dt
|
|
||||||
|
|
||||||
return requests, errors, max_time, sum_time
|
|
||||||
|
|
||||||
|
|
||||||
def worker(params, should_quit, lock):
|
|
||||||
signal.signal(signal.SIGINT, signal.SIG_IGN)
|
|
||||||
|
|
||||||
opts = params["opts"]
|
|
||||||
|
|
||||||
pause = opts.pause / 1000.0
|
|
||||||
res = request_loop(pause, opts.repeat, params["urls"], should_quit)
|
|
||||||
with lock:
|
|
||||||
params["requests"].value += res[0]
|
|
||||||
params["errors"].value += res[1]
|
|
||||||
params["max_request_time"].value = max((res[2], params["max_request_time"].value))
|
|
||||||
params["sum_request_time"].value += res[3]
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument("-d", "--delay", type = int, default = 100)
|
|
||||||
parser.add_argument("-j", "--jobs", type = int, default = 10)
|
|
||||||
parser.add_argument("-p", "--pause", type = int, default = 500)
|
|
||||||
parser.add_argument("-r", "--repeat", type = int, default = 100)
|
|
||||||
parser.add_argument("-s", "--url-set", choices = list(URL_SETS),
|
|
||||||
default = "projector")
|
|
||||||
parser.add_argument("base_url")
|
|
||||||
|
|
||||||
opts = parser.parse_args()
|
|
||||||
|
|
||||||
base_url = opts.base_url
|
|
||||||
urls = []
|
|
||||||
for u in URL_SETS[opts.url_set]:
|
|
||||||
if isinstance(u, basestring):
|
|
||||||
u = urlparse.urljoin(base_url, u)
|
|
||||||
else:
|
|
||||||
u["url"] = urlparse.urljoin(base_url, u["path"])
|
|
||||||
urls.append(u)
|
|
||||||
|
|
||||||
data = dict(
|
|
||||||
opts = opts,
|
|
||||||
urls = urls,
|
|
||||||
|
|
||||||
requests = multiprocessing.Value("i", 0),
|
|
||||||
errors = multiprocessing.Value("i", 0),
|
|
||||||
max_request_time = multiprocessing.Value("d", 0),
|
|
||||||
sum_request_time = multiprocessing.Value("d", 0),
|
|
||||||
)
|
|
||||||
|
|
||||||
lock = multiprocessing.Lock()
|
|
||||||
quit = multiprocessing.Value("i", 0)
|
|
||||||
|
|
||||||
t0 = time.time()
|
|
||||||
|
|
||||||
workers = []
|
|
||||||
for job in xrange(opts.jobs):
|
|
||||||
p = multiprocessing.Process(target = worker,
|
|
||||||
args = (data, quit, lock))
|
|
||||||
p.daemon = True
|
|
||||||
p.start()
|
|
||||||
workers.append(p)
|
|
||||||
|
|
||||||
# spread out the start of each worker a bit
|
|
||||||
delay = opts.delay
|
|
||||||
if delay != 0:
|
|
||||||
if delay < 0:
|
|
||||||
time.sleep(random.randint(0, -delay) / 1000.0)
|
|
||||||
else:
|
|
||||||
time.sleep(delay / 1000.0)
|
|
||||||
|
|
||||||
try:
|
|
||||||
for p in workers:
|
|
||||||
p.join()
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
quit.value = 1
|
|
||||||
for p in workers:
|
|
||||||
p.join()
|
|
||||||
|
|
||||||
t1 = time.time()
|
|
||||||
|
|
||||||
data["total_time"] = t1 - t0
|
|
||||||
data["avg_request_time"] = data["sum_request_time"].value / data["requests"].value
|
|
||||||
print("Total Requests: {requests.value}\n"
|
|
||||||
"Errors: {errors.value}\n"
|
|
||||||
"Jobs: {opts.jobs}\n"
|
|
||||||
"Time: {total_time:.1f}s\n"
|
|
||||||
"Max time per request: {max_request_time.value:.4f}s\n"
|
|
||||||
"Avg time per request: {avg_request_time:.4f}s\n".format(**data))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
@ -1,11 +0,0 @@
|
|||||||
title,text,duration
|
|
||||||
Begrüßung,Begrüßung durch den Vorstand,5
|
|
||||||
Regularia,,10
|
|
||||||
Grußworte,,15
|
|
||||||
Berichte,,
|
|
||||||
Bericht des Vorstands,Es spricht Herr Dr. Müller,30
|
|
||||||
Pause,,15
|
|
||||||
Anträge,,120
|
|
||||||
Mittagspause,,60
|
|
||||||
Wahlen,,120
|
|
||||||
Sonstiges,,15
|
|
|
@ -1,9 +0,0 @@
|
|||||||
title,text,duration
|
|
||||||
Welcome and Introductions,,10
|
|
||||||
Reports,,
|
|
||||||
Report of executive board,Mr. Smith,30
|
|
||||||
Break,,15
|
|
||||||
Motions,,120
|
|
||||||
Lunch break,,60
|
|
||||||
Elections,,120
|
|
||||||
Miscellaneous,,15
|
|
|
@ -1,16 +0,0 @@
|
|||||||
identifier,title,text,reason,submitter,category
|
|
||||||
1,Entlastung des Vorstandes,"Die Versammlung möge beschließen, den Vorstand für seine letzte Legislaturperiode zu entlasten.",Bericht erfolgt mündlich.,Vorstand,
|
|
||||||
SA 1,Satzungsänderung § 2 Abs. 3,"<p>Die Versammlung möge beschließen, die Satzung in § 2 Abs. 3 wie folgt zu ändern:</p>
|
|
||||||
<p>Es wird vor dem Wort ""Zweck"" das Wort ""gemeinnütziger"" eingefügt.</p>","Die Änderung der Satzung ist aufgrund der letzten Erfahrungen eine sinnvolle Maßnahme, weil ...",Harry Holland,Satzungsanträge
|
|
||||||
SA 2,Einführung von elektronischen Abstimmungen mit OpenSlides,"Die Versammlung möge beschließen, die Satzung so zu ändern, dass öffentliche Abstimmungen künftig elektronisch mit OpenSlides durchgeführt werden können.","Elektronische Abstimmungen beschleunigen den Ablauf. OpenSlides wird bereits bei uns eingesetzt und bietet ein zusätzliches Plugin, um mit Keypads für jeden Teilnehmer elektronisch abzustimmen. Die Ergebnisse werden direkt in OpenSlides gespeichert. Details gibts über den professional Support auf http://openslides.org.",Dr. Max Mustermann,Satzungsanträge
|
|
||||||
B 1,Bildungspolitik 1 (HTML),"<p><b>Lorem ipsum</b> dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim.</p>
|
|
||||||
<p>Ende.</p>","<p>Nam eget dui.</p>
|
|
||||||
<ol><li>Etiam rhoncus.</li><li>Maecenas tempus</li><li>tellus eget condimentum rhoncus</li></ol>
|
|
||||||
<p>Sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna.</p>",Gipsz Jakab,Bildung
|
|
||||||
B 2,Bildungspolitik 2 (Plain),"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus.","Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.",Fred Nurk,Bildung
|
|
||||||
N 1,OpenSlides für alle,"Sed ut perspiciatis <b>unde omnis iste natus</b> error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.",www.openslides.org,John Doe,Netzpolitik
|
|
||||||
W 1,Antrag zur Wirtschaftspolitik,"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus.","But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?",Mario Rossi,Wirtschaft
|
|
||||||
W 2,Finanzen,"Li Europan lingues es membres del sam familie. Lor separat existentie es un myth. Por scientie, musica, sport etc, litot Europa usa li sam vocabular. Li lingues differe solmen in li grammatica, li pronunciation e li plu commun vocabules. Omnicos directe al desirabilite de un nov lingua franca: On refusa continuar payar custosi traductores.",,Otto Normalverbraucher,Wirtschaft
|
|
||||||
,Soziale Fragen,"The quick, brown fox jumps over a lazy dog. DJs flock by when MTV ax quiz prog. Junk MTV quiz graced by fox whelps. Bawds jog, flick quartz, vex nymphs. Waltz, bad nymph, for quick jigs vex! Fox nymphs grab quick-jived waltz. Brick quiz whangs jumpy veldt fox. Bright vixens jump; dozy fowl quack.",,Otto Normalverbraucher,Soziales
|
|
||||||
,Umweltpolitischer Leitantrag,"Li Europan lingues es membres del sam familie. Lor separat existentie es un myth. Por scientie, musica, sport etc, litot Europa usa li sam vocabular. Li lingues differe solmen in li grammatica, li pronunciation e li plu commun vocabules. Omnicos directe al desirabilite de un nov lingua franca: On refusa continuar payar custosi traductores.","Por scientie, musica, sport etc, litot Europa usa li sam vocabular. Li lingues differe solmen in li grammatica, li pro.",Harry Holland,Umwelt
|
|
||||||
B 3,Bildung stärken,"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu.",,Morten Meinigmand,Bildung
|
|
|
@ -1,16 +0,0 @@
|
|||||||
identifier,title,text,reason,submitter,category
|
|
||||||
1,Discharge of the Executive Board,The assembly may decide: discharge the Executive Board.,Report will be oral.,Executive board,
|
|
||||||
SA 1,Statutory change § 2 Abs. 3,"The assembly may decide: change statue § 2, 3 as follows: It is inserted the word ""profit"" before the word ""purpose"".","
|
|
||||||
The changes of the articles is based on the last experience a meaningful measure because ...",Harry Holland,Statute
|
|
||||||
SA 2,Introduction of electronic voting OpenSlides,The Assembly may decide to amend the statute so that public votings can be conducted electronically with OpenSlides.,Electronic votings increase the speed of meetings. OpenSlides is already used by us and offers an additional plugin to vote electronically with keypads for each participant. The results are stored directly in OpenSlides. See details about the professional support to http://openslides.org.,Dr. Max Mustermann,Statute
|
|
||||||
B 1,Educational policy 1 (HTML),"<p><b>Lorem ipsum</b> dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim.</p>
|
|
||||||
<p>End.</p>","<p>Nam eget dui.</p>
|
|
||||||
<ol><li>Etiam rhoncus.</li><li>Maecenas tempus</li><li>tellus eget condimentum rhoncus</li></ol>
|
|
||||||
<p>Sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna.</p>",Gipsz Jakab,Education
|
|
||||||
B 2,Educational policy 2 (Plain),"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus.","Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.",Fred Nurk,Education
|
|
||||||
N 1,OpenSlides for everyone,"Sed ut perspiciatis <b>unde omnis iste natus</b> error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.",www.openslides.org,John Doe,Network policy
|
|
||||||
W 1,Motion about economic policy,"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus.","But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?",Mario Rossi,Economy
|
|
||||||
W 2,Finances,"Li Europan lingues es membres del sam familie. Lor separat existentie es un myth. Por scientie, musica, sport etc, litot Europa usa li sam vocabular. Li lingues differe solmen in li grammatica, li pronunciation e li plu commun vocabules. Omnicos directe al desirabilite de un nov lingua franca: On refusa continuar payar custosi traductores.",,Otto Normalverbraucher,Economy
|
|
||||||
,Social issues,"The quick, brown fox jumps over a lazy dog. DJs flock by when MTV ax quiz prog. Junk MTV quiz graced by fox whelps. Bawds jog, flick quartz, vex nymphs. Waltz, bad nymph, for quick jigs vex! Fox nymphs grab quick-jived waltz. Brick quiz whangs jumpy veldt fox. Bright vixens jump; dozy fowl quack.",,Otto Normalverbraucher,Social
|
|
||||||
,Environmental executive report ,"Li Europan lingues es membres del sam familie. Lor separat existentie es un myth. Por scientie, musica, sport etc, litot Europa usa li sam vocabular. Li lingues differe solmen in li grammatica, li pronunciation e li plu commun vocabules. Omnicos directe al desirabilite de un nov lingua franca: On refusa continuar payar custosi traductores.","Por scientie, musica, sport etc, litot Europa usa li sam vocabular. Li lingues differe solmen in li grammatica, li pro.",Harry Holland,Environment
|
|
||||||
B 3,Strengthen education,"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu.",,Morten Meinigmand,Education
|
|
|
@ -1,44 +0,0 @@
|
|||||||
title,first_name,last_name,structure_level,groups,comment,is_active
|
|
||||||
,Fred,Nurk,Australien,3,,1
|
|
||||||
,Jan,Jansen,Belgien,3,,1
|
|
||||||
,Juan,Pérez,Chile,3,,1
|
|
||||||
Dr.,Max,Mustermann,Deutschland,4,"Demo-Account
|
|
||||||
|
|
||||||
Teilnehmer/innen-Namen aus
|
|
||||||
http://de.wikipedia.org/wiki/Otto_Normalverbraucher",1
|
|
||||||
,Otto,Normalverbraucher,Deutschland,3,Demo-Account,1
|
|
||||||
,Erika,Mustermann,Deutschland,,,0
|
|
||||||
,Morten,Meinigmand,Dänemark,3,,1
|
|
||||||
,Juan,Piguabe,Ecuador,3,,1
|
|
||||||
,Tädi,Maali,Estland,3,,1
|
|
||||||
,Maija,Maikäläinen,Finnland,3,,1
|
|
||||||
,Jean,Dupont,Frankreich,3,,1
|
|
||||||
,Paul,Martin,Frankreich,"3,4",,1
|
|
||||||
,Fred,Bloggs,Großbritanien,3,,0
|
|
||||||
,John,Smith,Großbritanien,4,,1
|
|
||||||
,Ashok,Kumar,Indien,3,,1
|
|
||||||
,Si,Polan,Indonesien,,,1
|
|
||||||
,Seán,Citizen,Irland,3,,1
|
|
||||||
,Jóna,Jónsson,Island,3,,1
|
|
||||||
,Israel,Israeli,Israel,3,,1
|
|
||||||
,Mario,Rossi,Italien,3,,1
|
|
||||||
,Jos,Bleau,Kanada,3,,1
|
|
||||||
,Fulano,de Tal,Kolumbien,3,,1
|
|
||||||
,Jenni,a Menni,Luxemburg,3,,1
|
|
||||||
,Joe,Borg,Malta,3,,1
|
|
||||||
,Bob,Smith,Neuseeland,,,1
|
|
||||||
,Harry,Holland,Niederlande,3,,1
|
|
||||||
Prof.,Hans,Maier,Österreich,3,,1
|
|
||||||
,Jan,Kowalski,Polen,3,,1
|
|
||||||
,Manuel,Dos Santos,Portugal,3,,1
|
|
||||||
,Cutare,Cutărică,Rumänien,3,,1
|
|
||||||
,Nils,Holgersson,Schweden,3,,1
|
|
||||||
,Max,Schweizer,Schweiz,,,1
|
|
||||||
,Janez,Novak,Slowenien,3,,1
|
|
||||||
,Koos,van der Merwe,Südafrika,3,,1
|
|
||||||
,Jan,Novák,Tschechien,3,,1
|
|
||||||
,Sade,Vatandaş,Türkei,3,,1
|
|
||||||
,Gipsz,Jakab,Ungarn,3,,1
|
|
||||||
,John,Doe,USA,3,,1
|
|
||||||
,Jane,Doe,USA,,,0
|
|
||||||
,Nguoi,La,Vietnam,3,,0
|
|
|
@ -1,43 +0,0 @@
|
|||||||
title,first_name,last_name,structure_level,groups,comment,is_active
|
|
||||||
,Fred,Nurk,Australia,3,,1
|
|
||||||
,Jan,Jansen,Belgium,3,,1
|
|
||||||
,Juan,Pérez,Chile,3,,1
|
|
||||||
Dr.,Max,Mustermann,Germany,4,"Demo account
|
|
||||||
|
|
||||||
Names from http:///en.wikipedia.org/wiki/Otto_Normalverbraucher",1
|
|
||||||
,Otto,Normalverbraucher,Germany,3,Demo account,1
|
|
||||||
,Erika,Mustermann,Germany,,,0
|
|
||||||
,Morten,Meinigmand,Denmark,3,,1
|
|
||||||
,Juan,Piguabe,Ecuador,3,,1
|
|
||||||
,Tädi,Maali,Estonia,3,,1
|
|
||||||
,Maija,Maikäläinen,Finland,3,,1
|
|
||||||
,Jean,Dupont,France,3,,1
|
|
||||||
,Paul,Martin,France,4,,1
|
|
||||||
,Fred,Bloggs,United Kingdom,3,,0
|
|
||||||
,John,Smith,United Kingdom,4,,1
|
|
||||||
,Ashok,Kumar,India,3,,1
|
|
||||||
,Si,Polan,Indonesia,,,1
|
|
||||||
,Seán,Citizen,Ireland,3,,1
|
|
||||||
,Jóna,Jónsson,Ireland,3,,1
|
|
||||||
,Israel,Israeli,Israel,3,,1
|
|
||||||
,Mario,Rossi,Italy,3,,1
|
|
||||||
,Jos,Bleau,Canada,3,,1
|
|
||||||
,Fulano,de Tal,Colombia,3,,1
|
|
||||||
,Jenni,a Menni,Luxembourg,3,,1
|
|
||||||
,Joe,Borg,Malta,3,,1
|
|
||||||
,Bob,Smith,New Zealand,,,1
|
|
||||||
,Harry,Holland,Netherlands,3,,1
|
|
||||||
Prof.,Hans,Maier,Austria,3,,1
|
|
||||||
,Jan,Kowalski,Poland,3,,1
|
|
||||||
,Manuel,Dos Santos,Portugal,3,,1
|
|
||||||
,Cutare,Cutărică,Rumania,3,,1
|
|
||||||
,Nils,Holgersson,Sweden,3,,1
|
|
||||||
,Max,Schweizer,Switzerland,,,1
|
|
||||||
,Janez,Novak,Slovenia,3,,1
|
|
||||||
,Koos,van der Merwe,South Africa,3,,1
|
|
||||||
,Jan,Novák,Czech Republic,3,,1
|
|
||||||
,Sade,Vatandaş,Turkey,3,,1
|
|
||||||
,Gipsz,Jakab,Hungary,3,,1
|
|
||||||
,John,Doe,USA,3,,1
|
|
||||||
,Jane,Doe,USA,,,0
|
|
||||||
,Nguoi,La,Vietnam,3,,0
|
|
|
@ -1,39 +0,0 @@
|
|||||||
import sys
|
|
||||||
import csv
|
|
||||||
import argparse
|
|
||||||
|
|
||||||
# Import the openslide settings. Has has to be done before any other openslides
|
|
||||||
# import.
|
|
||||||
from openslides.main import get_user_config_path, setup_django_environment
|
|
||||||
setup_django_environment(
|
|
||||||
get_user_config_path('openslides', 'settings.py'))
|
|
||||||
|
|
||||||
from openslides.agenda.models import Speaker
|
|
||||||
|
|
||||||
|
|
||||||
def parse_args():
|
|
||||||
parser = argparse.ArgumentParser(add_help=True)
|
|
||||||
parser.add_argument('-o', '--output', metavar= 'File', help='Save the output to FILE')
|
|
||||||
return parser.parse_args()
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
args = parse_args()
|
|
||||||
|
|
||||||
if args.output is None:
|
|
||||||
output = sys.stdout
|
|
||||||
else:
|
|
||||||
output = open(args.output, 'wb')
|
|
||||||
|
|
||||||
csv_writer = csv.writer(output)
|
|
||||||
csv_writer.writerow(['Item', 'Person-Name', 'Time'])
|
|
||||||
for speaker in Speaker.objects.all().order_by('item', 'weight', 'time'):
|
|
||||||
try:
|
|
||||||
time = speaker.time.strftime('%d.%m.%Y %H:%M:%S')
|
|
||||||
except AttributeError:
|
|
||||||
time = None
|
|
||||||
csv_writer.writerow([
|
|
||||||
speaker.item.title, unicode(speaker.person).encode('utf8'), time])
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
@ -1,63 +0,0 @@
|
|||||||
from random import randint, choice
|
|
||||||
|
|
||||||
# Import the openslide settings. Has has to be done before any other openslides
|
|
||||||
# import.
|
|
||||||
from openslides.main import get_user_config_path, setup_django_environment
|
|
||||||
setup_django_environment(
|
|
||||||
get_user_config_path('openslides', 'settings.py'))
|
|
||||||
|
|
||||||
from openslides.participant.api import gen_username
|
|
||||||
from openslides.participant.models import User
|
|
||||||
|
|
||||||
# From jinja2
|
|
||||||
LOREM_IPSUM_WORDS = u'''\
|
|
||||||
a ac accumsan ad adipiscing aenean aliquam aliquet amet ante aptent arcu at
|
|
||||||
auctor augue bibendum blandit class commodo condimentum congue consectetuer
|
|
||||||
consequat conubia convallis cras cubilia cum curabitur curae cursus dapibus
|
|
||||||
diam dictum dictumst dignissim dis dolor donec dui duis egestas eget eleifend
|
|
||||||
elementum elit enim erat eros est et etiam eu euismod facilisi facilisis fames
|
|
||||||
faucibus felis fermentum feugiat fringilla fusce gravida habitant habitasse hac
|
|
||||||
hendrerit hymenaeos iaculis id imperdiet in inceptos integer interdum ipsum
|
|
||||||
justo lacinia lacus laoreet lectus leo libero ligula litora lobortis lorem
|
|
||||||
luctus maecenas magna magnis malesuada massa mattis mauris metus mi molestie
|
|
||||||
mollis montes morbi mus nam nascetur natoque nec neque netus nibh nisi nisl non
|
|
||||||
nonummy nostra nulla nullam nunc odio orci ornare parturient pede pellentesque
|
|
||||||
penatibus per pharetra phasellus placerat platea porta porttitor posuere
|
|
||||||
potenti praesent pretium primis proin pulvinar purus quam quis quisque rhoncus
|
|
||||||
ridiculus risus rutrum sagittis sapien scelerisque sed sem semper senectus sit
|
|
||||||
sociis sociosqu sodales sollicitudin suscipit suspendisse taciti tellus tempor
|
|
||||||
tempus tincidunt torquent tortor tristique turpis ullamcorper ultrices
|
|
||||||
ultricies urna ut varius vehicula vel velit venenatis vestibulum vitae vivamus
|
|
||||||
viverra volutpat vulputate'''
|
|
||||||
|
|
||||||
WORDS = LOREM_IPSUM_WORDS.split(' ')
|
|
||||||
NAME_WORDS = [w for w in WORDS if not '\n' in w]
|
|
||||||
|
|
||||||
|
|
||||||
def create_names(count, func=lambda: choice(NAME_WORDS)):
|
|
||||||
"""Yields a bunch of unique names"""
|
|
||||||
used = []
|
|
||||||
for _ in xrange(count + 1):
|
|
||||||
name = func()
|
|
||||||
while name in used:
|
|
||||||
# use some random...
|
|
||||||
name = '%s%d' % (name, randint(1, count))
|
|
||||||
used.append(name)
|
|
||||||
yield name
|
|
||||||
|
|
||||||
def random_user(names):
|
|
||||||
first_name = names.next()
|
|
||||||
last_name = names.next()
|
|
||||||
return User(first_name=first_name, last_name=last_name,
|
|
||||||
username=gen_username(first_name, last_name))
|
|
||||||
|
|
||||||
|
|
||||||
def make_testdata(app=None):
|
|
||||||
if app == 'participant' or app is None:
|
|
||||||
user_count = 100
|
|
||||||
names_generator = create_names(user_count * 2)
|
|
||||||
[random_user(names_generator).save() for i in xrange(user_count)]
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
make_testdata()
|
|
Before Width: | Height: | Size: 581 B After Width: | Height: | Size: 581 B |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 136 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 136 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |