consolidated objects into one benchcoach app
created benchcoachproject app to contain all the settings and stuff some other changes that got grouped with this commit is the adding the ApiObject to the TeamSnap object model
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
from django import forms
|
||||
from .models import LineupEntry, Event
|
||||
from players.models import Player
|
||||
from django.forms import modelformset_factory, inlineformset_factory, BaseModelFormSet,formset_factory
|
||||
from crispy_forms.helper import FormHelper, Layout
|
||||
import benchcoach.models
|
||||
from django.forms import modelformset_factory
|
||||
|
||||
class LineupEntryForm(forms.ModelForm):
|
||||
availability = None
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-11-21 00:35
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='event',
|
||||
name='formatted_title',
|
||||
field=models.CharField(max_length=50, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='event',
|
||||
name='teamsnap_id',
|
||||
field=models.CharField(max_length=10, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='location',
|
||||
name='teamsnap_id',
|
||||
field=models.CharField(max_length=10, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='member',
|
||||
name='teamsnap_id',
|
||||
field=models.CharField(max_length=10, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='team',
|
||||
name='teamsnap_id',
|
||||
field=models.CharField(max_length=10, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='teamsnap_id',
|
||||
field=models.CharField(max_length=10, unique=True),
|
||||
),
|
||||
]
|
||||
18
teamsnap/migrations/0002_event_game_type.py
Normal file
18
teamsnap/migrations/0002_event_game_type.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.2.6 on 2021-12-18 23:37
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='event',
|
||||
name='game_type',
|
||||
field=models.CharField(max_length=50, null=True),
|
||||
),
|
||||
]
|
||||
@@ -1,60 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-11-21 15:40
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0002_auto_20211121_0035'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='event',
|
||||
old_name='event',
|
||||
new_name='bencoach_event',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='location',
|
||||
old_name='venue',
|
||||
new_name='bencoach_venue',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='member',
|
||||
old_name='player',
|
||||
new_name='bencoach_player',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='team',
|
||||
old_name='team',
|
||||
new_name='bencoach_team',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='member',
|
||||
name='first_name',
|
||||
field=models.CharField(max_length=50, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='member',
|
||||
name='is_non_player',
|
||||
field=models.BooleanField(default=False),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='member',
|
||||
name='jersey_number',
|
||||
field=models.IntegerField(null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='member',
|
||||
name='last_name',
|
||||
field=models.CharField(max_length=50, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='member',
|
||||
name='team',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='teamsnap.team'),
|
||||
),
|
||||
]
|
||||
108
teamsnap/migrations/0003_auto_20211219_2058.py
Normal file
108
teamsnap/migrations/0003_auto_20211219_2058.py
Normal file
@@ -0,0 +1,108 @@
|
||||
# Generated by Django 3.2.6 on 2021-12-20 02:58
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('benchcoach', '0002_alter_player_jersey_number'),
|
||||
('teamsnap', '0002_event_game_type'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='availability',
|
||||
name='managed_by_team',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='event',
|
||||
name='managed_by_team',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='location',
|
||||
name='managed_by_team',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='member',
|
||||
name='managed_by_team',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='opponent',
|
||||
name='managed_by_team',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='availability',
|
||||
name='team',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='teamsnap.team', verbose_name='managed by team'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='event',
|
||||
name='team',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='teamsnap.team', verbose_name='managed by team'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='lineupentry',
|
||||
name='benchcoach_object',
|
||||
field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='teamsnap_lineupentry', to='benchcoach.positioning'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='lineupentry',
|
||||
name='team',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='teamsnap.team', verbose_name='managed by team'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='location',
|
||||
name='team',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='teamsnap.team', verbose_name='managed by team'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='member',
|
||||
name='team',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='teamsnap.team', verbose_name='managed by team'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='opponent',
|
||||
name='team',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='teamsnap.team', verbose_name='managed by team'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='availability',
|
||||
name='benchcoach_object',
|
||||
field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='teamsnap_availability', to='benchcoach.availability'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='event',
|
||||
name='benchcoach_object',
|
||||
field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='teamsnap_event', to='benchcoach.event'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='location',
|
||||
name='benchcoach_object',
|
||||
field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='teamsnap_location', to='benchcoach.venue'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='member',
|
||||
name='benchcoach_object',
|
||||
field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='teamsnap_member', to='benchcoach.player'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='opponent',
|
||||
name='benchcoach_object',
|
||||
field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='teamsnap_opponent', to='benchcoach.team'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='team',
|
||||
name='benchcoach_object',
|
||||
field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='teamsnap_team', to='benchcoach.team'),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='lineupentry',
|
||||
unique_together=set(),
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='lineupentry',
|
||||
name='managed_by_team',
|
||||
),
|
||||
]
|
||||
@@ -1,17 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-11-21 15:44
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0003_auto_20211121_1540'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='member',
|
||||
name='name',
|
||||
),
|
||||
]
|
||||
@@ -1,30 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-11-21 16:11
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('lineups', '0007_alter_positioning_position'),
|
||||
('teamsnap', '0004_remove_member_name'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Availability',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('teamsnap_id', models.CharField(max_length=10, unique=True)),
|
||||
('status_code', models.SmallIntegerField(null=True)),
|
||||
('benchcoach_availability', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='lineups.availability')),
|
||||
('event', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='teamsnap.event')),
|
||||
('member', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='teamsnap.member')),
|
||||
('team', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='teamsnap.team')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -1,18 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-11-21 16:25
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0005_availability'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='availability',
|
||||
name='status_code',
|
||||
field=models.SmallIntegerField(choices=[(1, 'Yes'), (0, 'No'), (2, 'Maybe'), (None, 'Unknown')], default=None, null=True),
|
||||
),
|
||||
]
|
||||
@@ -1,24 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-11-21 16:28
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0006_alter_availability_status_code'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='event',
|
||||
name='team',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='teamsnap.team'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='event',
|
||||
name='opponent',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='opponent', to='teamsnap.team'),
|
||||
),
|
||||
]
|
||||
@@ -1,17 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-11-21 16:36
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0007_auto_20211121_1628'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='availability',
|
||||
options={'verbose_name_plural': 'availabilities'},
|
||||
),
|
||||
]
|
||||
@@ -1,23 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-11-21 17:57
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0008_alter_availability_options'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='event',
|
||||
name='points_for_opponent',
|
||||
field=models.PositiveSmallIntegerField(null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='event',
|
||||
name='points_for_team',
|
||||
field=models.PositiveSmallIntegerField(null=True),
|
||||
),
|
||||
]
|
||||
@@ -1,19 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-11-21 18:26
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0009_auto_20211121_1757'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='event',
|
||||
name='is_game',
|
||||
field=models.BooleanField(default=False),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -1,27 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-11-21 18:47
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0010_event_is_game'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='LineupEntry',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('label', models.PositiveSmallIntegerField(blank=True, choices=[(11, 'EH'), (1, 'P'), (2, 'C'), (3, '1B'), (4, '2B'), (5, '3B'), (6, 'SS'), (7, 'LF'), (8, 'CF'), (9, 'RF'), (10, 'DH')], default=None, null=True)),
|
||||
('sequence', models.PositiveSmallIntegerField(default=0, null=True)),
|
||||
('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='teamsnap.event')),
|
||||
('member', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='teamsnap.member')),
|
||||
],
|
||||
options={
|
||||
'unique_together': {('member', 'event')},
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -1,23 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-11-21 20:10
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0011_lineupentry'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='lineupentry',
|
||||
name='name',
|
||||
field=models.CharField(max_length=50, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='lineupentry',
|
||||
name='teamsnap_id',
|
||||
field=models.CharField(max_length=10, null=True, unique=True),
|
||||
),
|
||||
]
|
||||
@@ -1,17 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-11-21 20:10
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0012_auto_20211121_2010'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='lineupentry',
|
||||
name='name',
|
||||
),
|
||||
]
|
||||
@@ -1,18 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-11-21 20:46
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0013_remove_lineupentry_name'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='lineupentry',
|
||||
name='teamsnap_id',
|
||||
field=models.CharField(blank=True, max_length=10, null=True, unique=True),
|
||||
),
|
||||
]
|
||||
@@ -1,33 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-12-10 17:44
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0014_alter_lineupentry_teamsnap_id'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='event',
|
||||
old_name='bencoach_event',
|
||||
new_name='benchcoach_event',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='location',
|
||||
old_name='bencoach_venue',
|
||||
new_name='benchcoach_venue',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='member',
|
||||
old_name='bencoach_player',
|
||||
new_name='benchcoach_player',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='lineupentry',
|
||||
name='sequence',
|
||||
field=models.PositiveSmallIntegerField(blank=True, default=0, null=True),
|
||||
),
|
||||
]
|
||||
@@ -1,37 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-12-12 22:40
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0015_auto_20211210_1744'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='availability',
|
||||
old_name='benchcoach_availability',
|
||||
new_name='benchcoach_object',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='event',
|
||||
old_name='benchcoach_event',
|
||||
new_name='benchcoach_object',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='location',
|
||||
old_name='benchcoach_venue',
|
||||
new_name='benchcoach_object',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='member',
|
||||
old_name='benchcoach_player',
|
||||
new_name='benchcoach_object',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='event',
|
||||
name='name',
|
||||
),
|
||||
]
|
||||
@@ -1,32 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-12-12 23:56
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0016_auto_20211212_2240'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='user',
|
||||
name='access_token',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='email',
|
||||
field=models.EmailField(max_length=254, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='first_name',
|
||||
field=models.CharField(max_length=50, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='last_name',
|
||||
field=models.CharField(max_length=50, null=True),
|
||||
),
|
||||
]
|
||||
@@ -1,18 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-12-13 00:30
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0017_auto_20211212_2356'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='managed_teams',
|
||||
field=models.ManyToManyField(to='teamsnap.Team'),
|
||||
),
|
||||
]
|
||||
@@ -1,72 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-12-16 18:51
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('events', '0004_delete_availability'),
|
||||
('teamsnap', '0018_user_managed_teams'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='availability',
|
||||
old_name='team',
|
||||
new_name='managed_by_team',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='event',
|
||||
old_name='team',
|
||||
new_name='managed_by_team',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='member',
|
||||
old_name='team',
|
||||
new_name='managed_by_team',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='team',
|
||||
old_name='bencoach_team',
|
||||
new_name='benchcoach_object',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='lineupentry',
|
||||
name='managed_by_team',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='teamsnap.team'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='location',
|
||||
name='managed_by_team',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='teamsnap.team'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='team',
|
||||
name='managed_by_team',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='teamsnap.team'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='event',
|
||||
name='benchcoach_object',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='teamsnap_event', to='events.event'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Opponent',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('teamsnap_id', models.CharField(max_length=10, unique=True)),
|
||||
('name', models.CharField(max_length=50, null=True)),
|
||||
('managed_by_team', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='teamsnap.team')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='event',
|
||||
name='opponent',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='opponent', to='teamsnap.opponent'),
|
||||
),
|
||||
]
|
||||
@@ -1,41 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-12-16 19:03
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0019_auto_20211216_1851'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='availability',
|
||||
name='teamsnap_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='event',
|
||||
name='teamsnap_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='location',
|
||||
name='teamsnap_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='member',
|
||||
name='teamsnap_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='opponent',
|
||||
name='teamsnap_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='team',
|
||||
name='teamsnap_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='user',
|
||||
name='teamsnap_id',
|
||||
),
|
||||
]
|
||||
@@ -1,53 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-12-16 19:05
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0020_auto_20211216_1903'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='availability',
|
||||
name='id',
|
||||
field=models.CharField(max_length=10, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='event',
|
||||
name='id',
|
||||
field=models.CharField(max_length=10, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='lineupentry',
|
||||
name='id',
|
||||
field=models.CharField(max_length=10, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='location',
|
||||
name='id',
|
||||
field=models.CharField(max_length=10, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='member',
|
||||
name='id',
|
||||
field=models.CharField(max_length=10, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='opponent',
|
||||
name='id',
|
||||
field=models.CharField(max_length=10, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='team',
|
||||
name='id',
|
||||
field=models.CharField(max_length=10, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='id',
|
||||
field=models.CharField(max_length=10, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
]
|
||||
@@ -1,53 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-12-16 19:09
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0021_auto_20211216_1905'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='availability',
|
||||
name='id',
|
||||
field=models.CharField(max_length=50, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='event',
|
||||
name='id',
|
||||
field=models.CharField(max_length=50, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='lineupentry',
|
||||
name='id',
|
||||
field=models.CharField(max_length=50, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='location',
|
||||
name='id',
|
||||
field=models.CharField(max_length=50, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='member',
|
||||
name='id',
|
||||
field=models.CharField(max_length=50, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='opponent',
|
||||
name='id',
|
||||
field=models.CharField(max_length=50, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='team',
|
||||
name='id',
|
||||
field=models.CharField(max_length=50, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='id',
|
||||
field=models.CharField(max_length=50, primary_key=True, serialize=False, unique=True),
|
||||
),
|
||||
]
|
||||
@@ -1,21 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-12-16 19:51
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0022_auto_20211216_1909'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='lineupentry',
|
||||
name='teamsnap_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='team',
|
||||
name='managed_by_team',
|
||||
),
|
||||
]
|
||||
@@ -1,109 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-12-16 23:03
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teamsnap', '0023_auto_20211216_1951'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='availability',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(default='2000-10-31T01:30:00.000-05:00'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='availability',
|
||||
name='updated_at',
|
||||
field=models.DateTimeField(default='2000-10-31T01:30:00.000-05:00'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='event',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(default='2000-10-31T01:30:00.000-05:00'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='event',
|
||||
name='updated_at',
|
||||
field=models.DateTimeField(default='2000-10-31T01:30:00.000-05:00'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='lineupentry',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(default='2000-10-31T01:30:00.000-05:00'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='lineupentry',
|
||||
name='updated_at',
|
||||
field=models.DateTimeField(default='2000-10-31T01:30:00.000-05:00'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='location',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(default='2000-10-31T01:30:00.000-05:00'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='location',
|
||||
name='updated_at',
|
||||
field=models.DateTimeField(default='2000-10-31T01:30:00.000-05:00'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='member',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(default='2000-10-31T01:30:00.000-05:00'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='member',
|
||||
name='updated_at',
|
||||
field=models.DateTimeField(default='2000-10-31T01:30:00.000-05:00'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='opponent',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(default='2000-10-31T01:30:00.000-05:00'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='opponent',
|
||||
name='updated_at',
|
||||
field=models.DateTimeField(default='2000-10-31T01:30:00.000-05:00'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='team',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(default='2000-10-31T01:30:00.000-05:00'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='team',
|
||||
name='updated_at',
|
||||
field=models.DateTimeField(default='2000-10-31T01:30:00.000-05:00'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(default='2000-10-31T01:30:00.000-05:00'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='updated_at',
|
||||
field=models.DateTimeField(default='2000-10-31T01:30:00.000-05:00'),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -1,20 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-12-16 23:31
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teams', '0001_initial'),
|
||||
('teamsnap', '0024_auto_20211216_1703'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='opponent',
|
||||
name='benchcoach_object',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='teams.team'),
|
||||
),
|
||||
]
|
||||
@@ -1,100 +0,0 @@
|
||||
# Generated by Django 3.2.6 on 2021-12-17 02:03
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('teams', '0001_initial'),
|
||||
('teamsnap', '0025_opponent_benchcoach_object'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='availability',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='availability',
|
||||
name='updated_at',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='event',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='event',
|
||||
name='updated_at',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='lineupentry',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='lineupentry',
|
||||
name='updated_at',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='location',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='location',
|
||||
name='updated_at',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='member',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='member',
|
||||
name='updated_at',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='opponent',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='opponent',
|
||||
name='updated_at',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='team',
|
||||
name='benchcoach_object',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='teamsnapteam', to='teams.team'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='team',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='team',
|
||||
name='updated_at',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='updated_at',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
]
|
||||
@@ -1,17 +1,14 @@
|
||||
from django.db import models
|
||||
|
||||
import lineups.models
|
||||
import teams.models
|
||||
import venues.models
|
||||
import players.models
|
||||
import events.models
|
||||
import benchcoach.models
|
||||
import teamsnap.teamsnap.api
|
||||
|
||||
class TeamsnapBaseModel(models.Model):
|
||||
type = None
|
||||
id = models.CharField(max_length=50, unique=True, primary_key=True)
|
||||
name = models.CharField(max_length=50, null=True)
|
||||
created_at = models.DateTimeField(null=True)
|
||||
updated_at = models.DateTimeField(null=True)
|
||||
ApiObject = teamsnap.teamsnap.api.ApiObject
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
@@ -25,44 +22,124 @@ class TeamsnapBaseModel(models.Model):
|
||||
|
||||
class Team(TeamsnapBaseModel):
|
||||
type = 'team'
|
||||
managed_by_team = None
|
||||
benchcoach_object = models.ForeignKey(teams.models.Team, null=True, on_delete=models.CASCADE,related_name="teamsnapteam")
|
||||
name = models.CharField(max_length=50, null=True)
|
||||
benchcoach_object = models.OneToOneField(
|
||||
benchcoach.models.Team,
|
||||
null=True,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="teamsnap_team"
|
||||
)
|
||||
ApiObject = teamsnap.teamsnap.api.Team
|
||||
|
||||
@classmethod
|
||||
def update_or_create_from_teamsnap_api(cls, teamsnap_data):
|
||||
fields = ['id', 'name', 'created_at', 'updated_at']
|
||||
data = {k: teamsnap_data[k] for k in fields}
|
||||
team, created = cls.objects.update_or_create(**data)
|
||||
return (team, created)
|
||||
|
||||
class User(TeamsnapBaseModel):
|
||||
type = 'user'
|
||||
name = None
|
||||
first_name = models.CharField(max_length=50, null=True)
|
||||
last_name = models.CharField(max_length = 50, null=True)
|
||||
email = models.EmailField(null=True)
|
||||
managed_teams = models.ManyToManyField(Team)
|
||||
ApiObject = teamsnap.teamsnap.api.User
|
||||
|
||||
@classmethod
|
||||
def update_or_create_from_teamsnap_api(cls, teamsnap_data):
|
||||
fields = ['id', 'first_name', 'last_name', 'email']
|
||||
user_data = {k:teamsnap_data[k] for k in fields}
|
||||
managed_teams = []
|
||||
for managed_team_id in teamsnap_data['managed_team_ids']:
|
||||
obj, created = Team.objects.get_or_create(id=managed_team_id)
|
||||
managed_teams.append(obj)
|
||||
pass
|
||||
user, created = cls.objects.update_or_create(**user_data)
|
||||
user.managed_teams.add(*managed_teams)
|
||||
return (user, created)
|
||||
|
||||
class TeamsnapManagedObjectModel(TeamsnapBaseModel):
|
||||
managed_by_team = models.ForeignKey(Team, null=True, on_delete=models.CASCADE)
|
||||
team = models.ForeignKey(
|
||||
Team,
|
||||
verbose_name="managed by team",
|
||||
null=True,
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
@property
|
||||
def url(self, endpoint='view'):
|
||||
return f"https://go.teamsnap.com/{self.managed_by_team.id}/{self.type}/{endpoint}/{self.id}"
|
||||
return f"https://go.teamsnap.com/{self.team.id}/{self.type}/{endpoint}/{self.id}"
|
||||
|
||||
class Opponent(TeamsnapManagedObjectModel):
|
||||
type = 'opponent'
|
||||
benchcoach_object = models.ForeignKey(teams.models.Team, null=True, on_delete=models.CASCADE)
|
||||
name = models.CharField(max_length=50, null=True)
|
||||
benchcoach_object = models.OneToOneField(
|
||||
benchcoach.models.Team,
|
||||
null=True,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="teamsnap_opponent"
|
||||
)
|
||||
ApiObject = teamsnap.teamsnap.api.Opponent
|
||||
|
||||
@classmethod
|
||||
def update_or_create_from_teamsnap_api(cls, teamsnap_data):
|
||||
fields = ['id', 'name', 'created_at', 'updated_at']
|
||||
opponent_data = {k: teamsnap_data[k] for k in fields}
|
||||
team, created = Team.objects.get_or_create(id=teamsnap_data['team_id'])
|
||||
opponent, created = cls.objects.update_or_create(**opponent_data)
|
||||
opponent.team = team
|
||||
return (opponent, created)
|
||||
|
||||
class Location(TeamsnapManagedObjectModel):
|
||||
benchcoach_object = models.ForeignKey(venues.models.Venue, null=True, on_delete=models.CASCADE)
|
||||
type = 'location'
|
||||
name = models.CharField(max_length=50, null=True)
|
||||
benchcoach_object = models.OneToOneField(
|
||||
benchcoach.models.Venue,
|
||||
null=True,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="teamsnap_location"
|
||||
)
|
||||
ApiObject = teamsnap.teamsnap.api.Location
|
||||
|
||||
@classmethod
|
||||
def update_or_create_from_teamsnap_api(cls, teamsnap_data):
|
||||
fields = ['id', 'name', 'created_at', 'updated_at']
|
||||
opponent_data = {k: teamsnap_data[k] for k in fields}
|
||||
team, created = Team.objects.get_or_create(id=teamsnap_data['team_id'])
|
||||
location, created = cls.objects.update_or_create(**opponent_data)
|
||||
location.team = team
|
||||
return (location, created)
|
||||
|
||||
class Member(TeamsnapManagedObjectModel):
|
||||
# url format is
|
||||
# f"https://go.teamsnap.com/{self.team.teamsnap_id}/roster/player/{self.teamsnap_id}"
|
||||
# f"https://go.teamsnap.com/{self.team.teamsnap_id}/roster/edit/{self.teamsnap_id}"
|
||||
type = 'member'
|
||||
benchcoach_object = models.ForeignKey(players.models.Player, null=True, on_delete=models.CASCADE)
|
||||
name = models.CharField(max_length=50, null=True)
|
||||
benchcoach_object = models.OneToOneField(
|
||||
benchcoach.models.Player,
|
||||
null=True,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="teamsnap_member"
|
||||
)
|
||||
first_name = models.CharField(max_length = 50, null=True)
|
||||
last_name = models.CharField(max_length = 50, null=True)
|
||||
jersey_number = models.IntegerField(null=True)
|
||||
is_non_player = models.BooleanField()
|
||||
ApiObject = teamsnap.teamsnap.api.Member
|
||||
|
||||
@classmethod
|
||||
def update_or_create_from_teamsnap_api(cls, teamsnap_data):
|
||||
fields = ['id', 'created_at', 'updated_at', 'first_name', 'last_name', 'jersey_number','is_non_player']
|
||||
member_data = {k: teamsnap_data[k] for k in fields}
|
||||
team, created = Team.objects.get_or_create(id=teamsnap_data['team_id'])
|
||||
member, created = cls.objects.update_or_create(**member_data)
|
||||
member.team = team
|
||||
return (member, created)
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.last_name}, {self.first_name} ({self.id})"
|
||||
@@ -76,8 +153,12 @@ class Event(TeamsnapManagedObjectModel):
|
||||
# f"https://go.teamsnap.com/{self.team.teamsnap_id}/schedule/view_game/{self.teamsnap_id}"
|
||||
# f"https://go.teamsnap.com/{self.team.teamsnap_id}/schedule/edit_game/{self.teamsnap_id}"
|
||||
type = 'event'
|
||||
name = None
|
||||
benchcoach_object = models.ForeignKey(events.models.Event, null=True, on_delete=models.CASCADE, related_name ='teamsnap_event')
|
||||
benchcoach_object = models.OneToOneField(
|
||||
benchcoach.models.Event,
|
||||
null=True,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="teamsnap_event"
|
||||
)
|
||||
label = models.CharField(max_length = 50, null=True)
|
||||
start_date = models.DateTimeField(null=True)
|
||||
opponent = models.ForeignKey(Opponent, null=True, on_delete=models.CASCADE, related_name="opponent")
|
||||
@@ -86,6 +167,33 @@ class Event(TeamsnapManagedObjectModel):
|
||||
points_for_opponent = models.PositiveSmallIntegerField(null=True)
|
||||
points_for_team = models.PositiveSmallIntegerField(null=True)
|
||||
is_game = models.BooleanField()
|
||||
game_type = models.CharField(max_length = 50, null=True)
|
||||
ApiObject = teamsnap.teamsnap.api.Event
|
||||
|
||||
@classmethod
|
||||
def update_or_create_from_teamsnap_api(cls, teamsnap_data):
|
||||
fields = [
|
||||
'id',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
'label',
|
||||
'start_date',
|
||||
'formatted_title',
|
||||
'points_for_opponent',
|
||||
'points_for_team',
|
||||
'is_game',
|
||||
'game_type'
|
||||
]
|
||||
event_data = {k: teamsnap_data[k] for k in fields}
|
||||
location, created = Location.objects.get_or_create(id=teamsnap_data['location_id'])
|
||||
team, created = Team.objects.get_or_create(id=teamsnap_data['team_id'])
|
||||
event, created = cls.objects.update_or_create(**event_data)
|
||||
event.location = location
|
||||
if teamsnap_data['opponent_id']:
|
||||
opponent, created = Opponent.objects.get_or_create(id=teamsnap_data['opponent_id'])
|
||||
event.opponent = opponent
|
||||
event.team = team
|
||||
return (location, created)
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.formatted_title} ({self.id})"
|
||||
@@ -101,11 +209,16 @@ class Availability(TeamsnapManagedObjectModel):
|
||||
(MAYBE, 'Maybe'),
|
||||
(UNKNOWN, 'Unknown')
|
||||
]
|
||||
name = None
|
||||
event = models.ForeignKey(Event, null=True, on_delete=models.CASCADE)
|
||||
member = models.ForeignKey(Member, null=True, on_delete=models.CASCADE)
|
||||
benchcoach_object = models.ForeignKey(lineups.models.Availability, null=True, on_delete=models.CASCADE)
|
||||
benchcoach_object = models.OneToOneField(
|
||||
benchcoach.models.Availability,
|
||||
null=True,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="teamsnap_availability"
|
||||
)
|
||||
status_code = models.SmallIntegerField(null=True, choices=status_codes, default=None)
|
||||
ApiObject = teamsnap.teamsnap.api.Availability
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.member} - {self.event} ({self.id})"
|
||||
@@ -113,8 +226,25 @@ class Availability(TeamsnapManagedObjectModel):
|
||||
class Meta:
|
||||
verbose_name_plural = "availabilities"
|
||||
|
||||
@classmethod
|
||||
def update_or_create_from_teamsnap_api(cls, teamsnap_data):
|
||||
fields = [
|
||||
'id',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
'status_code'
|
||||
]
|
||||
availability_data = {k: teamsnap_data[k] for k in fields}
|
||||
member, created = Member.objects.get_or_create(id=teamsnap_data['member_id'])
|
||||
team, created = Team.objects.get_or_create(id=teamsnap_data['team_id'])
|
||||
event, created = Event.objects.get_or_create(id=teamsnap_data['event_id'])
|
||||
availability, created = cls.objects.update_or_create(**availability_data)
|
||||
availability.team = team
|
||||
availability.event = event
|
||||
availability.member = member
|
||||
return (availability, created)
|
||||
|
||||
class LineupEntry(TeamsnapManagedObjectModel):
|
||||
name = None
|
||||
member = models.ForeignKey(Member, on_delete=models.CASCADE)
|
||||
event = models.ForeignKey(Event, on_delete=models.CASCADE)
|
||||
positions = [
|
||||
@@ -130,8 +260,31 @@ class LineupEntry(TeamsnapManagedObjectModel):
|
||||
(9, 'RF'),
|
||||
(10,'DH')
|
||||
]
|
||||
benchcoach_object = models.OneToOneField(
|
||||
benchcoach.models.Positioning,
|
||||
null=True,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="teamsnap_lineupentry"
|
||||
)
|
||||
label = models.PositiveSmallIntegerField(choices=positions, default=None, null=True, blank=True)
|
||||
sequence = models.PositiveSmallIntegerField(default=0, null=True, blank=True)
|
||||
ApiObject = teamsnap.teamsnap.api.EventLineupEntry
|
||||
|
||||
class Meta:
|
||||
unique_together = ('member', 'event',)
|
||||
@classmethod
|
||||
def update_or_create_from_teamsnap_api(cls, teamsnap_data):
|
||||
fields = [
|
||||
'id',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
'label',
|
||||
'sequence'
|
||||
]
|
||||
lineup_entry_data = {k: teamsnap_data[k] for k in fields}
|
||||
member, created = Member.objects.get_or_create(id=teamsnap_data['member_id'])
|
||||
team, created = Team.objects.get_or_create(id=teamsnap_data['team_id'])
|
||||
event, created = Event.objects.get_or_create(id=teamsnap_data['event_id'])
|
||||
lineup_entry, created = cls.objects.update_or_create(**lineup_entry_data)
|
||||
lineup_entry.team = team
|
||||
lineup_entry.event = event
|
||||
lineup_entry.member = member
|
||||
return (lineup_entry, created)
|
||||
Reference in New Issue
Block a user