Skip to content

Commit 45d7a86

Browse files
authored
Add Blocklist Support (STOCD#102)
1 parent 49be318 commit 45d7a86

5 files changed

Lines changed: 65 additions & 3 deletions

File tree

combatlog/models/combatlog.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from rest_framework.exceptions import APIException
1414

1515
from core.models import BaseModel
16-
from ladder.models import Ladder, LadderEntry
16+
from ladder.models import BlockedHandle, Ladder, LadderEntry
1717

1818
from .metadata import Metadata
1919

@@ -212,6 +212,17 @@ def update_metadata_file(self, file, force=False):
212212
)
213213
continue
214214

215+
if BlockedHandle.objects.filter(handle=player["handle"]).count():
216+
results.append(
217+
{
218+
"name": full_name,
219+
"updated": False,
220+
"detail": f"{full_name} is banned from the ladder.",
221+
"value": combat_time,
222+
}
223+
)
224+
continue
225+
215226
if (
216227
ladder.manual_review_threshold
217228
and player.get(ladder.metric) > ladder.manual_review_threshold

ladder/admin.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
from django.db.models import JSONField
55
from django_json_widget.widgets import JSONEditorWidget
66

7-
from .models import Ladder, LadderEntry, Variant
7+
from .models import BlockedHandle, Ladder, LadderEntry, Variant
88

99

1010
@admin.register(LadderEntry)
1111
class LadderEntryAdmin(admin.ModelAdmin):
12-
exclude = [ "combatlog" ]
12+
exclude = ["combatlog"]
1313
list_display = [
1414
"player",
1515
"ladder__name",
@@ -76,3 +76,8 @@ class LadderAdmin(admin.ModelAdmin):
7676
@admin.register(Variant)
7777
class VarientAdmin(admin.ModelAdmin):
7878
search_fields = []
79+
80+
81+
@admin.register(BlockedHandle)
82+
class BlockedHandle(admin.ModelAdmin):
83+
search_fields = ["handle"]
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Generated by Django 4.2.9 on 2025-01-25 16:18
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
("ladder", "0004_variant_combat_time_source_and_more"),
10+
]
11+
12+
operations = [
13+
migrations.CreateModel(
14+
name="BlockedHandle",
15+
fields=[
16+
(
17+
"id",
18+
models.BigAutoField(
19+
auto_created=True,
20+
primary_key=True,
21+
serialize=False,
22+
verbose_name="ID",
23+
),
24+
),
25+
(
26+
"handle",
27+
models.TextField(
28+
help_text="Player's @handle. You need to include the '@'"
29+
),
30+
),
31+
],
32+
),
33+
]

ladder/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
from .ladder import *
22
from .ladder_entry import *
33
from .variant import *
4+
from .blocked_handle import *

ladder/models/blocked_handle.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
"""BlockedHandle Models"""
2+
3+
from django.db import models
4+
5+
6+
class BlockedHandle(models.Model):
7+
"""BlockedHandle Model"""
8+
9+
handle = models.TextField(help_text="Player's @handle. You need to include the '@'")
10+
11+
def __str__(self):
12+
return f"{self.handle}"

0 commit comments

Comments
 (0)