diff --git a/server.py b/server.py index 61eb7e3853dd079bdb09e9e9795bc8860d15f4f6..eec035d5e969bf3d3a5b2d3d1633dd37ae530cdc 100755 --- a/server.py +++ b/server.py @@ -18,6 +18,7 @@ import os from datetime import datetime import math import mimetypes +import subprocess import config from shared import db, date_filter, datetime_filter, date_filter_long, date_filter_short, time_filter, time_filter_short, user_manager, security_manager, current_user, check_login, login_required, group_required, class_filter, needs_date_test, todostate_name_filter, code_filter, indent_tab_filter @@ -80,6 +81,18 @@ app.jinja_env.globals.update(max=max) app.jinja_env.globals.update(dir=dir) app.jinja_env.globals.update(now=datetime.now) +def get_git_revision(): + gitlab_url = "https://git.fsmpi.rwth-aachen.de/protokollsystem/proto3" + commit_hash = subprocess.check_output(["git", "log", "-g", "-1", "--pretty=%H"]).decode("UTF-8").strip() + timestamp = int(subprocess.check_output(["git", "log", "-g", "-1", "--pretty=%at"]).strip()) + commit_date = datetime.fromtimestamp(timestamp) + return {"url": gitlab_url, "hash": commit_hash, "date": commit_date} + +try: + app.jinja_env.globals["git_revision"] = get_git_revision() +except: + pass + # blueprints here @manager.command diff --git a/templates/documentation.html b/templates/documentation.html index 5c6758b5a55867938b6fb45e411f84e2ae5668b8..fd539659aa1c8805ff88fe6d9cd52dd0aadb4c60 100644 --- a/templates/documentation.html +++ b/templates/documentation.html @@ -214,6 +214,11 @@ Optional kann zusätzlich eine Uhrzeit angegeben werden: <code>[sitzung;Datum;Uhrzeit]</code> (z.B. <code>[sitzung;01.01.2018;9:00]</code>). {% endif %} + {% if git_revision %} + <h3 id="version">Version</h4> + Dieses Protokollsystem nutzt die Software <a href="{{git_revision.url}}">„Protokollsystem 3“</a> in der Version vom <a href="{{git_revision.url}}/commit/{{git_revision.hash}}">{{git_revision.date|datify}}</a>. + Alle Änderungen, die seitdem hinzugekommen sind, kannst du <a href="{{git_revision.url}}/compare/{{git_revision.hash}}...master">hier</a> sehen. + {% endif %} </div> </div> {% endblock %}