diff --git a/dashboard/__pycache__/views.cpython-313.pyc b/dashboard/__pycache__/views.cpython-313.pyc index d9b5c18..572cd02 100644 Binary files a/dashboard/__pycache__/views.cpython-313.pyc and b/dashboard/__pycache__/views.cpython-313.pyc differ diff --git a/dashboard/templates/dashboard/dashboard.html b/dashboard/templates/dashboard/dashboard.html index 9f89bf6..614caf1 100644 --- a/dashboard/templates/dashboard/dashboard.html +++ b/dashboard/templates/dashboard/dashboard.html @@ -31,8 +31,16 @@
{{ item.event.title }}
{{ item.event.start_time|localize }} +

Team: {{ item.event.team.name }}

{% if item.event.game %}

Opponent: {{ item.event.game.opponent }}

+ {% if item.event.game.opened_for_teams.all %} +

Supporter Teams: + {% for team in item.event.game.opened_for_teams.all %} + {{ team.name }}{% if not forloop.last %}, {% endif %} + {% endfor %} +

+ {% endif %} {% endif %}

{{ item.event.description }}

Location: {{ item.event.location_address }} @@ -50,6 +58,7 @@
@@ -92,6 +107,7 @@
{{ item.event.title }}
{{ item.event.start_time|localize }} +

Team: {{ item.event.team.name }}

{% if item.event.game %}

Opponent: {{ item.event.game.opponent }}

{% endif %} diff --git a/dashboard/views.py b/dashboard/views.py index 2ed8004..95a08c4 100644 --- a/dashboard/views.py +++ b/dashboard/views.py @@ -22,7 +22,7 @@ def dashboard(request): if all_teams: user_events = Event.objects.filter(team__in=all_teams) opened_games = Event.objects.filter(game__opened_for_teams__in=all_teams) - events = (user_events | opened_games).distinct().select_related('game', 'training').prefetch_related('team__players', 'eventparticipation_set__user').order_by('start_time') + events = (user_events | opened_games).distinct().select_related('game', 'training').prefetch_related('team__players', 'eventparticipation_set__user', 'game__opened_for_teams').order_by('start_time') for event in events: participations = event.eventparticipation_set.all() @@ -31,6 +31,14 @@ def dashboard(request): player_participations = [] team_players = event.team.players.all() + + # Add players from opened teams + if hasattr(event, 'game'): + for team in event.game.opened_for_teams.all(): + team_players = team_players | team.players.all() + + team_players = team_players.distinct() + participation_map = {p.user_id: p.status for p in participations} for player in team_players: diff --git a/db.sqlite3 b/db.sqlite3 index 94aeee3..bdf6883 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/docs/traceback/trace8.log b/docs/traceback/trace8.log new file mode 100644 index 0000000..70afb49 --- /dev/null +++ b/docs/traceback/trace8.log @@ -0,0 +1,118 @@ +Internal Server Error: / +Traceback (most recent call last): + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/smartif.py", line 180, in translate_token + op = OPERATORS[token] + ~~~~~~~~~^^^^^^^ +KeyError: '(p.player.team' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/core/handlers/base.py", line 197, in _get_response + response = wrapped_callback(request, *callback_args, **callback_kwargs) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + File "/home/mnagel/Projekte/baseball_organisator/dashboard/views.py", line 77, in dashboard + return render(request, 'dashboard/dashboard.html', context) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/shortcuts.py", line 25, in render + content = loader.render_to_string(template_name, context, request, using=using) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/loader.py", line 61, in render_to_string + template = get_template(template_name, using=using) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/loader.py", line 15, in get_template + return engine.get_template(template_name) + ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/backends/django.py", line 79, in get_template + return Template(self.engine.get_template(template_name), self) + ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/engine.py", line 177, in get_template + template, origin = self.find_template(template_name) + ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/engine.py", line 159, in find_template + template = loader.get_template(name, skip=skip) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/loaders/cached.py", line 57, in get_template + template = super().get_template(template_name, skip) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/loaders/base.py", line 28, in get_template + return Template( + contents, + ...<2 lines>... + self.engine, + ) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 154, in __init__ + self.nodelist = self.compile_nodelist() + ~~~~~~~~~~~~~~~~~~~~~^^ + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 196, in compile_nodelist + nodelist = parser.parse() + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 518, in parse + raise self.error(token, e) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 516, in parse + compiled_result = compile_func(self, token) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/loader_tags.py", line 299, in do_extends + nodelist = parser.parse() + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 518, in parse + raise self.error(token, e) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 516, in parse + compiled_result = compile_func(self, token) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/loader_tags.py", line 234, in do_block + nodelist = parser.parse(("endblock",)) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 518, in parse + raise self.error(token, e) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 516, in parse + compiled_result = compile_func(self, token) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/defaulttags.py", line 962, in do_if + nodelist = parser.parse(("elif", "else", "endif")) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 518, in parse + raise self.error(token, e) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 516, in parse + compiled_result = compile_func(self, token) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/defaulttags.py", line 862, in do_for + nodelist_loop = parser.parse( + ( + ...<2 lines>... + ) + ) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 518, in parse + raise self.error(token, e) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 516, in parse + compiled_result = compile_func(self, token) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/defaulttags.py", line 962, in do_if + nodelist = parser.parse(("elif", "else", "endif")) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 518, in parse + raise self.error(token, e) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 516, in parse + compiled_result = compile_func(self, token) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/defaulttags.py", line 862, in do_for + nodelist_loop = parser.parse( + ( + ...<2 lines>... + ) + ) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 518, in parse + raise self.error(token, e) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 516, in parse + compiled_result = compile_func(self, token) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/defaulttags.py", line 961, in do_if + condition = TemplateIfParser(parser, bits).parse() + ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/defaulttags.py", line 894, in __init__ + super().__init__(*args, **kwargs) + ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/smartif.py", line 171, in __init__ + mapped_tokens.append(self.translate_token(token)) + ~~~~~~~~~~~~~~~~~~~~^^^^^^^ + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/smartif.py", line 182, in translate_token + return self.create_var(token) + ~~~~~~~~~~~~~~~^^^^^^^ + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/defaulttags.py", line 897, in create_var + return TemplateLiteral(self.template_parser.compile_filter(value), value) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^ + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 609, in compile_filter + return FilterExpression(token, self) + File "/home/mnagel/Projekte/baseball_organisator/venv/lib64/python3.13/site-packages/django/template/base.py", line 710, in __init__ + raise TemplateSyntaxError( + ...<2 lines>... + ) +django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: '(p.player.team' from '(p.player.team' +[02/Oct/2025 10:39:16] "GET / HTTP/1.1" 500 431175 + diff --git a/templates/base.html b/templates/base.html index 140cc5d..121de5b 100644 --- a/templates/base.html +++ b/templates/base.html @@ -15,7 +15,8 @@ border-left: 5px solid #6c757d; /* gray */ } .support-game { - border: 2px solid #ffc107; /* yellow */ + background-color: #fff3cd; /* light yellow background */ + border-color: #ffc107; /* yellow border */ }