Fix flask table error

This commit is contained in:
Jonny Ervine 2025-09-29 12:31:47 +08:00
parent 2cf4e923f3
commit fa37916440
3 changed files with 48 additions and 13 deletions

View File

@ -1,7 +1,6 @@
Flask
Werkzeug
Flask>=2.0.0,<3.0.0
Werkzeug>=2.0.0
email-validator
flask_table
flask-mysql
flask_login
Flask-BasicAuth
@ -9,4 +8,5 @@ Flask-Bootstrap
flask_wtf
wtforms>=3.0.0
wtforms_components
MarkupSafe>=2.0.0
pymysql

View File

@ -1,9 +1,44 @@
from flask_table import Table, Col, LinkCol, ButtonCol
from markupsafe import Markup
class matchSquadTable(Table):
playerNumber = Col('Player Number')
playerNickname = Col('Nickname')
playerSurname = Col('Surname')
playerForenames = Col('Forenames')
delete = ButtonCol('Delete', 'motm.delPlayerFromSquad', url_kwargs=dict(playerNumber='playerNumber'), button_attrs={"type" : "submit", "class" : "btn btn-danger"})
class matchSquadTable:
def __init__(self, items):
self.items = items
self.border = True
self.classes = []
def __html__(self):
"""Generate HTML table from items"""
if not self.items:
return Markup('<p>No players in squad</p>')
# Start table
classes_str = ' '.join(self.classes) if self.classes else ''
border_attr = 'border="1"' if self.border else ''
html = f'<table class="table {classes_str}" {border_attr}>\n'
# Table header
html += ' <thead>\n <tr>\n'
html += ' <th>Player Number</th>\n'
html += ' <th>Nickname</th>\n'
html += ' <th>Surname</th>\n'
html += ' <th>Forenames</th>\n'
html += ' <th>Delete</th>\n'
html += ' </tr>\n </thead>\n'
# Table body
html += ' <tbody>\n'
for item in self.items:
html += ' <tr>\n'
html += f' <td>{item.get("playerNumber", "")}</td>\n'
html += f' <td>{item.get("playerNickname", "")}</td>\n'
html += f' <td>{item.get("playerSurname", "")}</td>\n'
html += f' <td>{item.get("playerForenames", "")}</td>\n'
html += f' <td><form method="post" action="/admin/squad/remove?playerNumber={item.get("playerNumber", "")}"><button type="submit" class="btn btn-danger">Delete</button></form></td>\n'
html += ' </tr>\n'
html += ' </tbody>\n'
# End table
html += '</table>\n'
return Markup(html)

View File

@ -1,7 +1,6 @@
Flask
Werkzeug
Flask>=2.0.0,<3.0.0
Werkzeug>=2.0.0
email-validator
flask_table
flask-mysql
flask_login
Flask-BasicAuth
@ -9,4 +8,5 @@ Flask-Bootstrap
flask_wtf
wtforms>=3.0.0
wtforms_components
MarkupSafe>=2.0.0