diff --git a/benchcoach/static/css/project.css b/benchcoach/static/css/project.css
index c0b67da..05c0400 100644
--- a/benchcoach/static/css/project.css
+++ b/benchcoach/static/css/project.css
@@ -32,3 +32,9 @@
vertical-align: middle;
white-space: nowrap;
}
+
+.btn-gamechanger {
+ color: #fff;
+ border-color: #1b73bc;
+ background-color: #1b73bc;
+}
diff --git a/benchcoach/static/images/gamechanger.svg b/benchcoach/static/images/gamechanger.svg
new file mode 100644
index 0000000..5da9c86
--- /dev/null
+++ b/benchcoach/static/images/gamechanger.svg
@@ -0,0 +1,80 @@
+
+
+
diff --git a/benchcoach/templates/base.html b/benchcoach/templates/base.html
index 045b0fd..42dc21a 100644
--- a/benchcoach/templates/base.html
+++ b/benchcoach/templates/base.html
@@ -85,6 +85,9 @@
{% translate "GameChanger Preferences" %}
+
+ {% translate "GameChanger Import Roster" %}
+
{% translate "Sign Out" %}
diff --git a/config/settings/base.py b/config/settings/base.py
index c1b3d3e..b6d7867 100644
--- a/config/settings/base.py
+++ b/config/settings/base.py
@@ -272,5 +272,5 @@ SOCIALACCOUNT_FORMS = {"signup": "benchcoach.users.forms.UserSocialSignupForm"}
# Your stuff...
# ------------------------------------------------------------------------------
-INSTALLED_APPS += ["teamsnap", "instagen"]
+INSTALLED_APPS += ["teamsnap", "instagen", "gamechanger"]
SOCIALACCOUNT_PROVIDERS = {"teamsnap": {"SCOPE": ["read", "write"]}}
diff --git a/gamechanger/admin.py b/gamechanger/admin.py
index 156b3cc..30bcba8 100644
--- a/gamechanger/admin.py
+++ b/gamechanger/admin.py
@@ -1,6 +1,8 @@
from django.contrib import admin
-from .models import Account, Preferences
+
+from .models import Account, Player, Preferences
# Register your models here.
admin.site.register(Account)
admin.site.register(Preferences)
+admin.site.register(Player)
diff --git a/gamechanger/forms.py b/gamechanger/forms.py
index 4de4807..627f939 100644
--- a/gamechanger/forms.py
+++ b/gamechanger/forms.py
@@ -1,7 +1,8 @@
from django import forms
from django.forms import ModelForm, formset_factory
-from .models import Preferences, Account, Player
+from .models import Account, Player, Preferences
+
class PreferencesForm(ModelForm):
class Meta:
@@ -13,6 +14,7 @@ class PreferencesForm(ModelForm):
}
labels = {"managed_team_id": "Selected Team"}
+
class AccountForm(ModelForm):
class Meta:
model = Account
@@ -20,16 +22,24 @@ class AccountForm(ModelForm):
widgets = {
"user": forms.HiddenInput(),
"email": forms.EmailInput(),
- "password": forms.PasswordInput()
+ "password": forms.PasswordInput(),
}
+
class PlayerForm(ModelForm):
gamechanger_name = forms.Field()
teamsnap_name = forms.Field()
- gamechanger_id = forms.Field()
+ fname = forms.Field()
+ lname = forms.Field()
class Meta:
model = Player
- fields = ['id', 'teamsnap_member_id']
+ fields = ["id", "teamsnap_member_id"]
+ widgets = {
+ "teamsnap_member_id": forms.Select(
+ choices=(), attrs={"class": "form-control"}
+ ),
+ }
+
PlayerFormSet = formset_factory(PlayerForm, can_delete=True, extra=0)
diff --git a/gamechanger/migrations/0003_player.py b/gamechanger/migrations/0003_player.py
new file mode 100644
index 0000000..0a4c288
--- /dev/null
+++ b/gamechanger/migrations/0003_player.py
@@ -0,0 +1,22 @@
+# Generated by Django 3.2.13 on 2022-06-08 12:04
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('gamechanger', '0002_auto_20220607_1259'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Player',
+ fields=[
+ ('id', models.AutoField(primary_key=True, serialize=False)),
+ ('teamsnap_member_id', models.IntegerField()),
+ ('fname', models.CharField(max_length=30)),
+ ('lname', models.CharField(max_length=30)),
+ ],
+ ),
+ ]
diff --git a/gamechanger/migrations/0004_alter_player_id.py b/gamechanger/migrations/0004_alter_player_id.py
new file mode 100644
index 0000000..f773856
--- /dev/null
+++ b/gamechanger/migrations/0004_alter_player_id.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.2.13 on 2022-06-08 12:37
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('gamechanger', '0003_player'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='player',
+ name='id',
+ field=models.CharField(max_length=30, primary_key=True, serialize=False),
+ ),
+ ]
diff --git a/gamechanger/models.py b/gamechanger/models.py
index ebd041c..363a83c 100644
--- a/gamechanger/models.py
+++ b/gamechanger/models.py
@@ -1,20 +1,36 @@
+from django import forms
from django.db import models
from django.db.models import CharField, EmailField
+
from benchcoach.users.models import User
+
# Create your models here.
class Account(models.Model):
- user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="gamechanger_account")
+ user = models.OneToOneField(
+ User, on_delete=models.CASCADE, related_name="gamechanger_account"
+ )
email = EmailField()
password = CharField(max_length=255)
+
class Preferences(models.Model):
- user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="gamechanger_preferences")
+ user = models.OneToOneField(
+ User, on_delete=models.CASCADE, related_name="gamechanger_preferences"
+ )
season_id = CharField(max_length=255)
team_id = CharField(max_length=255)
+ class Meta:
+ verbose_name_plural = "preferences"
+
+
class Player(models.Model):
- id = models.AutoField(primary_key=True)
+ id = models.CharField(primary_key=True, max_length=30)
teamsnap_member_id = models.IntegerField()
fname = CharField(max_length=30)
lname = CharField(max_length=30)
+
+ widgets = {
+ "teamsnap_member_id": forms.Select(choices=(), attrs={"class": "form-control"}),
+ }
diff --git a/gamechanger/templates/gamechanger/roster.html b/gamechanger/templates/gamechanger/roster.html
index f0c2cf9..bbf1b4f 100644
--- a/gamechanger/templates/gamechanger/roster.html
+++ b/gamechanger/templates/gamechanger/roster.html
@@ -5,7 +5,7 @@
{# {{ player.fname }} {{ player.lname }}#}
{# #}
{# {% endfor %}#}
-