Commit 104cb90c authored by Robin Sonnabend's avatar Robin Sonnabend
Browse files

only show and do things currently activated

parent 1daed4c5
......@@ -148,7 +148,7 @@ def show_type(type_id):
protocoltype_table = ProtocolTypeTable(protocoltype)
default_tops_table = DefaultTOPsTable(protocoltype.default_tops, protocoltype)
reminders_table = MeetingRemindersTable(protocoltype.reminders, protocoltype)
return render_template("type-show.html", protocoltype=protocoltype, protocoltype_table=protocoltype_table, default_tops_table=default_tops_table, reminders_table=reminders_table)
return render_template("type-show.html", protocoltype=protocoltype, protocoltype_table=protocoltype_table, default_tops_table=default_tops_table, reminders_table=reminders_table, mail_active=config.MAIL_ACTIVE)
@app.route("/type/reminders/new/<int:type_id>", methods=["GET", "POST"])
@login_required
......@@ -455,6 +455,9 @@ def etherpull_protocol(protocol_id):
if protocol is None or not protocol.protocoltype.has_modify_right(user):
flash("Invalides Protokoll oder keine Berechtigung.", "alert-error")
return redirect(request.args.get("next") or url_for("index"))
if not config.ETHERPAD_ACTIVE:
flash("Die Etherpadfunktion ist nicht aktiviert.", "alert-error")
return redirect(request.args.get("next") or url_for("show_protocol", protocol_id=protocol_id))
protocol.source = get_etherpad_text(protocol.get_identifier())
db.session.commit()
tasks.parse_protocol(protocol)
......@@ -576,6 +579,9 @@ def etherpush_protocol(protocol_id):
if protocol is None or not protocol.protocoltype.has_modify_right(user):
flash("Invalides Protokoll oder keine Berechtigung.", "alert-error")
return redirect(request.args.get("next") or url_for("index"))
if not config.ETHERPAD_ACTIVE:
flash("Die Etherpadfunktion ist nicht aktiviert.", "alert-error")
return redirect(request.args.get("next") or url_for("show_protocol", protocol_id=protocol_id))
if set_etherpad_text(protocol.get_identifier(), protocol.get_template()):
flash("Vorlage von {} in Etherpad hochgeladen.".format(protocol.get_identifier()), "alert-success")
else:
......@@ -606,6 +612,9 @@ def send_protocol(protocol_id):
if protocol is None or not protocol.protocoltype.has_modify_right(user):
flash("Invalides Protokoll oder keine Berechtigung.", "alert-error")
return redirect(request.args.get("next") or url_for("index"))
if not config.MAIL_ACTIVE:
flash("Die Mailfunktion ist nicht aktiviert.", "alert-error")
return redirect(request.args.get("next") or url_for("show_protocol", protocol_id=protocol_id))
tasks.send_protocol(protocol)
flash("Das Protokoll wurde versandt.", "alert-success")
return redirect(request.args.get("next") or url_for("show_protocol", protocol_id=protocol.id))
......@@ -926,6 +935,9 @@ def print_document(document_id):
if document is None or not document.protocol.protocoltype.has_modify_right(user):
flash("Invalides Protokoll oder keine Berechtigung.", "alert-error")
return redirect(request.args.get("next") or url_for("index"))
if not config.PRINTING_ACTIVE:
flash("Die Druckfunktion ist nicht aktiviert.", "alert-error")
return redirect(request.args.get("next") or url_for("show_protocol", protocol_id=document.protocol.id))
tasks.print_file(document.get_filename(), document.protocol)
flash("Das Dokument {} wird gedruckt.".format(document.name), "alert-success")
return redirect(request.args.get("next") or url_for("show_protocol", protocol_id=document.protocol.id))
......@@ -993,6 +1005,8 @@ def logout():
return redirect(url_for(".index"))
def check_and_send_reminders():
if not config.MAIL_ACTIVE:
return
with app.app_context():
current_time = datetime.now()
current_day = current_time.date()
......
......@@ -12,19 +12,30 @@
<div class="container">
<div class="btn-group">
{% if has_modify_right %}
{% if config.ETHERPAD_ACTIVE %}
<a class="btn {% if protocol.source is none %}btn-primary{% else %}btn-default{% endif %}" href="{{url_for("etherpull_protocol", protocol_id=protocol.id)}}">Aus Etherpad</a>
{% endif %}
{% if protocol.source is not none %}
<a class="btn btn-primary" href="{{url_for("get_protocol_source", protocol_id=protocol.id)}}">Download Quelltext</a>
<a class="btn btn-primary" href="{{url_for("get_protocol_source", protocol_id=protocol.id)}}">Quelltext</a>
{% endif %}
<a class="btn {% if protocol.is_done() %}btn-success{% else %}btn-default{% endif %}" href="{{url_for("update_protocol", protocol_id=protocol.id)}}">Protokoll editieren</a>
<a class="btn {% if protocol.is_done() %}btn-success{% else %}btn-default{% endif %}" href="{{url_for("update_protocol", protocol_id=protocol.id)}}">Editieren</a>
{% if not protocol.is_done() %}
<a class="btn btn-default" href="{{url_for("get_protocol_template", protocol_id=protocol.id)}}">Vorlage</a>
{% if config.ETHERPAD_ACTIVE %}
<a class="btn btn-primary" href="{{url_for("etherpush_protocol", protocol_id=protocol.id)}}">In Etherpad</a>
{% endif %}
{% else %}
<a class="btn btn-default" href="{{url_for("send_protocol", protocol_id=protocol.id)}}">Per Mail versenden</a>
{% if config.MAIL_ACTIVE %}
<a class="btn btn-default" href="{{url_for("send_protocol", protocol_id=protocol.id)}}">Mail versenden</a>
{% endif %}
{% endif %}
{% if config.ETHERPAD_ACTIVE %}
<a class="btn btn-default" href="{{protocol.get_etherpad_link()}}" target="_blank">Etherpad</a>
{% endif %}
<a class="btn btn-default" href="{{url_for("show_type", type_id=protocol.protocoltype.id)}}">Typ</a>
{% if protocol.has_compiled_document() %}
<a class="btn btn-success" href="{{url_for("download_document", document_id=protocol.get_compiled_document().id)}}">Download</a>
{% endif %}
<a class="btn btn-danger" href="{{url_for("delete_protocol", protocol_id=protocol.id)}}" onclick="return confirm('Bist du dir sicher, dass du das Protokoll {{protocol.get_identifier()}} löschen möchtest?');">Löschen</a>
{% endif %}
</div>
......
......@@ -7,6 +7,8 @@
{{render_single_table(protocoltype_table)}}
{{render_table(default_tops_table)}}
Standard-TOPs mit negativer Sortierung werden vor und die mit positiver Sortierung nach den TOPs eingefügt.
{{render_table(reminders_table)}}
{% if mail_active %}
{{render_table(reminders_table)}}
{% endif %}
</div>
{% endblock %}
......@@ -3,6 +3,8 @@ from flask import Markup, url_for, request
from models.database import Protocol, ProtocolType, DefaultTOP, TOP, Todo, Decision
from shared import date_filter, datetime_filter, date_filter_short, current_user, check_login
import config
class Table:
def __init__(self, title, values, newlink=None, newtext=None):
self.title = title
......@@ -105,16 +107,21 @@ class ProtocolTypeTable(SingleValueTable):
super().__init__(protocoltype.name, protocoltype, newlink=url_for("edit_type", type_id=protocoltype.id))
def headers(self):
headers = ["Name", "Abkürzung", "Organisation", "Beginn",
"Öffentlich", "Interne Gruppe", "Öffentliche Gruppe",
"Interner Verteiler", "Öffentlicher Verteiler",
"Drucker", "Wiki"]
general_headers = ["Name", "Abkürzung", "Organisation", "Beginn",
"Öffentlich", "Interne Gruppe", "Öffentliche Gruppe"]
mail_headers = ["Interner Verteiler", "Öffentlicher Verteiler"]
if not config.MAIL_ACTIVE:
mail_headers = []
printing_headers = ["Drucker"] if config.PRINTING_ACTIVE else []
wiki_headers = ["Wiki"]
if self.value.use_wiki:
headers.append("Wiki-Kategorie")
return headers
wiki_headers.append("Wiki-Kategorie")
if not config.WIKI_ACTIVE:
wiki_headers = []
return general_headers + mail_headers + printing_headers + wiki_headers
def row(self):
row = [
general_part = [
self.value.name,
self.value.short_name,
self.value.organization,
......@@ -122,14 +129,24 @@ class ProtocolTypeTable(SingleValueTable):
Table.bool(self.value.is_public),
self.value.private_group,
self.value.public_group,
]
mail_part = [
self.value.private_mail,
self.value.public_mail,
self.value.printer,
]
if not config.MAIL_ACTIVE:
mail_part = []
printing_part = [self.value.printer]
if not config.PRINTING_ACTIVE:
printing_part = []
wiki_part = [
(Table.bool(self.value.use_wiki) + ((", " + ("Öffentlich" if self.value.wiki_only_public else "Intern")) if self.value.use_wiki else ""))
]
if self.value.use_wiki:
row.append(self.value.wiki_category)
return row
wiki_part.append(self.value.wiki_category)
if not config.WIKI_ACTIVE:
wiki_part = []
return general_part + mail_part + printing_part + wiki_part
class DefaultTOPsTable(Table):
def __init__(self, tops, protocoltype=None):
......@@ -287,13 +304,13 @@ class DocumentsTable(Table):
def row(self, document):
user = current_user()
links = [Table.link(url_for("delete_document", document_id=document.id), "Löschen", confirm="Bist du dir sicher, dass du das Dokument {} löschen willst?".format(document.name))]
if config.PRINTING_ACTIVE:
links.append(Table.link(url_for("print_document", document_id=document.id), "Drucken"))
return [
document.id,
Table.link(url_for("download_document", document_id=document.id), document.name),
Table.concat([
Table.link(url_for("delete_document", document_id=document.id), "Löschen", confirm="Bist du dir sicher, dass du das Dokument {} löschen willst?".format(document.name)),
Table.link(url_for("print_document", document_id=document.id), "Drucken")
])
if document.protocol.protocoltype.has_modify_right(user)
else ""
Table.concat(links)
if document.protocol.protocoltype.has_modify_right(user)
else ""
]
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment