USER="..."
PASSWORD="..."
+# Footer data: remove # at beginning of lines and adjust if needed
+#COPYRIGHTSTART="2017"
+#COPYRIGHTNAME="WPIA"
+#COPYRIGHTLINK="https://wpia.club"
+#IMPRINTLINK="https://documents.wpia.club/imprint.html"
+#DATAPROTECTIONLINK="https://documents.wpia.club/data_privacy_policy_html_pages_en.html"
+
DEFAULT_HOST="hostname for migration from db version < 2"
GROUP_PREFIX={'hostname': {'group1': 'g1', 'group2': 'g2'}} # motion types and their id-prefixes
md = Markdown(app, extensions=[EscapeHtml()])
+class default_settings(object):
+ COPYRIGHTSTART="2017"
+ COPYRIGHTNAME="WPIA"
+ COPYRIGHTLINK="https://wpia.club"
+ IMPRINTLINK="https://documents.wpia.club/imprint.html"
+ DATAPROTECTIONLINK="https://documents.wpia.club/data_privacy_policy_html_pages_en.html"
+
+
# Load config
+app.config.from_object('motion.default_settings')
app.config.from_pyfile('config.py')
g.roles[a[0]].append(val)
return None
+@app.context_processor
+def init_footer_variables():
+ if int(app.config.get("COPYRIGHTSTART"))<datetime.now().year:
+ version_year = "%s - %s" % (app.config.get("COPYRIGHTSTART"), datetime.now().year)
+ else:
+ version_year = datetime.now().year
+
+ return dict(
+ footer = dict( version_year=version_year,
+ copyright_link=app.config.get("COPYRIGHTLINK"),
+ copyright_name=app.config.get("COPYRIGHTNAME"),
+ imprint_link=app.config.get("DATAPROTECTIONLINK"),
+ dataprotection_link=app.config.get("DATAPROTECTIONLINK")
+ )
+ )
+
+
def get_allowed_cats(action):
return g.roles.get(action, []);
db.prepare("ALTER TABLE \"motion\" ALTER COLUMN \"host\" SET NOT NULL")()
db.prepare("UPDATE \"schema_version\" SET \"version\"=3")()
-
init_db()
@app.route("/")
<body>
{%- block body %}
{% endblock %}
+<!-- Footer -->
+ <footer class="page-footer">
+ <div class="footer-copyright text-center py-3">
+ <p>© {{footer.version_year}} Copyright: <a href="{{footer.copyright_link}}">{{footer.copyright_name}}</a>
+ | <a href="{{footer.imprint_link}}">Imprint</a>
+ | <a href="{{footer.dataprotection_link}}">Data protection</a></p>
+ </div>
+ </footer>
</body>
</html>
def test_basic_results_data_details(self):
motion='g1.20200402.002'
result = self.app.get('/motion/' + motion, environ_base={'USER_ROLES': user}, follow_redirects=True)
- testtext= '<p>A second motion</p></p>\n </div>\n</div>\n<a href=\"/?start=2#motion-2\" class=\"btn btn-primary\">Back</a>\n</body>'
+ testtext= '<p>A second motion</p></p>\n </div>\n</div>\n<a href=\"/?start=2#motion-2\" class=\"btn btn-primary\">Back</a>'
self.assertIn(str.encode(testtext), result.data)
def test_vote(self):