21 lines
815 B
Python
21 lines
815 B
Python
from django.db.models.query import QuerySet, Q
|
|
from ..models.instructors import Instructor
|
|
from ..models.missions import MissionProfile, MissionTypes
|
|
|
|
from typing import List, Dict, Tuple
|
|
|
|
def assign_profile(queryset: QuerySet[Instructor], data: Dict[str, List[MissionTypes]]) -> Tuple[int, List[str]]:
|
|
i: int = 0
|
|
mix_types: List[MissionTypes] = data["mission_profiles"]
|
|
mix_query: Q = Q() # Build an or query to select all aircrafts of the specified types
|
|
for m in mix_types:
|
|
mix_query |= Q(mtype=m)
|
|
profiles: QuerySet[MissionProfile] = MissionProfile.objects.filter(mix_query).all() # Execute query
|
|
for obj in queryset:
|
|
obj.missions.clear()
|
|
for ac in profiles:
|
|
obj.missions.add(ac)
|
|
obj.save()
|
|
i += 1
|
|
return i, [m for m in mix_types]
|