update extensions table: show branch, show date in separate column, and show version from tags if available

This commit is contained in:
AUTOMATIC 2023-05-15 21:22:35 +03:00
parent 0d2a4b608c
commit a47abe1b7b
2 changed files with 8 additions and 5 deletions

View File

@ -66,13 +66,11 @@ class Extension:
try: try:
self.status = 'unknown' self.status = 'unknown'
self.remote = next(repo.remote().urls, None) self.remote = next(repo.remote().urls, None)
head = repo.head.commit
self.commit_date = repo.head.commit.committed_date self.commit_date = repo.head.commit.committed_date
ts = time.asctime(time.gmtime(self.commit_date))
if repo.active_branch: if repo.active_branch:
self.branch = repo.active_branch.name self.branch = repo.active_branch.name
self.commit_hash = head.hexsha self.commit_hash = repo.head.commit.hexsha
self.version = f'{self.commit_hash[:8]} ({ts})' self.version = repo.git.describe("--always", "--tags") # compared to `self.commit_hash[:8]` this takes about 30% more time total but since we run it in parallel we don't care
except Exception as ex: except Exception as ex:
print(f"Failed reading extension data from Git repository ({self.name}): {ex}", file=sys.stderr) print(f"Failed reading extension data from Git repository ({self.name}): {ex}", file=sys.stderr)

View File

@ -141,7 +141,9 @@ def extension_table():
<tr> <tr>
<th><abbr title="Use checkbox to enable the extension; it will be enabled or disabled when you click apply button">Extension</abbr></th> <th><abbr title="Use checkbox to enable the extension; it will be enabled or disabled when you click apply button">Extension</abbr></th>
<th>URL</th> <th>URL</th>
<th><abbr title="Extension version">Version</abbr></th> <th>Branch</th>
<th>Version</th>
<th>Date</th>
<th><abbr title="Use checkbox to mark the extension for update; it will be updated when you click apply button">Update</abbr></th> <th><abbr title="Use checkbox to mark the extension for update; it will be updated when you click apply button">Update</abbr></th>
</tr> </tr>
</thead> </thead>
@ -149,6 +151,7 @@ def extension_table():
""" """
for ext in extensions.extensions: for ext in extensions.extensions:
ext: extensions.Extension
ext.read_info_from_repo() ext.read_info_from_repo()
remote = f"""<a href="{html.escape(ext.remote or '')}" target="_blank">{html.escape("built-in" if ext.is_builtin else ext.remote or '')}</a>""" remote = f"""<a href="{html.escape(ext.remote or '')}" target="_blank">{html.escape("built-in" if ext.is_builtin else ext.remote or '')}</a>"""
@ -170,7 +173,9 @@ def extension_table():
<tr> <tr>
<td><label{style}><input class="gr-check-radio gr-checkbox" name="enable_{html.escape(ext.name)}" type="checkbox" {'checked="checked"' if ext.enabled else ''}>{html.escape(ext.name)}</label></td> <td><label{style}><input class="gr-check-radio gr-checkbox" name="enable_{html.escape(ext.name)}" type="checkbox" {'checked="checked"' if ext.enabled else ''}>{html.escape(ext.name)}</label></td>
<td>{remote}</td> <td>{remote}</td>
<td>{ext.branch}</td>
<td>{version_link}</td> <td>{version_link}</td>
<td>{time.asctime(time.gmtime(ext.commit_date))}</td>
<td{' class="extension_status"' if ext.remote is not None else ''}>{ext_status}</td> <td{' class="extension_status"' if ext.remote is not None else ''}>{ext_status}</td>
</tr> </tr>
""" """