Commit e76ebbe8 authored by markus scheller's avatar markus scheller

Merge branch '172-dokumentation-ueberarbeiten' into 'master'

Resolve "Dokumentation überarbeiten"

Closes #172

See merge request !11
parents 23b68036 50e1f117
......@@ -26,7 +26,7 @@ from shared import (
date_filter_short, time_filter, time_filter_short, user_manager,
security_manager, current_user, check_login, login_required,
class_filter, needs_date_test, todostate_name_filter,
code_filter, indent_tab_filter)
code_filter, code_key_filter, indent_tab_filter)
from utils import (
get_first_unused_int, get_etherpad_text, split_terms, optional_int_arg,
fancy_join, footnote_hash, get_git_revision, get_max_page_length_exp,
......@@ -110,6 +110,7 @@ app.jinja_env.filters["datify_long"] = date_filter_long
app.jinja_env.filters["class"] = class_filter
app.jinja_env.filters["todo_get_name"] = todostate_name_filter
app.jinja_env.filters["code"] = code_filter
app.jinja_env.filters["code_key"] = code_key_filter
app.jinja_env.filters["indent_tab"] = indent_tab_filter
app.jinja_env.filters["fancy_join"] = fancy_join
app.jinja_env.filters["footnote_hash"] = footnote_hash
......@@ -280,17 +281,115 @@ def index():
protocol=protocol, todos=todos, show_private=show_private,
has_public_view_right=has_public_view_right)
@app.route("/documentation")
@back.anchor
@login_required
def documentation():
todostates = list(TodoState)
name_to_state = TodoState.get_name_to_state()
return render_template(
"documentation.html", todostates=todostates,
name_to_state=name_to_state)
"documentation.html")
@app.route("/documentation/sessionmanagement")
@back.anchor
@login_required
def sessionmanagement_documentation():
return render_template(
"documentation-sessionmanagement.html")
@app.route("/documentation/sessionmanagement/plan")
@back.anchor
@login_required
def plan_sessionmanagement_documentation():
return render_template(
"documentation-sessionmanagement-plan.html")
@app.route("/documentation/sessionmanagement/write")
@back.anchor
@login_required
def write_sessionmanagement_documentation():
return render_template(
"documentation-sessionmanagement-write.html")
@app.route("/documentation/sessionmanagement/tracking")
@back.anchor
@login_required
def tracking_sessionmanagement_documentation():
return render_template(
"documentation-sessionmanagement-tracking.html")
@app.route("/documentation/syntax")
@back.anchor
@login_required
def syntax_documentation():
return render_template(
"documentation-syntax.html")
@app.route("/documentation/syntax/meta")
@back.anchor
@login_required
def meta_syntax_documentation():
return render_template(
"documentation-syntax-meta.html")
@app.route("/documentation/syntax/top")
@back.anchor
@login_required
def top_syntax_documentation():
return render_template(
"documentation-syntax-top.html")
@app.route("/documentation/syntax/lists")
@back.anchor
@login_required
def lists_syntax_documentation():
return render_template("documentation-syntax-lists.html")
@app.route("/documentation/syntax/internal")
@back.anchor
@login_required
def internal_syntax_documentation():
return render_template(
"documentation-syntax-internal.html")
@app.route("/documentation/syntax/tags")
@back.anchor
@login_required
def tags_syntax_documentation():
states = {state:[] for state in list(TodoState)}
name_to_state = TodoState.get_name_to_state()
for state_name in name_to_state:
states[name_to_state[state_name]].append(state_name)
return render_template(
"documentation-syntax-tags.html", states=states)
@app.route("/documentation/configuration")
@back.anchor
@login_required
def configuration_documentation():
return render_template(
"documentation-configuration.html")
@app.route("/documentation/configuration/types")
@back.anchor
@login_required
def types_configuration_documentation():
return render_template(
"documentation-configuration-types.html")
@app.route("/documentation/configuration/todomails")
@back.anchor
@login_required
def todomails_configuration_documentation():
return render_template(
"documentation-configuration-todomails.html")
@app.route("/documentation/configuration/settings")
@back.anchor
@login_required
def settings_configuration_documentation():
user = current_user()
return render_template(
"documentation-configuration-settings.html",
system_administrator=(user is not None and config.ADMIN_GROUP in user.groups))
@app.route("/types/list")
@back.anchor
......
......@@ -128,6 +128,8 @@ def class_filter(obj):
def code_filter(text):
return "<code>{}</code>".format(text)
def code_key_filter(text):
return '<code class="highlight" style="color: inherit;"><span class="kr">{}</span></code>'.format(text)
from common.auth import UserManager, SecurityManager, User
max_duration = getattr(config, "AUTH_MAX_DURATION")
......
.highlight .hll { background-color: #ffffcc }
.highlight { background: #f0f3f3; }
.highlight .c { color: #0099FF; font-style: italic } /* Comment */
.highlight .err { color: #AA0000; background-color: #FFAAAA } /* Error */
.highlight .k { color: #006699; font-weight: bold } /* Keyword */
.highlight .o { color: #555555 } /* Operator */
.highlight .ch { color: #0099FF; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #0099FF; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #009999 } /* Comment.Preproc */
.highlight .cpf { color: #0099FF; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #0099FF; font-style: italic } /* Comment.Single */
.highlight .cs { color: #0099FF; font-weight: bold; font-style: italic } /* Comment.Special */
.highlight .gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #003300; font-weight: bold } /* Generic.Heading */
.highlight .gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */
.highlight .go { color: #AAAAAA } /* Generic.Output */
.highlight .gp { color: #000099; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #003300; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #99CC66 } /* Generic.Traceback */
.highlight .kc { color: #006699; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #006699; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #006699; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #006699 } /* Keyword.Pseudo */
.highlight .kr { color: #006699; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #007788; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #FF6600 } /* Literal.Number */
.highlight .s { color: #CC3300 } /* Literal.String */
.highlight .na { color: #330099 } /* Name.Attribute */
.highlight .nb { color: #336666 } /* Name.Builtin */
.highlight .nc { color: #00AA88; font-weight: bold } /* Name.Class */
.highlight .no { color: #336600 } /* Name.Constant */
.highlight .nd { color: #9999FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #CC0000; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #CC00FF } /* Name.Function */
.highlight .nl { color: #9999FF } /* Name.Label */
.highlight .nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #330099; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #003333 } /* Name.Variable */
.highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #FF6600 } /* Literal.Number.Bin */
.highlight .mf { color: #FF6600 } /* Literal.Number.Float */
.highlight .mh { color: #FF6600 } /* Literal.Number.Hex */
.highlight .mi { color: #FF6600 } /* Literal.Number.Integer */
.highlight .mo { color: #FF6600 } /* Literal.Number.Oct */
.highlight .sa { color: #CC3300 } /* Literal.String.Affix */
.highlight .sb { color: #CC3300 } /* Literal.String.Backtick */
.highlight .sc { color: #CC3300 } /* Literal.String.Char */
.highlight .dl { color: #CC3300 } /* Literal.String.Delimiter */
.highlight .sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #CC3300 } /* Literal.String.Double */
.highlight .se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #CC3300 } /* Literal.String.Heredoc */
.highlight .si { color: #AA0000 } /* Literal.String.Interpol */
.highlight .sx { color: #CC3300 } /* Literal.String.Other */
.highlight .sr { color: #33AAAA } /* Literal.String.Regex */
.highlight .s1 { color: #CC3300 } /* Literal.String.Single */
.highlight .ss { color: #FFCC33 } /* Literal.String.Symbol */
.highlight .bp { color: #336666 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #CC00FF } /* Name.Function.Magic */
.highlight .vc { color: #003333 } /* Name.Variable.Class */
.highlight .vg { color: #003333 } /* Name.Variable.Global */
.highlight .vi { color: #003333 } /* Name.Variable.Instance */
.highlight .vm { color: #003333 } /* Name.Variable.Magic */
.highlight .il { color: #FF6600 } /* Literal.Number.Integer.Long */
{% extends "layout.html" %}
{% block additional_js %}
<link rel="stylesheet" href="{{url_for('static', filename='css/pygments-manni.css')}}" />
{% endblock %}
{% set navigation_bar = [
('sessionmanagement_documentation', '/documentation/sessionmanagement', 'Sitzungsverwaltung', [
('plan_sessionmanagement_documentation', '/documentation/sessionmanagement/plan', 'Planung'),
('write_sessionmanagement_documentation', '/documentation/sessionmanagement/write', 'Protokollieren'),
('tracking_sessionmanagement_documentation', '/documentation/sessionmanagement/tracking', 'Nachverfolgung')
]),
('syntax_documentation', '/documentation/syntax', 'Syntax', [
('meta_syntax_documentation', '/documentation/syntax/meta', 'Metadaten'),
('top_syntax_documentation', '/documentation/syntax/top', 'Tagesordnungspunkte'),
('lists_syntax_documentation', '/documentation/syntax/lists', 'Listen'),
('internal_syntax_documentation', '/documentation/syntax/internal', 'Interne Abschnitte'),
('tags_syntax_documentation', '/documentation/syntax/tags', 'Tags')
]),
('configuration_documentation', '/documentation/configuration', 'Einrichtung', [
('types_configuration_documentation', '/documentation/configuration/types', 'Typen'),
('todomails_configuration_documentation', '/documentation/configuration/todomails', 'Todo Mails'),
('settings_configuration_documentation', '/documentation/configuration/settings', 'Systemeinstellungen')
])
] -%}
{% set active_page = active_page|default('documentation') -%}
{% block content %}
<div class="row">
<div id="left-column", class="col-lg-3">
<nav class="navbar navbar-default" style="border: none; background-color:white">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#documentation-navigation" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/documentation">Dokumentation</a>
</div>
<div class="collapse navbar-collapse" id="documentation-navigation">
<ul class="nav navbar-nav" style="width:100%">
{% for id, url, caption, children in navigation_bar %}
<li{% if id == active_page %} class="active"{% endif %} style="width:100%">
<div class="btn-group" style="width:100%">
<a class="btn btn-{% if id == active_page %}primary{% else %}default{% endif %}{% if children %} col-xs-10{% endif %}" href="{{url|e}}" role="button" style="font-weight: bold; text-align:left; border: none; padding: 10px 15px">{{caption|e}}</a>
{% if children %}
<button class="btn btn-{% if id == active_page %}primary{% else %}default{% endif %} col-xs-2" type="button" data-toggle="collapse" role="button" data-target="#{{id}}-collapse" aria-expanded="true" style="float:right; border:none; padding: 10px 15px">
<span class="caret"></span>
<span class="sr-only">Toggle Dropdown</span>
</button>
{% endif %}
</div>
{% if children %}
<ul class="collapse{% if active_page.endswith(id) %}.in{% endif %} nav nav-pills nav-stacked" id="{{id}}-collapse">
{% for child_id, child_url, child_caption in children %}
<li{% if child_id == active_page %} class="active"{% endif %}>
<a href="{{child_url|e}}" style="padding-left: 30px">{{child_caption|e}}</a>
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</div>
</div>
</nav>
</div>
<div id="right-column", class="col-lg-9">
{% block documentation_content %}
Diese Seite ist leer.
{% endblock %}
</div>
</div>
{% endblock %}
{% extends "documentation-base.html" %}
{% set active_page = "settings_configuration_documentation" %}
{% block title %}Einrichtung: Systemeinstellungen{% endblock %}
{% block documentation_content %}
<h3>Einrichtung: Systemeinstellungen</h3>
<p>
Einige Features des Protokollsystems müssen bei der Installation und Einrichtung durch die <a href="mailto:{{config.ADMIN_MAIL}}">Admins</a> aktiviert werden. Dies ist eine Übersicht über die mit diesen Systemeinstellungen verbundenen Features. Sollten einige der angegeben Funktionalitäten aktiviert werden, so wende dich an die <a href="mailto:{{config.ADMIN_MAIL}}">Admins</a>. Bedenke vor deiner Anfrage, dass einige Features eventuell aus wichtigen Gründen bisher noch nicht aktiviert wurden.
</p>
<table class="table table-striped">
<thead>
<tr>
<th>Feature</th>
<th>Aktiviert</th>
<th>Kurzbeschreibung</th>
</tr>
</thead>
<tbody>
<tr>
<td>E-Mailversand</td>
<td><span class="glyphicon glyphicon-{% if config.MAIL_ACTIVE %}ok{% else %}remove{% endif %}" aria-hidden="true"></span></td>
<td>Das System kann selbstständig E-Mails versenden, um über anstehende Sitzungen, neue Protokolle oder Todos zu informieren.</td>
</tr>
<tr>
<td>Druckeranbindung</td>
<td><span class="glyphicon glyphicon-{% if config.PRINTING_ACTIVE %}ok{% else %}remove{% endif %}" aria-hidden="true"></span></td>
<td>Das System kann Druckaufträge starten, um Beschlüsse oder Protokolle direkt über das Webinterface zu drucken.</td>
</tr>
<tr>
<td>Etherpadanbindung</td>
<td><span class="glyphicon glyphicon-{% if config.ETHERPAD_ACTIVE %}ok{% else %}remove{% endif %}" aria-hidden="true"></span></td>
<td>Das System kann mit einem Etherpad interagieren, um das Schreiben von Protokollen dort zu ermöglichen.</td>
</tr>
<tr>
<td>Wikianbindung</td>
<td><span class="glyphicon glyphicon-{% if config.WIKI_ACTIVE %}ok{% else %}remove{% endif %}" aria-hidden="true"></span></td>
<td>Das System kann veröffentlichte Protokolle in ein Wiki übertragen.</td>
</tr>
<tr>
<td>Kalenderanbindung</td>
<td><span class="glyphicon glyphicon-{% if config.CALENDAR_ACTIVE %}ok{% else %}remove{% endif %}" aria-hidden="true"></span></td>
<td>Das System kann eingetragene Sitzungstermine in einen Kalender übertragen.</td>
</tr>
<tr>
<td>Nutzung interner Abschnitte</td>
<td><span class="glyphicon glyphicon-{% if config.PRIVATE_KEYWORDS %}ok{% else %}remove{% endif %}" aria-hidden="true"></span></td>
<td>Das System bietet die Möglichkeit bestimmte Abschnitte als nicht-öffentlich/intern zu kennzeichnen.</td>
</tr>
<tr>
<td>Angepasste Standardvorlage</td>
<td><span class="glyphicon glyphicon-{% if (config.LATEX_LOCAL_TEMPLATES and config.LATEX_LOGO_TEMPLATE) or config.LATEX_GEOMETRY or config.LATEX_PAGESTYLE or config.LATEX_ADDITIONAL_PACKAGES or config.LATEX_HEADER_FOOTER %}ok{% else %}remove{% endif %}" aria-hidden="true"></span></td>
<td>Das System nutzt die Standardprotokollvorlage in einer angepassten Form - ggf. mit Logo, Kopf-/Fußzeile oder anderen Seitenformaten bzw. -abständen</td>
</tr>
<tr>
<td>Individuelle Protokollvorlagen</td>
<td><span class="glyphicon glyphicon-{% if config.LATEX_LOCAL_TEMPLATES and config.LATEX_TEMPLATES %}ok{% else %}remove{% endif %}" aria-hidden="true"></span></td>
<td>Das System stellt zusätzlich zur Standardvorlage individuelle Protokollvorlagen zur Verfügung, die zuvor erstellt und durch die Administratoren eingespielt wurden.</td>
</tr>
</tbody>
</table>
{% if system_administrator and git_revision %}
<h4>Hinweise für Administratoren</h4>
<p>
Eine Beschreibung der Einrichtung des einzelnen Features kann der Projektseite der Software <a href="{{git_revision.url}}">„Protokollsystem 3“</a> entnommen werden. Bitte lies dir die <code>README.md</code> aufmerksam durch und entnimm bei Bedarf Konfigurationsbeispiele aus <code>config.py.example</code>. Bei schwerwiegenden Problemen kontaktiere die <a href="{{git_revision.url}}/project_members">Entwickler</a>.
</p>
{% endif %}
{% endblock %}
{% extends "documentation-base.html" %}
{% set active_page = "todomails_configuration_documentation" %}
{% block title %}Einrichtung: Todo Mails{% endblock %}
{% block documentation_content %}
<h3>Einrichtung: Todo Mails</h3>
{% if config.MAIL_ACTIVE %}
<p>
Werden im Protokollsystem im Rahmen einer Sitzung Aufgaben verwaltet, so kann eingestellt werden, dass die mit der Aufgabe betrauten Personen eine Benachrichtigung erhalten können. Damit diese Personen eine Benachrichtigung erhalten kann, sollten zu jedem genutzten Personenkürzel eine E-Mailadresse hinterlegt werden. Diese Konfiguration erfolgt zentral auf der Übersicht der <a href="{{url_for('list_todomails')}}">Todo-Mail-Zuordnungen</a>.
</p>
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title"><a data-toggle="collapse" href="#example_todomails_overview">Beispiel - Übersicht Todo-Mail-Zuordnungen</a></h5>
</div>
<div id="example_todomails_overview" class="panel-body panel-collapse collapse">
<h3>Todo-Mail-Zuordnungen <a href="#example_todomails_overview">Neu</a></h3>
<table class="table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Mail</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>mmustermann</td>
<td>mmustermann@domain.example</td>
<td><a href="#example_todomails_overview">Ändern</a>, <a href="#example_todomails_overview" onclick="return confirm('Bist du dir sicher, dass du die Todomailzuordnung mmustermann zu mmustermann@domain.example löschen willst?');">Löschen</a></td>
</tr>
<tr>
<td>kmusterfrau</td>
<td>kmusterfrau@domain.example</td>
<td><a href="#example_todomails_overview">Ändern</a>, <a href="#example_todomails_overview" onclick="return confirm('Bist du dir sicher, dass du die Todomailzuordnung kmusterfrau zu kmusterfrau@domain.example löschen willst?');">Löschen</a></td>
</tr>
</tbody>
</table>
</div>
</div>
<p>
Auf der <a href="{{url_for('list_todomails')}}">Übersicht</a> kann über die Schaltfläche „neu“ eine entsprechende Todo-Mail-Zuordnungen angelegt werden. Bereits bestehende Belegungen können jederzeit angepasst oder gelöscht werden. Beim Anlegen bzw. der Bearbeitung müssen stets das genutzten Personenkürzel (Name) sowie die korresspondierende E-Mailadresse angegeben werden.
</p>
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title"><a data-toggle="collapse" href="#example_new_todomail">Beispiel - Todo-Mail anlegen bzw. bearbeiten</a></h5>
</div>
<div id="example_new_todomail" class="panel-body panel-collapse collapse">
<form role="form" class="">
<div class="form-group ">
<label for="name" class="control-label"><label for="name">Name</label></label>
<input class="form-control" id="name" name="name" placeholder="Name" title="" value="" type="text">
</div>
<div class="form-group ">
<label for="mail" class="control-label"><label for="mail">Mail</label></label>
<input class="form-control" id="mail" name="mail" placeholder="Mail" title="" value="" type="text">
</div>
<button type="button" class="btn btn-default">Ändern</button>
</form>
</div>
</div>
{% else %}
<div class="panel panel-warning">
<div class="panel-heading">
<h5 class="panel-title">Nutzung nicht vorgesehen</h5>
</div>
<div class="panel-body ">
<p>
Das Versenden von E-Mails zu offenen Aufgaben ist hier bisher noch nicht vorgesehen. Um den automatischen E-Mailversand nutzen zu können, wende dich bitte an die <a href="mailto:{{config.ADMIN_MAIL}}">Admins</a> und lasse die <a href="/documentation/configuration/settings">Konfiguration</a> durch sie entsprechend anpassen.
</p>
</div>
</div>
{% endif %}
{% endblock %}
{% extends "documentation-base.html" %}
{% set active_page = "types_configuration_documentation" %}
{% block title %}Einrichtung: Typen{% endblock %}
{% block documentation_content %}
<h3>Einrichtung: Typen</h3>
<p>
Damit Protokolle im Protokollsystem überhaupt <a href="/documentation/sessionmanagement/write">geschrieben</a> und <a href="/documentation/sessionmanagement/plan">Sitzungen verwaltet</a> werden können, ist es unerlässlich entsprechende Protokolltypen anzulegen. Auf der <a href="{{url_for('list_types')}}">Protokolltypen-Übersichtsseite</a> werden die Typen aufgelistet, wobei nur die Typen angezeigt werden, deren Protokolle man sehen darf (weiteres hierzu unter <a href="#rechte">Rechtekonfiguration</a>).
</p>
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title"><a data-toggle="collapse" href="#example_types_overview">Beispiel - Übersicht Protokolltypen</a></h5>
</div>
<div id="example_types_overview" class="panel-body panel-collapse collapse">
<h3>Protokolltypen <a href="#example_types_overview">Neu</a></h3>
<table class="table table-striped">
<thead>
<tr>
<th class="hidden-sm hidden-md hidden-lg">Typ</th>
<th class="hidden-sm hidden-md hidden-lg">Protokoll</th>
<th class="hidden-xs">Typ</th>
<th class="hidden-xs">Name</th>
<th class="hidden-xs">Neuestes Protokoll</th>
<th class="hidden-xs"></th>
</tr>
</thead>
<tbody>
<tr>
<td class="hidden-sm hidden-md hidden-lg"><a href="#example_types_overview">Sitzung (sitzung)</a></td>
<td class="hidden-sm hidden-md hidden-lg"><a href="#example_types_overview">sitzung-18-03-08</a><br><a href="#example_types_overview">Neues Protokoll</a></td>
<td class="hidden-xs"><a href="#example_types_overview">sitzung</a></td>
<td class="hidden-xs">Sitzung</td>
<td class="hidden-xs"><a href="#example_types_overview">sitzung-18-03-08</a></td>
<td class="hidden-xs"><a href="#example_types_overview">Neues Protokoll</a></td>
</tr>
<tr>
<td class="hidden-sm hidden-md hidden-lg"><a href="#example_types_overview">Versammlung (versammlung)</a></td>
<td class="hidden-sm hidden-md hidden-lg"><a href="#example_types_overview">versammlung-18-03-11</a><br><a href="#example_types_overview">Neues Protokoll</a></td>
<td class="hidden-xs"><a href="#example_types_overview">versammlung</a></td>
<td class="hidden-xs">Versammlung</td>
<td class="hidden-xs"><a href="#example_types_overview">versammlung-18-03-11</a></td>
<td class="hidden-xs"><a href="#example_types_overview">Neues Protokoll</a></td>
</tr>
<tr>
<td class="hidden-sm hidden-md hidden-lg"><a href="#example_types_overview">Arbeitsgruppe (arbeitsgruppe)</a></td>
<td class="hidden-sm hidden-md hidden-lg"><a href="#example_types_overview">arbeitsgruppe-18-02-03</a><br><a href="#example_types_overview">Neues Protokoll</a></td>
<td class="hidden-xs"><a href="#example_types_overview">arbeitsgruppe</a></td>
<td class="hidden-xs">Arbeitsgruppe</td>
<td class="hidden-xs"><a href="#example_types_overview">arbeitsgruppe-18-02-03</a></td>
<td class="hidden-xs"><a href="#example_types_overview">Neues Protokoll</a></td>
</tr>
</tbody>
</table>
</div>
</div>
<h4 id="type">Protokolltyp</h4>
<p>
Auf der <a href="{{url_for('list_types')}}">Übersichtsseite</a> kann über die Schaltfläche „neu“ ein entsprechender Protokolltyp angelegt werden. Bereits bestehende Protokolltypen können abhängig von der Berechtigung angepasst werden. Der Protokolltyp beinhaltet Einstellung die vom Protokollsystem stets für diesen Typ verwendet werden. Dazu gehören der Anzeigename und die Abkürzung des Sitzungstyps, die sitzungsabhaltende Organisation, der Standardbeginn der Sitzung sowie die Vorlageneinstellung.
</p>
<p>
Zu beachten ist, dass der Anzeigename des Sitzungstyps nur im Protokolltyp angepasst werden kann und im Protokoll ein Teil der Überschrift ist.
{% if config.WIKI_ACTIVE %}
Je Typ kann angegeben werdem, ob das Protokoll im Status veröffentlicht in das Wiki exportiert werden soll, wobei eien Kategorie anzugeben ist.
{% endif %}
{% if config.PRINTING_ACTIVE %}
Auch kann der Standarddrucker festgelegt werden, der für den Protokolltyp genutzt werden soll.
{% endif %}
{% if config.CALENDAR_ACTIVE %}
Des weiteren kann bei Bedarf der externe Kalender ausgewählt werden, in den die Sitzungstermine des Protokolltyp geschrieben werden sollen.
{% endif %}
{% if config.LATEX_LOCAL_TEMPLATES and config.LATEX_TEMPLATES %}
Es kann pro Protokolltyp eine der konfigurierten Vorlagen ausgewählt werden, die bei der Erstellung der PDF genutzt wird.
{% endif %}
Weitere Einstellungen, auf die im folgenden genauer eingegangen wird, sind:
</p>
<ul>
<li><a href="#rechte">Rechtekonfiguration</a></li>
<li><a href="#access_control">Zugriffskonfiguration</a></li>
{% if config.MAIL_ACTIVE %}
<li><a href="#mails">E-Maileinstellungen</a></li>
{% endif %}
<li><a href="#tops">Standard-TOPs</a></li>
<li><a href="#meta">Metadatenfelder</a></li>
<li><a href="#decision_categories">Beschlusskategorien</a></li>
</ul>
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title"><a data-toggle="collapse" href="#example_new_type">Beispiel - Protokolltyp anlegen</a></h5>
</div>
<div id="example_new_type" class="panel-body panel-collapse collapse">
<form role="form" class="">
<div class="form-group ">
<label for="name" class="control-label"><label for="name">Name</label></label>
<input class="form-control" id="name" name="name" placeholder="Name" title="" value="" type="text">
</div>
<div class="form-group ">
<label for="short_name" class="control-label"><label for="short_name">Abkürzung</label></label>
<input class="form-control" id="short_name" name="short_name" placeholder="Abkürzung" title="" value="" type="text">
</div>
<div class="form-group ">
<label for="organization" class="control-label"><label for="organization">Organisation</label></label>
<input class="form-control" id="organization" name="organization" placeholder="Organisation" title="" value="" type="text">
</div>
<div class="form-group ">
<label for="usual_time" class="control-label"><label for="usual_time">Üblicher Beginn</label></label>
<input class="form-control" id="usual_time" name="usual_time" placeholder="Üblicher Beginn" title="" value="" type="text">
</div>
<div class="checkbox ">
<label>
<input id="is_public" name="is_public" value="y" type="checkbox"> <label for="is_public">Öffentlich sichtbar</label>
</label>
</div>
<div id="is_public-description" style="display:none" class="field-description"></div>
<div class="form-group ">
<label for="publish_group" class="control-label"><label for="publish_group">Verwaltungsgruppe</label></label>
<select class="form-control" id="publish_group" name="publish_group" placeholder="Verwaltungsgruppe" title="">
<option value="">Keine Gruppe</option>
<option value="admin">admin</option>
<option value="fachschaft">fachschaft</option>
</select>
</div>
<div class="form-group ">
<label for="modify_group" class="control-label"><label for="modify_group">Bearbeitungsgruppe</label></label>
<select class="form-control" id="modify_group" name="modify_group" placeholder="Bearbeitungsgruppe" title="">
<option value="">Keine Gruppe</option>
<option value="admin">admin</option>
<option value="fachschaft">fachschaft</option>
</select>
</div>
<div class="form-group ">
<label for="private_group" class="control-label"><label for="private_group">Interne Gruppe</label></label>
<select class="form-control" id="private_group" name="private_group" placeholder="Interne Gruppe" title="">
<option value="">Keine Gruppe</option>
<option value="admin">admin</option>
<option value="fachschaft">fachschaft</option>
</select>
</div>
<div class="form-group ">
<label for="public_group" class="control-label"><label for="public_group">Öffentliche Gruppe</label></label>
<select class="form-control" id="public_group" name="public_group" placeholder="Öffentliche Gruppe" title="">
<option value="">Keine Gruppe</option>
<option value="admin">admin</option>
<option value="fachschaft">fachschaft</option>
</select>
</div>
<div class="checkbox ">
<label>
<input id="non_reproducible_pad_links" name="non_reproducible_pad_links" value="y" type="checkbox"> <label for="non_reproducible_pad_links">nicht nachvollziehbare Etherpad-Links</label>
</label>
</div>
<div id="non_reproducible_pad_links-description" style="display:none" class="field-description"></div>
<div class="form-group ">
<label for="private_mail" class="control-label"><label for="private_mail">Interner Verteiler</label></label>
<input class="form-control" id="private_mail" name="private_mail" placeholder="Interner Verteiler" title="" value="" type="text">
</div>
<div class="form-group ">
<label for="public_mail" class="control-label"><label for="public_mail">Öffentlicher Verteiler</label></label>
<input class="form-control" id="public_mail" name="public_mail" placeholder="Öffentlicher Verteiler" title="" value="" type="text">
</div>
<div class="form-group ">
<label for="wiki_category" class="control-label"><label for="wiki_category">Wiki-Kategorie</label></label>
<input class="form-control" id="wiki_category" name="wiki_category" placeholder="Wiki-Kategorie" title="" value="" type="text">
</div>
<div class="checkbox ">
<label>
<input id="use_wiki" name="use_wiki" value="y" type="checkbox"> <label for="use_wiki">Wiki benutzen</label>
</label>
</div>
<div id="use_wiki-description" style="display:none" class="field-description"></div>
<div class="checkbox ">
<label>
<input id="wiki_only_public" name="wiki_only_public" value="y" type="checkbox"> <label for="wiki_only_public">Wiki ist öffentlich</label>
</label>
</div>
<div id="wiki_only_public-description" style="display:none" class="field-description"></div>
<div class="form-group ">
<label for="printer" class="control-label"><label for="printer">Drucker</label></label>