research/referees/scripts/script_wales.py
2024-01-31 21:41:29 +01:00

128 lines
3.2 KiB
Python
Executable File

# %%
PROJECT_PATH = '/home/md/Work/ligalytics/leagues_develop/'
import os, sys
sys.path.insert(0, PROJECT_PATH)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "leagues.settings")
os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true"
from leagues import settings
settings.DATABASES['default']['NAME'] = PROJECT_PATH+'/db.sqlite3'
import django
django.setup()
from scheduler.models import *
import pulp
from pulp import lpSum, value, XPRESS, GUROBI, PULP_CBC_CMD
from django.db.models import Q
from django.template.loader import render_to_string
from qualifiers.models import *
from common.models import GlobalTeam, GlobalCountry
from scheduler.models import Season, Scenario, Team, Day, CountryClash, Country
from qualifiers.draws import groupTeams, optimize_inversions4
from scheduler.solver.tasks.optimize import optimize
from common.functions import distanceInMilesByGPS
from referees.helpers import use_referees, import_deb_delegates, seed_rounds_from_days, generate_distance_matrix
from referees.models import *
import random
import time
import json
import csv
import networkx as nx
import matplotlib.pyplot as plt
from dateutil import parser
from datetime import timedelta
import googlemaps
import pandas as pd
# %%
scenario = Scenario.objects.get(id=4)
season= scenario.season
# %%
# from referees.optimize import optimize_referees, optimize_referees_reopt, optimize_delegates, optimize_wales
# sol=optimize_wales(scenario.id, "md", True, RUN_ENV='NO_CELERY')
# %%
tt = time.time()
for d in Delegate.objects.filter(season=season).prefetch_related('assignments'):
# for d in Delegate.objects.filter(season=season).prefetch_related('assignments').only('id'):
# for d in Delegate.objects.filter(season=season):
for a in d.assignments.all():
x = a.travel
print(time.time()-tt)
# %%
# categories = Category.objects.filter(season=season,requirements__in=Requirement.objects.filter(season=season))
# delegates = Delegate.objects.filter(season=season,active=True,category__in=categories)
# Delegate.objects.filter(season=season).exclude(id__in=delegates.values('id')).update(active=False)
# for d in Delegate.objects.filter(season=season):
# if d.location:
# d.latitude = d.location.latitude
# d.longitude = d.location.longitude
# d.save()
# %%
# for d in Delegate.objects.filter(season=season):
# d.name = f"Person {d.name}"
# d.save()
# # %%
# competitions = Competition.objects.filter(season=season)
# days = Day.objects.filter(season=season).exclude(round=7)
# # %%
# for d in Delegate.objects.filter(season=season):
# d.coefficient = d.category.order
# d.save()
# from referees.optimize import optimize_referees, optimize_referees_reopt, optimize_delegates, optimize_wales
# sol=optimize_wales(2, "md", True, RUN_ENV='NO_CELERY')
# # %%
# ranks = [
# 'Elite Group One',
# 'Elite Group Two',
# '2',
# '3',
# '4A',
# '4B',
# '4C',
# '4D',
# 'AJR',
# 'CJR',
# 'International AR (FIFA List)',
# '1AR',
# '1ART',
# '2AR',
# '3AR',
# ]
# for i,r in enumerate(ranks):
# Category.objects.filter(name=r).update(order=i+1)
# # %%
# for d in Delegate.objects.filter(season=season):
# group,_ = DelGroup.objects.get_or_create(season=season, name=d.category)
# group.delegates.add(d)
# %%