This commit is contained in:
Egor Matveev
2021-11-22 15:33:26 +03:00
parent 8bf25ef4f0
commit d8946dc267
14 changed files with 70 additions and 12 deletions

View File

@@ -24,8 +24,17 @@ def register(message: Message):
bot.send_message(message.chat.id, "Ты уже зарегистрировался")
return
user = User.objects.create(username=username)
UserInfo.objects.create(user=user, telegram_chat_id=message.chat.id)
bot.send_message(message.chat.id, 'Приветствую в Sprint! Сейчас я помогу тебе создать аккаунт.\nДля начала отправь мне свою фамилию')
ui = UserInfo.objects.create(user=user, telegram_chat_id=message.chat.id)
name = message.from_user.first_name
surname = message.from_user.last_name
if surname is None or surname == '' or name is None or name == '':
bot.send_message(message.chat.id, 'Приветствую в Sprint! Сейчас я помогу тебе создать аккаунт.\nДля начала отправь мне свою фамилию')
else:
ui.surname = surname
ui.name = name
ui.verified = True
ui.save()
bot.send_message(message.chat.id, f"Регистрация завершена! Теперь можешь ты можешь войти в сервис под именем пользователя: {user.username}")
@bot.message_handler(content_types=["text"])

View File

@@ -0,0 +1,21 @@
# Generated by Django 3.2.4 on 2021-11-21 20:27
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('Main', '0002_auto_20211120_2009'),
]
operations = [
migrations.AddField(
model_name='userinfo',
name='verified',
field=models.BooleanField(default=False),
),
migrations.DeleteModel(
name='File',
),
]

View File

@@ -2,6 +2,8 @@ from django.contrib.auth.models import User
from django.db import models
from django.utils import timezone
from Main.models.task import Task
class Set(models.Model):
name = models.TextField()
@@ -18,3 +20,7 @@ class Set(models.Model):
and (self.start_time is None or timezone.now() >= self.start_time)
and (self.end_time is None or timezone.now() <= self.end_time)
)
@property
def tasks(self):
return Task.objects.filter(settasks__set=self).order_by('settasks__name')

View File

@@ -5,6 +5,6 @@ from Main.models.set import Set
class SetTask(models.Model):
set = models.ForeignKey(Set, on_delete=models.CASCADE)
set = models.ForeignKey(Set, on_delete=models.CASCADE, related_name="settasks")
task = models.ForeignKey(Task, on_delete=models.CASCADE, related_name="settasks")
name = models.CharField(max_length=2)

View File

@@ -1,8 +1,8 @@
from django.contrib.auth.models import User
from django.db import models
from django.db.models import Q
from django.utils import timezone
from Main.models.set import Set
from Main.models.group import Group
from Main.models.settask import SetTask
from Main.models.subscription import Subscription
@@ -55,6 +55,10 @@ class UserInfo(models.Model):
self._append_task(task, tasks)
return sorted(tasks, key=lambda x: x.time_estimation)
@property
def available_sets(self):
return Set.objects.all()
@property
def place(self):
return len(UserInfo.objects.filter(rating__gt=self.rating)) + 1

View File

@@ -9,5 +9,5 @@ class RatingView(BaseView):
def get(self):
self.context["users"] = User.objects.filter(userinfo__verified=True).order_by(
"-userinfo__rating", "date_joined"
"-userinfo__rating", "-date_joined"
)

View File

@@ -0,0 +1,6 @@
from SprintLib.BaseView import BaseView
class SetSettingsView(BaseView):
required_login = True
view_file = 'set_settings.html'

View File

@@ -7,6 +7,6 @@ class SetsView(BaseView):
required_login = True
def post(self):
task_name = self.request.POST["name"]
task = Set.objects.create(name=task_name, creator=self.request.user)
return f"/admin/task?task_id={task.id}"
set_name = self.request.POST["name"]
set = Set.objects.create(name=set_name, creator=self.request.user)
return f"/admin/set?set_id={set.id}"

View File

@@ -3,7 +3,6 @@ from zipfile import ZipFile
from Main.models import Solution, Progress, SolutionFile
from SprintLib.BaseView import BaseView
from SprintLib.language import languages
from SprintLib.queue import send_testing
from SprintLib.utils import write_bytes

View File

@@ -12,3 +12,4 @@ from Main.views.TaskRuntimeView import TaskRuntimeView
from Main.views.SolutionView import SolutionView
from Main.views.ImageView import ImageView
from Main.views.SendCodeView import SendCodeView
from Main.views.SetSettingsView import SetSettingsView