271 lines
8.0 KiB
Python
271 lines
8.0 KiB
Python
# %%
|
|
|
|
# Wichtiger Header + Xpress
|
|
|
|
|
|
|
|
"""
|
|
##############################################################################################################
|
|
"""
|
|
|
|
PROJECT_PATH = '/home/md/Work/ligalytics/leagues_stable/'
|
|
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'
|
|
settings.DATABASES['default']['ENGINE'] = 'django.db.backends.postgresql_psycopg2'
|
|
settings.DATABASES['default']['HOST'] = '0.0.0.0'
|
|
settings.DATABASES['default']['PORT'] = '5432'
|
|
settings.DATABASES['default']['USER'] = 'postgres'
|
|
settings.DATABASES['default']['PASSWORD'] = 'secret123'
|
|
settings.DATABASES['default']['NAME'] = 'mypgsqldb'
|
|
settings.DATABASES['default']['ATOMIC_REQUESTS'] = False
|
|
settings.DATABASES['default']['AUTOCOMMIT'] = True
|
|
settings.DATABASES['default']['CONN_MAX_AGE'] = 0
|
|
settings.DATABASES['default']['CONN_HEALTH_CHECKS'] = False
|
|
settings.DATABASES['default']['OPTIONS'] = {}
|
|
|
|
os.environ["XPRESSDIR"] = "/opt/xpressmp"
|
|
os.environ["XPRESS"] = "/opt/xpressmp/bin"
|
|
os.environ["LD_LIBRARY_PATH"] = os.environ["XPRESSDIR"] + "/lib"
|
|
os.environ["DYLD_LIBRARY_PATH"] = os.environ["XPRESSDIR"] + "/lib"
|
|
os.environ["SHLIB_PATH"] = os.environ["XPRESSDIR"] + "/lib"
|
|
os.environ["LIBPATH"] = os.environ["XPRESSDIR"] + "/lib"
|
|
os.environ["PYTHONPATH"] = os.environ["XPRESSDIR"] + "/lib"
|
|
os.environ["CLASSPATH"] = os.environ["XPRESSDIR"] + "/lib/xprs.jar"
|
|
os.environ["CLASSPATH"] = os.environ["XPRESSDIR"] + "/lib/xprb.jar" + os.pathsep + os.environ["CLASSPATH"]
|
|
os.environ["CLASSPATH"] = os.environ["XPRESSDIR"] + "/lib/xprm.jar" + os.pathsep + os.environ["CLASSPATH"]
|
|
os.environ["PATH"] = os.environ["XPRESSDIR"] + "/bin" + os.pathsep + os.environ["PATH"]
|
|
|
|
|
|
import django
|
|
django.setup()
|
|
|
|
|
|
import csv
|
|
|
|
"""
|
|
##############################################################################################################
|
|
"""
|
|
|
|
# %%
|
|
|
|
|
|
|
|
from scheduler.models import *
|
|
from referees.models import *
|
|
|
|
scenario = Scenario.objects.get(id=10991)
|
|
season= scenario.season
|
|
# Day.objects.filter(season=scenario.season).delete()
|
|
|
|
|
|
# %%
|
|
from referees.optimize import optimize_wales
|
|
optimize_wales(scenario.id, "user_name", True)
|
|
|
|
# %%
|
|
# %%
|
|
# %%
|
|
# %%
|
|
# %%
|
|
# %%
|
|
|
|
# with open('referees/fixtures/metalligen2425/2425_arenas.csv','r') as f:
|
|
# reader = csv.reader(f)
|
|
# next(reader)
|
|
# for row in reader:
|
|
# print(row)
|
|
# latitude,longitude = row[3].replace(',','.').split(' ')
|
|
# print(latitude,longitude)
|
|
# Location.objects.get_or_create(season=scenario.season, name=row[1], city=row[4], latitude=latitude, longitude=longitude)
|
|
# # %%
|
|
|
|
# Role.objects.get_or_create(season=scenario.season,name='Referee',order=0,min_required=2,max_required=2)
|
|
# Role.objects.get_or_create(season=scenario.season,name='Linesperson',order=1,min_required=2,max_required=2)
|
|
|
|
# Category.objects.get_or_create(season=scenario.season,name='A',order=0)
|
|
# Category.objects.get_or_create(season=scenario.season,name='B',order=1)
|
|
# Category.objects.get_or_create(season=scenario.season,name='C',order=2)
|
|
|
|
# # %%
|
|
|
|
# import googlemaps
|
|
# gmaps = googlemaps.Client(
|
|
# key='AIzaSyB76EhR4OqjdXHQUiTkHZC0Svx_7cPGqyU')
|
|
|
|
# with open('referees/fixtures/metalligen2425/2425_officials.csv','r') as f:
|
|
# reader = csv.reader(f)
|
|
# next(reader)
|
|
# for row in reader:
|
|
# print(row)
|
|
# id = row[0]
|
|
# name = row[1]
|
|
# zip_code = row[2]
|
|
# city = row[3]
|
|
# region = row[4]
|
|
# role= row[5]
|
|
# category = row[6]
|
|
# target_games = row[7]
|
|
|
|
# geocode_result = gmaps.geocode(city+" "+zip_code)
|
|
# if len(geocode_result) > 0:
|
|
# location = geocode_result[0]['geometry']['location']
|
|
# print("\t", location)
|
|
# else:
|
|
# location = {'lat': 0, 'lng': 0}
|
|
# print("\t", "NOT FOUND")
|
|
|
|
|
|
# delegate, created = Delegate.objects.get_or_create(season=scenario.season,
|
|
# category= Category.objects.filter(season=scenario.season,name=category).first(),
|
|
# name= name,
|
|
# latitude= location['lat'],
|
|
# longitude= location['lng'],
|
|
# )
|
|
|
|
# location, created = Location.objects.get_or_create(season=scenario.season,
|
|
# name=city,
|
|
# city=city,
|
|
# type=3,
|
|
# latitude=location['lat'],
|
|
# longitude=location['lng'])
|
|
|
|
# delegate.location = location
|
|
# delegate.save()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Delegate.objects.filter(season=scenario.season).update(country=Country.objects.get(season=scenario.season,name='Denmark'))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# %%
|
|
|
|
# competition, created = Competition.objects.get_or_create(season=season,name='Metalligen 2425')
|
|
|
|
# # %%
|
|
|
|
# RefGame.objects.filter(scenario=scenario).delete()
|
|
# with open('referees/fixtures/metalligen2425/2425_schedule.csv','r') as f:
|
|
# reader = csv.reader(f)
|
|
# next(reader)
|
|
# for row in reader:
|
|
# # print(row)
|
|
|
|
# day = datetime.datetime.strptime(row[2],'%m/%d/%Y')
|
|
# date, created = Day.objects.get_or_create(
|
|
# season=season,
|
|
# date=day,
|
|
# day=day.strftime("%d-%m-%Y")
|
|
# )
|
|
|
|
# time = row[4]
|
|
# timeslot, created = TimeSlot.objects.get_or_create(
|
|
# season=season,
|
|
# name=time,
|
|
# start=time,
|
|
# )
|
|
|
|
|
|
# gameID = row[6]
|
|
|
|
# homeTeam = Team.objects.filter(season=season,name=row[7]).first()
|
|
# awayTeam = Team.objects.filter(season=season,name=row[8]).first()
|
|
|
|
# if not homeTeam and awayTeam:
|
|
# print("ERROR: ", row)
|
|
# continue
|
|
|
|
# arena = Location.objects.filter(season=season,name=row[9]).first()
|
|
|
|
# RefGame.objects.get_or_create(
|
|
# homeTeam=homeTeam,
|
|
# awayTeam=awayTeam,
|
|
# scenario=scenario,
|
|
# timeslot=timeslot,
|
|
# day=date,
|
|
# location=arena,
|
|
# competition=competition,
|
|
# )
|
|
|
|
|
|
|
|
|
|
# # %%
|
|
# Day.objects.filter(season=season).update(round=1)
|
|
|
|
# %%
|
|
# teams = Team.objects.filter(season=season)
|
|
# firstday = Day.objects.filter(season=season).order_by('date').first()
|
|
# lastday = Day.objects.filter(season=season).order_by('date').last()
|
|
|
|
# print(firstday.date, lastday.date)
|
|
|
|
# # %%
|
|
# RefWish.objects.filter(scenario=scenario).delete()
|
|
# with open('referees/fixtures/metalligen2425/2425_officials.csv','r') as f:
|
|
# reader = csv.reader(f)
|
|
# next(reader)
|
|
# for row in reader:
|
|
# print(row)
|
|
# id = row[0]
|
|
# name = row[1]
|
|
# zip_code = row[2]
|
|
# city = row[3]
|
|
# region = row[4]
|
|
# role= row[5]
|
|
# category = row[6]
|
|
# target_games = row[7]
|
|
|
|
# delegate = Delegate.objects.filter(season=season,name=name).first()
|
|
|
|
# wish = RefWish.objects.create(
|
|
# scenario=scenario,
|
|
# startFirstDay=True,
|
|
# endLastDay=True,
|
|
# day=firstday,
|
|
# day2=lastday,
|
|
# minGames=target_games,
|
|
# maxGames=target_games,
|
|
# reason=f'Target {target_games} Games for {delegate.name} ({delegate.category.name})',
|
|
# prio='A'
|
|
# )
|
|
|
|
|
|
# wish.teams.add(*teams)
|
|
# wish.delegates.add(delegate)
|
|
|
|
# # # %%
|
|
# for d in Day.objects.filter(season=season):
|
|
# d.day = d.date.strftime("%Y-%m-%d")
|
|
# d.save()
|
|
# # date=day,
|
|
# # day=day.strftime("%d-%m-%Y")
|
|
# # %%
|
|
|
|
# for r in Requirement.objects.filter(season=season):
|
|
# print(r.competition,r.role,r.classification)
|
|
# # %%
|
|
|
|
|
|
# game = RefGame.objects.filter(scenario=scenario).first()
|
|
|
|
# # %%
|
|
# for a in Assignment.objects.filter(game=game):
|
|
# print(a.game,a.role,a.delegate)
|
|
# # %%
|
|
# Delegate.objects.filter(season=season,roles__isnull=True).delete()
|
|
# # %%
|
|
|
|
# %%
|