Loading hybrid/admin.py +9 −0 Changes for hybrid/admin.py: 9 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ from django.contrib import admin from django.utils.html import format_html from django.urls import path from django.db.models import Value, CharField from django.db.models.functions import Concat from django.shortcuts import render from django.utils.decorators import method_decorator Loading Loading @@ -44,6 +45,14 @@ class HybridElectionVoterAdmin(admin.ModelAdmin): return super().changelist_view(request, extra_context) def get_search_results(self, request, queryset, search_term): queryset, use_distinct = super().get_search_results(request, queryset, search_term) if search_term: queryset = queryset.annotate(full_name=Concat('first_name', Value(' '), 'last_name')).filter(full_name__icontains=search_term) | queryset return queryset, use_distinct @admin.display(description='Karta do głosowania') def issue_card(self, obj): if obj.election_id == '': Loading hybrid/migrations/0003_alter_hybridelectionvoter_options.py 0 → 100644 +17 −0 Changes for hybrid/migrations/0003_alter_hybridelectionvoter_options.py: 17 added lines, 0 removed lines. Original line number Diff line number Diff line # Generated by Django 6.0.3 on 2026-03-22 13:31 from django.db import migrations class Migration(migrations.Migration): dependencies = [ ('hybrid', '0002_alter_hybridelectionvoter_options'), ] operations = [ migrations.AlterModelOptions( name='hybridelectionvoter', options={'verbose_name': 'Wydaj karty', 'verbose_name_plural': 'Wydawanie kart'}, ), ] mails/templates/mails/voting_link_mail.html +1 −1 Changes for mails/templates/mails/voting_link_mail.html: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -17,5 +17,5 @@ </p> <p style="font-size: 0.9em; color: #888;"> Niniejsza wiadomość została wysłana do {{ voter.first_name }} {{voter.last_name}}({{ voter_username }}). Niniejsza wiadomość została wysłana do {{ voter.first_name }} {{voter.last_name}} ({{ voter.username }}). </p> No newline at end of file mails/templates/mails/voting_link_mail.txt +1 −1 Changes for mails/templates/mails/voting_link_mail.txt: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -4,4 +4,4 @@ Aby zagłosować w wyborach, wklej poniższy adres do przeglądarki: Uwaga! Link ten jest tajny. Nie udostępniaj go nikomu ani nie pokazuj, aby nikt nie zagłosował za Ciebie. Niniejsza wiadomość została wysłana do {{ voter.first_name }} {{voter.last_name}}({{ voter_username }}). No newline at end of file Niniejsza wiadomość została wysłana do {{ voter.first_name }} {{voter.last_name}} ({{ voter.username }}). No newline at end of file voters/admin.py +10 −1 Changes for voters/admin.py: 10 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -3,7 +3,8 @@ from django.urls import reverse from django.utils.html import format_html from django.contrib import messages from django.shortcuts import render from django.db.models import F from django.db.models import F, Value from django.db.models.functions import Concat from .models import Group, Voter from .tasks import generate_voter_tokens_task Loading Loading @@ -56,6 +57,14 @@ class VoterAdmin(admin.ModelAdmin): search_fields = ['first_name', 'last_name', 'username'] list_filter = ['group', TokenStatusFilter, MailStatusFilter] def get_search_results(self, request, queryset, search_term): queryset, use_distinct = super().get_search_results(request, queryset, search_term) if search_term: queryset = queryset.annotate(full_name=Concat('first_name', Value(' '), 'last_name')).filter(full_name__icontains=search_term) | queryset return queryset, use_distinct @admin.display(description='Token wygenerowany', boolean=True) def get_token_status(self, obj): return obj.token_generated Loading Loading
hybrid/admin.py +9 −0 Changes for hybrid/admin.py: 9 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ from django.contrib import admin from django.utils.html import format_html from django.urls import path from django.db.models import Value, CharField from django.db.models.functions import Concat from django.shortcuts import render from django.utils.decorators import method_decorator Loading Loading @@ -44,6 +45,14 @@ class HybridElectionVoterAdmin(admin.ModelAdmin): return super().changelist_view(request, extra_context) def get_search_results(self, request, queryset, search_term): queryset, use_distinct = super().get_search_results(request, queryset, search_term) if search_term: queryset = queryset.annotate(full_name=Concat('first_name', Value(' '), 'last_name')).filter(full_name__icontains=search_term) | queryset return queryset, use_distinct @admin.display(description='Karta do głosowania') def issue_card(self, obj): if obj.election_id == '': Loading
hybrid/migrations/0003_alter_hybridelectionvoter_options.py 0 → 100644 +17 −0 Changes for hybrid/migrations/0003_alter_hybridelectionvoter_options.py: 17 added lines, 0 removed lines. Original line number Diff line number Diff line # Generated by Django 6.0.3 on 2026-03-22 13:31 from django.db import migrations class Migration(migrations.Migration): dependencies = [ ('hybrid', '0002_alter_hybridelectionvoter_options'), ] operations = [ migrations.AlterModelOptions( name='hybridelectionvoter', options={'verbose_name': 'Wydaj karty', 'verbose_name_plural': 'Wydawanie kart'}, ), ]
mails/templates/mails/voting_link_mail.html +1 −1 Changes for mails/templates/mails/voting_link_mail.html: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -17,5 +17,5 @@ </p> <p style="font-size: 0.9em; color: #888;"> Niniejsza wiadomość została wysłana do {{ voter.first_name }} {{voter.last_name}}({{ voter_username }}). Niniejsza wiadomość została wysłana do {{ voter.first_name }} {{voter.last_name}} ({{ voter.username }}). </p> No newline at end of file
mails/templates/mails/voting_link_mail.txt +1 −1 Changes for mails/templates/mails/voting_link_mail.txt: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -4,4 +4,4 @@ Aby zagłosować w wyborach, wklej poniższy adres do przeglądarki: Uwaga! Link ten jest tajny. Nie udostępniaj go nikomu ani nie pokazuj, aby nikt nie zagłosował za Ciebie. Niniejsza wiadomość została wysłana do {{ voter.first_name }} {{voter.last_name}}({{ voter_username }}). No newline at end of file Niniejsza wiadomość została wysłana do {{ voter.first_name }} {{voter.last_name}} ({{ voter.username }}). No newline at end of file
voters/admin.py +10 −1 Changes for voters/admin.py: 10 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -3,7 +3,8 @@ from django.urls import reverse from django.utils.html import format_html from django.contrib import messages from django.shortcuts import render from django.db.models import F from django.db.models import F, Value from django.db.models.functions import Concat from .models import Group, Voter from .tasks import generate_voter_tokens_task Loading Loading @@ -56,6 +57,14 @@ class VoterAdmin(admin.ModelAdmin): search_fields = ['first_name', 'last_name', 'username'] list_filter = ['group', TokenStatusFilter, MailStatusFilter] def get_search_results(self, request, queryset, search_term): queryset, use_distinct = super().get_search_results(request, queryset, search_term) if search_term: queryset = queryset.annotate(full_name=Concat('first_name', Value(' '), 'last_name')).filter(full_name__icontains=search_term) | queryset return queryset, use_distinct @admin.display(description='Token wygenerowany', boolean=True) def get_token_status(self, obj): return obj.token_generated Loading