Commit 3e2ccac2 authored by Staś Kycia's avatar Staś Kycia
Browse files

token generation in the background

parent fff91753
Loading
Loading
Loading
Loading
+10 −2
Changes for voters/admin.py: 10 added lines, 2 removed lines.
Original line number Diff line number Diff line
from django.contrib import admin
from django.urls import reverse
from django.utils.html import format_html
from django.contrib import messages

from .models import Group, Voter
from .tasks import generate_voter_tokens_task

class TokenStatusFilter(admin.SimpleListFilter):
    title = 'status tokena'
@@ -47,10 +49,16 @@ class VoterAdmin(admin.ModelAdmin):
    def invalidate_tokens(modeladmin, request, queryset):
        queryset.update(token=None)
        
    # @admin.action(description='Wygeneruj tokeny')
    # def generate_tokens(modeladmin, request, queryset):
    #     for voter in queryset:
    #         voter.generate_token()
    
    @admin.action(description='Wygeneruj tokeny')
    def generate_tokens(modeladmin, request, queryset):
        for voter in queryset:
            voter.generate_token()
        voter_ids = list(queryset.values_list('id', flat=True))
        generate_voter_tokens_task.enqueue(voter_ids)
        messages.info(request, 'Generowanie tokenów w toku...')
        
    actions = [invalidate_tokens, generate_tokens]

voters/tasks.py

0 → 100644
+9 −0
Changes for voters/tasks.py: 9 added lines, 0 removed lines.
Original line number Diff line number Diff line
from django.tasks import task

from .models import Voter

@task
def generate_voter_tokens_task(voter_ids):
    queryset = Voter.objects.filter(id__in=voter_ids)
    for v in queryset:
        v.generate_token()
 No newline at end of file