From e041e77a1acef6101cc46f8616b37a80e26e138c Mon Sep 17 00:00:00 2001 From: Sebastian Lobinger <sebastian.lobinger@fu-berlin.de> Date: Tue, 6 Jun 2017 14:19:50 +0200 Subject: [PATCH] add SAMSApp documentation to README.md #16 --- README.md | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 99 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 68f3194..e2a5a3e 100644 --- a/README.md +++ b/README.md @@ -84,8 +84,105 @@ gezogen werden. ### SAMSApp -**TODO** +#### Methoden + +##### Konstruktor + +Minimalistischste App: +```python +app = SAMSApp(name = 'appname', manifest = {'default_language': 'en'} + , langDict = {'en':{}}) +``` +Eine SAMSApp benötigt name (name des python packages oder moduls der app), +langDict und manifest. Das Dictionary vom manifest muss eine default_language +definieren, die im langDict enthalten ist. +Eine derart definierte App beinhaltet keine views und keinen Proxy, macht also +relativ wenig Sinn. +In der Regel wird eine SAMSApp eher so aussehen: +```python +app = SAMSApp( + manifest = { + 'default_language': 'en', + 'views': [{'url': 'test/do_nothing', 'function': 'views.do_nothing'}], + 'menu':[ + {'url': '', + 'name_string': menu_main}, + {'url': 'topic', 'name_string': 'menu_topic', + 'menu':[ + {'url': 'topic/subtopic01', + 'name_string': 'menu_topic_subtopic01'}, + {'url': 'topic/subtopic02', + 'name_string': 'menu_topic_subtopic02'} + ] + } + ] + }, name = 'test.app', + langDict={'en': {'menu_main': 'Home', 'menu_topic': 'Topic', + 'menu_topic_subtopic01': 'Subtopic 01', + 'menu_topic_subtopic02': 'Subtopic 02'}, + 'de':{'menu_main': 'Startseite'} + } +) +``` + +##### lang + +```python +langDict = app.lang(langCode = 'de') +``` + +Gibt ein Dictionary für die angeforderte Sprache zurück. Sind Einträge im default +dictionary und nicht in der Angeforderten Sprache vorhanden, werden diese verwendet. + +##### menu + +```python +# mandatory +menuEntries = SAMSApp.menu(langCode = 'de') +# optional +menuEntries = SAMSApp.menu(langCode = 'de', urlPrefix = '/app/') +``` +Gibt eine Liste von Menüeinträgen zurück. Jeder Eintrag ist ein Dictionary. +Dieses Dictionary enthält immer 'url' und 'name' und kann außerdem wieder +über 'menu' ein Menü enthalten. Der Anzeigename ('name') ist entweder der zu +langCode passende oder der, der defaultSprache. + +#### Eigenschaften + +##### module + +Das zur App gehörende python Modul. Führt zu einer Exception falls das +Modul nicht geladen werden kann, + +##### name + +Der Name der app. + +##### blueprint + +Das flask Blueprint der app. + +##### manifest + +Das manifest Dictionary. Hier wird folgendes festgelegt: + +- Standardsprache über ```default_language``` +- Menüeinträge über ```menu``` +- URL View regeln über ```views``` +- proxies + +Die Menüeinträge bestehen jeweils aus einem Eintrag 'url' und dem 'name_string' +Die zeichenkette in 'name_string' wird über einen Eintrag im langDict aufgelöst. + +Eine View besteht aus 'url' und dem Namen der function in 'function'. + +Die ist eine Liste von Proxy definitionen. Die Proxydefinition wird als proxySpec +für SAMSProxy verwendet. + +##### proxies + +Eine Liste an SAMSProxy Objekten erzeugt aus den Spezifikationen im Manifest. -### SAMSProxy +### SAMProxy **TODO** \ No newline at end of file -- GitLab