Skip to content

Commit

Permalink
Added Kreisliga base setup
Browse files Browse the repository at this point in the history
  • Loading branch information
danielengelhardt committed Aug 13, 2023
1 parent ade915c commit 2feccf7
Show file tree
Hide file tree
Showing 113 changed files with 3,198 additions and 1,723 deletions.
Binary file modified .DS_Store
Binary file not shown.
5 changes: 5 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[flake8]
exclude = .git,__pycache__,venv,*/migrations
max-line-length = 120
per-file-ignores =
*/__init__.py: F401
136 changes: 100 additions & 36 deletions DSTBundesliga/apps/dstffbl/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,75 +3,133 @@
import pytz
from django.contrib import admin
from django.http import HttpResponse
from django.urls import reverse
from django.utils.html import format_html

from DSTBundesliga.apps.dstffbl.models import News, Announcement, SeasonUser, SeasonInvitation, SeasonRegistration, \
DSTEmail
from DSTBundesliga.apps.dstffbl.models import (
News,
Announcement,
SeasonUser,
SeasonInvitation,
SeasonRegistration,
DSTEmail,
)


def download_season_users_csv(modeladmin, request, queryset):
REGION = {
1: 'Nord',
2: 'Ost',
3: 'Süd',
4: 'West',
5: 'Ausland',
1: "Nord",
2: "Ost",
3: "Süd",
4: "West",
5: "Ausland",
}

response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment;filename=season_users.csv'
response = HttpResponse(content_type="text/csv")
response["Content-Disposition"] = "attachment;filename=season_users.csv"
writer = csv.writer(response)

writer.writerow(["Email", "Sleeper Username", "Sleeper ID", "Region", "Neuer Spieler", "Liga letzte Saison",
"Liga letzte Saison ID", "Potentieller Komissioner", "Anmeldezeitpunkt"])
writer.writerow(
[
"Email",
"Sleeper Username",
"Sleeper ID",
"Region",
"Neuer Spieler",
"Liga letzte Saison",
"Liga letzte Saison ID",
"Potentieller Komissioner",
"Anmeldezeitpunkt",
]
)

for su in queryset:
new_player = "Ja" if su.new_player else "Nein"
league, league_id = (
su.last_years_league.sleeper_name, su.last_years_league.sleeper_id) if su.last_years_league else ("", "")
(su.last_years_league.sleeper_name, su.last_years_league.sleeper_id)
if su.last_years_league
else ("", "")
)
commish = "Ja" if su.possible_commish else "Nein"
region = REGION.get(su.region)
writer.writerow(
[su.user.email, su.dst_player.display_name, su.sleeper_id, region, new_player, league, league_id, commish,
su.registration.registration_ts.astimezone(pytz.timezone('Europe/Berlin')).strftime("%d.%m.%Y, %H:%M:%S")])
[
su.user.email,
su.dst_player.display_name,
su.sleeper_id,
region,
new_player,
league,
league_id,
commish,
su.registration.registration_ts.astimezone(
pytz.timezone("Europe/Berlin")
).strftime("%d.%m.%Y, %H:%M:%S"),
]
)

return response


class NewsAdmin(admin.ModelAdmin):
list_display = ['date', 'title', 'content']
ordering = ['-date']
list_display = ["date", "title", "content"]
ordering = ["-date"]


class AnnouncementAdmin(admin.ModelAdmin):
list_display = ['valid_from', 'valid_to', 'content']
ordering = ['-valid_from', '-valid_to']
list_display = ["valid_from", "valid_to", "content"]
ordering = ["-valid_from", "-valid_to"]


class SeasonUserAdmin(admin.ModelAdmin):
def get_sleeper_username(self, obj):
return obj.dst_player.display_name

get_sleeper_username.short_description = 'Sleeper Username'

list_display = ['email', 'get_sleeper_username', 'sleeper_id', 'region', 'new_player', 'last_years_league',
'possible_commish', 'confirm_ts']
search_fields = ['user__email', 'dst_player__display_name', 'sleeper_id', 'last_years_league__sleeper_name']
list_filter = ('season', 'region', 'new_player', 'possible_commish')
get_sleeper_username.short_description = "Sleeper Username"

list_display = [
"email",
"get_sleeper_username",
"sleeper_id",
"region",
"new_player",
"last_years_league",
"possible_commish",
"confirm_ts",
]
search_fields = [
"user__email",
"dst_player__display_name",
"sleeper_id",
"last_years_league__sleeper_name",
]
list_filter = ("season", "region", "new_player", "possible_commish")
actions = [download_season_users_csv]


class SeasonRegistrationAdmin(admin.ModelAdmin):
def get_sleeper_username(self, obj):
return obj.dst_player.display_name

get_sleeper_username.short_description = 'Sleeper Username'

list_display = ['email', 'get_sleeper_username', 'sleeper_id', 'region', 'new_player', 'last_years_league',
'possible_commish', 'registration_ts', "confirm_registration"]
search_fields = ['user__email', 'dst_player__display_name', 'sleeper_id', 'last_years_league__sleeper_name']
list_filter = ('season', 'region', 'new_player', 'possible_commish')
get_sleeper_username.short_description = "Sleeper Username"

list_display = [
"email",
"get_sleeper_username",
"sleeper_id",
"region",
"new_player",
"last_years_league",
"possible_commish",
"registration_ts",
"confirm_registration",
]
search_fields = [
"user__email",
"dst_player__display_name",
"sleeper_id",
"last_years_league__sleeper_name",
]
list_filter = ("season", "region", "new_player", "possible_commish")

def confirm_registration(self, obj):
return format_html("<a href='{url}'>Registrierung bestätigen</a>", url=obj.url)
Expand All @@ -81,15 +139,21 @@ class SeasonInvitationAdmin(admin.ModelAdmin):
def get_sleeper_username(self, obj):
return obj.season_user.dst_player.display_name

list_display = ['get_sleeper_username', 'sleeper_league_name', 'sleeper_league_id', 'sleeper_league_link', 'created']
ordering = ['-created', 'sleeper_league_id']
list_display = [
"get_sleeper_username",
"sleeper_league_name",
"sleeper_league_id",
"sleeper_league_link",
"created",
]
ordering = ["-created", "sleeper_league_id"]


class DSTEmailAdmin(admin.ModelAdmin):
list_display = ['type', 'recipient', 'subject', 'send_ts', 'has_erros']
list_filter = ('type', 'has_erros')
list_display = ["type", "recipient", "subject", "send_ts", "has_erros"]
list_filter = ("type", "has_erros")
search_fields = ["recipient"]
ordering = ['-send_ts']
ordering = ["-send_ts"]


admin.site.register(News, NewsAdmin)
Expand Down
14 changes: 10 additions & 4 deletions DSTBundesliga/apps/dstffbl/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,17 @@ class RegisterForm(forms.Form):

def clean_sleeper_username(self):
data = self.cleaned_data
sleeper_username = data.get('sleeper_username')
sleeper_username = data.get("sleeper_username")

try:
sleeper_user = sleeper_wrapper.User(sleeper_username)
sleeper_id = sleeper_user.get_user_id()
except TypeError:
raise forms.ValidationError(
message=_('Dein Sleeper Benutzername scheint falsch zu sein - bitte gib deinen aktuellen Benutzernamen an!'))
message=_(
"Dein Sleeper Benutzername scheint falsch zu sein - bitte gib deinen aktuellen Benutzernamen an!"
)
)

return sleeper_id

Expand All @@ -32,13 +35,16 @@ class ProfileForm(forms.Form):

def clean_sleeper_username(self):
data = self.cleaned_data
sleeper_username = data.get('sleeper_username')
sleeper_username = data.get("sleeper_username")

try:
sleeper_user = sleeper_wrapper.User(sleeper_username)
sleeper_id = sleeper_user.get_user_id()
except TypeError:
raise forms.ValidationError(
message=_('Dein Sleeper Benutzername scheint falsch zu sein - bitte gib deinen aktuellen Benutzernamen an!'))
message=_(
"Dein Sleeper Benutzername scheint falsch zu sein - bitte gib deinen aktuellen Benutzernamen an!"
)
)

return sleeper_id
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
from django.core.management import BaseCommand

from DSTBundesliga.apps.dstffbl.services.season_service import create_leagues_from_invitations
from DSTBundesliga.apps.dstffbl.services.season_service import (
create_leagues_from_invitations,
)


class Command(BaseCommand):
help = 'Create Leagues from the given Invitations'
help = "Create Leagues from the given Invitations"

def handle(self, *args, **options):
create_leagues_from_invitations()
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
from django.core.management import BaseCommand

from DSTBundesliga.apps.dstffbl.services.season_service import update_last_years_leagues, import_invitations
from DSTBundesliga.apps.dstffbl.services.season_service import (
import_invitations,
)


class Command(BaseCommand):
help = 'Import Invitations from CSV File'
help = "Import Invitations from CSV File"

def add_arguments(self, parser):
parser.add_argument(
'filepath',
type=str,
help='Path to CSV File'
)
parser.add_argument("filepath", type=str, help="Path to CSV File")

def handle(self, *args, **options):
filepath = options['filepath']
filepath = options["filepath"]
import_invitations(filepath)
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@


class Command(BaseCommand):
help = 'Send Open Invitations for the current Season.'
help = "Send Open Invitations for the current Season."

def handle(self, *args, **options):
send_email_chunk()
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@


class Command(BaseCommand):
help = 'Updates Season Users last years leagues'
help = "Updates Season Users last years leagues"

def handle(self, *args, **options):
update_last_years_leagues()
49 changes: 40 additions & 9 deletions DSTBundesliga/apps/dstffbl/migrations/0001_initial.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,55 @@


class Migration(migrations.Migration):

initial = True

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('leagues', '0027_season'),
("leagues", "0027_season"),
]

operations = [
migrations.CreateModel(
name='SeasonUser',
name="SeasonUser",
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('sleeper_id', models.CharField(max_length=50)),
('region', models.IntegerField(choices=[(1, 'Nord'), (2, 'Ost'), (3, 'Süd'), (4, 'West'), (5, 'Ausland')])),
('new_player', models.BooleanField(default=False)),
('season', models.ForeignKey(default=DSTBundesliga.apps.leagues.models.Season.get_active, on_delete=django.db.models.deletion.DO_NOTHING, to='leagues.Season')),
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("sleeper_id", models.CharField(max_length=50)),
(
"region",
models.IntegerField(
choices=[
(1, "Nord"),
(2, "Ost"),
(3, "Süd"),
(4, "West"),
(5, "Ausland"),
]
),
),
("new_player", models.BooleanField(default=False)),
(
"season",
models.ForeignKey(
default=DSTBundesliga.apps.leagues.models.Season.get_active,
on_delete=django.db.models.deletion.DO_NOTHING,
to="leagues.Season",
),
),
(
"user",
models.OneToOneField(
on_delete=django.db.models.deletion.CASCADE,
to=settings.AUTH_USER_MODEL,
),
),
],
),
]
Loading

0 comments on commit 2feccf7

Please sign in to comment.