diff --git a/migrations/versions/4651698510d7_.py b/migrations/versions/4651698510d7_.py new file mode 100644 index 0000000000000000000000000000000000000000..e6f86c682e4e578882e887fb84be27cdbce3e392 --- /dev/null +++ b/migrations/versions/4651698510d7_.py @@ -0,0 +1,30 @@ +"""empty message + +Revision ID: 4651698510d7 +Revises: a06cc03bdef4 +Create Date: 2017-03-22 21:42:04.880972 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '4651698510d7' +down_revision = 'a06cc03bdef4' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('defaultmetas', sa.Column('internal', sa.Boolean(), nullable=True)) + op.add_column('metas', sa.Column('internal', sa.Boolean(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('metas', 'internal') + op.drop_column('defaultmetas', 'internal') + # ### end Alembic commands ### diff --git a/models/database.py b/models/database.py index 71dda40261fa9d025cb21592f2a739701e7fba81..9e47ae541bc89aac923e35f668a4803a1960944e 100644 --- a/models/database.py +++ b/models/database.py @@ -203,7 +203,7 @@ class Protocol(DatabaseModel): for default_meta in self.protocoltype.metas: if default_meta.key in remarks: value = remarks[default_meta.key].value.strip() - meta = Meta(protocol_id=self.id, name=default_meta.name, value=value) + meta = Meta(protocol_id=self.id, name=default_meta.name, value=value, internal=default_meta.internal) db.session.add(meta) db.session.commit() @@ -657,6 +657,7 @@ class DefaultMeta(DatabaseModel): protocoltype_id = db.Column(db.Integer, db.ForeignKey("protocoltypes.id")) key = db.Column(db.String) name = db.Column(db.String) + internal = db.Column(db.Boolean) def get_parent(self): return self.protocoltype @@ -668,6 +669,7 @@ class Meta(DatabaseModel): protocol_id = db.Column(db.Integer, db.ForeignKey("protocols.id")) name = db.Column(db.String) value = db.Column(db.String) + internal = db.Column(db.Boolean) def get_parent(self): return self.protocol diff --git a/tasks.py b/tasks.py index 84f469760062bea64397f66d8fb4372d66fe1597..f08ea29a20c7ffda6d238ca58a363e0ca1db357f 100644 --- a/tasks.py +++ b/tasks.py @@ -505,7 +505,7 @@ def send_protocol_async(protocol_id, show_private): protocol = Protocol.query.filter_by(id=protocol_id).first() to_addr = protocol.protocoltype.private_mail if show_private else protocol.protocoltype.public_mail subject = "{}{}-Protokoll vom {}".format("Internes " if show_private else "", protocol.protocoltype.short_name, date_filter(protocol.date)) - mail_content = render_template("protocol-mail.txt", protocol=protocol) + mail_content = render_template("protocol-mail.txt", protocol=protocol, show_private=show_private) appendix = [(document.name, document.as_file_like()) for document in protocol.documents if show_private or not document.is_private diff --git a/templates/protocol-mail.txt b/templates/protocol-mail.txt index 4235afc93e22223e4335a6af3c7cecacfeed12b3..0cb09c8dd28c8f53db8a513e6ea8f3a1222aef5f 100644 --- a/templates/protocol-mail.txt +++ b/templates/protocol-mail.txt @@ -5,7 +5,9 @@ Datum: {{protocol.date|datify_long}} Zeit: von {{protocol.start_time|timify}} bis {{protocol.end_time|timify}} {% endif %} {% for meta in protocol.metas %} +{% if not meta.internal or show_private %} {{meta.name}}: {{meta.value}} +{% endif %} {% endfor %} Die Tagesordnung ist: diff --git a/templates/protocol-show.html b/templates/protocol-show.html index 1316ede0991847e359e163fbd4cc0b0843d8d818..9ce74b36dea23f485a7f4afc614deaa088a3b6f9 100644 --- a/templates/protocol-show.html +++ b/templates/protocol-show.html @@ -65,7 +65,9 @@ {% endif %} {% if has_public_view_right %} {% for meta in protocol.metas %} - <p><strong>{{meta.name}}:</strong> {{meta.value}}</p> + {% if not meta.internal or has_private_view_right %} + <p><strong>{{meta.name}}:</strong> {{meta.value}}</p> + {% endif %} {% endfor %} {% endif %} {% else %} diff --git a/templates/protocol.tex b/templates/protocol.tex index 2004b248fce043cf6f1ca226541e4583d4cc4617..1c757ba97e7b69544eaf36bd9c12f9ea3b1c4beb 100644 --- a/templates/protocol.tex +++ b/templates/protocol.tex @@ -27,7 +27,9 @@ {\bf Datum:} & \VAR{protocol.date|datify_long|escape_tex}\\ \ENV{endif} \ENV{for meta in protocol.metas} - {\bf \VAR{meta.name|escape_tex}:} & \VAR{meta.value|escape_tex}\\ + \ENV{if not meta.internal or show_private} + {\bf \VAR{meta.name|escape_tex}:} & \VAR{meta.value|escape_tex}\\ + \ENV{endif} \ENV{endfor} \end{tabular} \normalsize diff --git a/templates/protocol.wiki b/templates/protocol.wiki index 5cb8c6cdd0a1627f47d416680170c089fbd7cfc9..bc5e061b940be6bc59ea8b703ab627a3d69a5d47 100644 --- a/templates/protocol.wiki +++ b/templates/protocol.wiki @@ -7,7 +7,9 @@ | zeit = von <var>protocol.start_time|timify</var> bis <var>protocol.end_time|timify</var> <env> endif </env> <env> for meta in protocol.metas </env> +<env> if not meta.internal or not protocol.protocoltype.wiki_only_public </env> | <var>meta.name|lower</var> = <var>meta.value</var> +<env> endif </env> <env> endfor </env> }} diff --git a/views/forms.py b/views/forms.py index 6ee8e928ad5a522dc193bb369d96d9749e65d13f..78bb64b1cc962bb304610db972166ca92361a47f 100644 --- a/views/forms.py +++ b/views/forms.py @@ -243,10 +243,12 @@ class TodoMailForm(FlaskForm): class MetaForm(FlaskForm): name = StringField("Name", validators=[InputRequired("Bitte gib den Namen der Metadaten an.")]) value = StringField("Wert") + internal = BooleanField("Intern") class DefaultMetaForm(FlaskForm): key = StringField("Key", validators=[InputRequired("Bitte gib den Protokoll-Syntax-Schlüssel der Metadaten an.")]) name = StringField("Name", validators=[InputRequired("Bitte gib den Namen der Metadaten an.")]) + internal = BooleanField("Intern") class DecisionCategoryForm(FlaskForm): name = StringField("Name", validators=[InputRequired("Bitte gib den Namen der Kategorie an.")]) diff --git a/views/tables.py b/views/tables.py index 4d98c4c2ea9a4707b552fa912221fd08553db5d7..e612dd9df7d5942a6041c26ad1a56b561e87a9ed 100644 --- a/views/tables.py +++ b/views/tables.py @@ -474,13 +474,14 @@ class DefaultMetasTable(Table): ) def headers(self): - return ["Name", "Key", ""] + return ["Name", "Key", "Intern", ""] def row(self, meta): user = current_user() general_part = [ meta.name, meta.key, + Table.bool(meta.internal) ] links = [ Table.link(url_for("edit_defaultmeta", defaultmeta_id=meta.id), "Ändern"), @@ -491,7 +492,6 @@ class DefaultMetasTable(Table): class DecisionCategoriesTable(Table): def __init__(self, categories, protocoltype): - print(categories) super().__init__( "Beschlusskategorien", categories,