sprint/daemons/management/commands/apply_languages.py
Egor Matveev dd7d61e909 apply
2022-03-19 13:52:56 +03:00

28 lines
1.1 KiB
Python

from django.core.management.base import BaseCommand
from Main.models import LanguageApply, Set
from SprintLib.language import languages
class Command(BaseCommand):
help = "starts FileStorage"
def handle(self, *args, **options):
for language in languages:
apply = LanguageApply.objects.filter(language_id=language.id, applied=True).first()
if apply is None:
for s in Set.objects.filter(auto_add_new_languages=True):
if language.id not in s.languages:
s.languages.append(language.id)
s.save()
obj, _ = LanguageApply.objects.get_or_create(language_id=language.id)
obj.applied = True
obj.save()
language_ids = [language.id for language in languages]
for apply in LanguageApply.objects.all():
if apply.language_id not in language_ids:
for s in Set.objects.filter(languages__in=apply.language_id):
s.languages.remove(apply.language_id)
s.save()
apply.delete()