Skip to content

Commit fea87f5

Browse files
authored
Competition create (#338)
1 parent ba1e6e4 commit fea87f5

File tree

5 files changed

+35
-13
lines changed

5 files changed

+35
-13
lines changed

competition/admin.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
from django.contrib import admin, messages
22
from django.http import HttpResponseRedirect
33

4-
from competition.models import (Comment, Event, EventRegistration, LateTag,
5-
Problem, ProblemCorrection, Publication,
6-
Semester, Series, Solution)
4+
from competition.models import (Comment, Competition, Event, EventRegistration,
5+
LateTag, Problem, ProblemCorrection,
6+
Publication, Semester, Series, Solution)
7+
8+
9+
@admin.register(Competition)
10+
class CompetitionAdmin(admin.ModelAdmin):
11+
list_display = (
12+
'name',
13+
'start_year',
14+
'competition_type'
15+
)
716

817

918
@admin.register(Series)

competition/fixtures/competitions.json

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,10 @@
172172
"start_year": 2021,
173173
"description": "Jednotlivci riešia úlohy a odovzdávajú iba výsledky. Súťaž trvá 60 minút.",
174174
"rules": "Máš problém?! je súťaž určená pre žiakov 4. - 9. ročníka ZŠ alebo prímy až kvarty OG (ale môžu sa zapojiť aj mladší). Súťažia jednotlivci v dvoch kategóriách: mladší (4. - 6. ročník ZŠ, príma) a starší (7. - 9. ročník ZŠ, sekunda až kvarta). V súťaži sa odovzdávajú len výsledky a je na ňu 60 minút.\n\nSúťaží sa na [samostatnej stránke](https://masproblem.strom.sk/login), rovnako tam nájdete aj poradie a **registráciu**. Na jeseň roku 2021 sa súťaž uskutoční 3.11.2021 od 11:00 do 17:00, pričom si môžeš vybrať kedy si súťaž spustíš (odporúčame však začať do 16:00, aby si mal dosť času na súťaženie).\n\nPoradie sa vyhodnocuje zvlášť pre každý ročník, a to najskôr podľa najvyššej dosiahnutej úrovne, z ktorej ste vyriešili aspoň 1 problém, potom podľa počtu správnych výsledkov a nakoniec podľa času odovzdania poslednej úlohy.\n\nProblémy sú rozdelené do úrovní označených od A po F. Mladší začínajú na úrovni A a končia úrovňou E. Starší začínajú úrovňou B a končia na úrovni F. Na začiatku viete riešiť len problémy z úrovne, ktorú máte otvorenú. Presné počty problémov v daných úrovniach a počty problémov potrebných na odomknutie ďalšej úrovne nájdete v tabuľke. Počas celého priebehu súťaže môžete riešiť problémy zo všetkých úrovní, ktoré už máte odomknuté. **Úlohy na jednej úrovni nie sú zoradené podľa obtiažnosti.**\n\n| úroveň | počet problémov v úrovni (mladší) | počet problémov, ktorý je potrebný na danej úrovni vyriešiť na postup do ďalšej (mladší)| počet problémov v úrovni (starší) | počet problémov, ktorý je potrebný na danej úrovni vyriešiť na postup do ďalšej (starší) |\n|:-:|:-:|:-:|:-:|:-:|\n| A | 8 | 4 | 0 | 0 |\n| B | 6 | 3 | 6 | 3 |\n| C | 4 | 2 | 4 | 2 |\n| D | 4 | 2 | 4 | 2 |\n| E | 2 | 0 | 2 | 2 |\n| F | 0 | 0 | 2 | 0 |\n\nPoplatok za účasť na súťaži je vo výške 3€. Tento poplatok je potrebné uhradiť na účet združenia STROM - SK59 0900 0000 0004 4262 6916. Do poznámky pre príjemcu je potrebné uviesť \"Máš problém - meno účastníka\". Ako variabilný symbol je potrebné uviesť registračný kód, ktorý vám príde v maili po registrácii.\n\nNajúspešnejší z vás dostanú diplom a tí, ktorí sa umiestnia na prvých 3 miestach v rámci svojho ročníka, získajú aj vecné ceny. Víťaz z každého ročníka bude navyše pozvaný ako riadny účastník na najbližšie sústredenie. :)\n\n"
175-
}
175+
},
176+
"permission_group": [
177+
2
178+
]
176179
},
177180
{
178181
"model": "competition.Competition",
@@ -184,7 +187,10 @@
184187
"start_year": "2010",
185188
"competition_type": 4,
186189
"description": "Tímová robotická súťaž v troch kategóriách: Vlastný model, Racing a Robotická výzva"
187-
}
190+
},
191+
"permission_group": [
192+
1
193+
]
188194
},
189195
{
190196
"model": "competition.Competition",
@@ -196,6 +202,11 @@
196202
"start_year": "2022",
197203
"competition_type": 2,
198204
"description": "Denny tabor - fajne to bude"
199-
}
205+
},
206+
"permission_group": [
207+
1,
208+
2
209+
]
200210
}
211+
201212
]

competition/models.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ class Meta:
3434

3535
name = models.CharField('typ súťaže', max_length=200)
3636

37+
def __str__(self):
38+
return self.name
39+
3740

3841
class Competition(models.Model):
3942
"""
@@ -81,7 +84,7 @@ def can_user_participate(self, user):
8184

8285
@classmethod
8386
def can_user_create(cls, user: User, data): # pylint:disable=unused-argument
84-
return user.is_authenticated and user.is_staff
87+
return user.is_authenticated and user.is_superuser
8588

8689
def __str__(self):
8790
return self.name

competition/permissions.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,8 @@ def has_permission(self, request, view):
4242
if request.method in permissions.SAFE_METHODS:
4343
return True
4444

45-
# TODO: PremyslieŤ ako rozumne checkovať permission.
46-
# if request.method == 'POST':
47-
# return view.get_serializer().Meta.model.can_user_create(request.user, request.data)
45+
if request.method == 'POST':
46+
return view.get_serializer().Meta.model.can_user_create(request.user, request.data)
4847

4948
return request.user.is_authenticated and request.user.is_staff
5049

user/fixtures/users.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@
121121
"first_name": "Účastník",
122122
"last_name": "Strom",
123123
"school": "000598071",
124-
"year_of_graduation": 2024
124+
"year_of_graduation": 2025
125125
}
126126
},
127127
{
@@ -152,7 +152,7 @@
152152
"first_name": "Účastník",
153153
"last_name": "Matik",
154154
"school": "000598071",
155-
"year_of_graduation": 2027
155+
"year_of_graduation": 2028
156156
}
157157
},
158158
{
@@ -183,7 +183,7 @@
183183
"first_name": "Účastník",
184184
"last_name": "Malynár",
185185
"school": "000598071",
186-
"year_of_graduation": 2030
186+
"year_of_graduation": 2031
187187
}
188188
},
189189
{

0 commit comments

Comments
 (0)