done
This commit is contained in:
parent
8bf25ef4f0
commit
d8946dc267
@ -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"])
|
||||
|
21
Main/migrations/0003_auto_20211121_2327.py
Normal file
21
Main/migrations/0003_auto_20211121_2327.py
Normal 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',
|
||||
),
|
||||
]
|
@ -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')
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
)
|
||||
|
6
Main/views/SetSettingsView.py
Normal file
6
Main/views/SetSettingsView.py
Normal file
@ -0,0 +1,6 @@
|
||||
from SprintLib.BaseView import BaseView
|
||||
|
||||
|
||||
class SetSettingsView(BaseView):
|
||||
required_login = True
|
||||
view_file = 'set_settings.html'
|
@ -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}"
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -10,6 +10,7 @@ urlpatterns = [
|
||||
path("account", AccountView.as_view()),
|
||||
path("exit", ExitView.as_view()),
|
||||
path("admin/task", TaskSettingsView.as_view()),
|
||||
path("admin/set", SetSettingsView.as_view()),
|
||||
path("sets", SetsView.as_view()),
|
||||
path("task", TaskView.as_view()),
|
||||
path("solution", SolutionView.as_view()),
|
||||
|
@ -21,8 +21,8 @@ class BaseView:
|
||||
view_file: Optional[str] = None
|
||||
|
||||
@classmethod
|
||||
@transaction.atomic
|
||||
def as_view(cls):
|
||||
@transaction.atomic
|
||||
def execute(request):
|
||||
if request.user.is_authenticated:
|
||||
user_info = request.user.userinfo
|
||||
|
@ -24,8 +24,8 @@
|
||||
<h3>
|
||||
{{ account.userinfo.surname }} {{ account.userinfo.name }}
|
||||
<span style="margin-left: 15px;" class="badge badge-{% if account.userinfo.activity_status == online_status %}success{% else %}secondary{% endif %}">{{ account.userinfo.activity_status }}</span>
|
||||
{% if user.is_superuser %}
|
||||
<a style="margin-left: 15px;" href="/admin/" class="badge badge-secondary"> Админ</a>
|
||||
{% if user.is_superuser and owner %}
|
||||
<a style="margin-left: 15px;" href="/admin/" class="badge badge-secondary">Админ</a>
|
||||
{% endif %}
|
||||
</h3>
|
||||
<table>
|
||||
|
11
templates/set_settings.html
Normal file
11
templates/set_settings.html
Normal file
@ -0,0 +1,11 @@
|
||||
{% extends 'base_main.html' %}
|
||||
|
||||
{% block title %}{{ set.name }}{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<h2>{{ set.name }}</h2>
|
||||
<h4>Таски</h4>
|
||||
{% for settask in set.settasks.all %}
|
||||
<input name="settask_{{ settask.id }}" value="{{ settask.name }}"> {{ settask.task.name }}<br>
|
||||
{% endfor %}
|
||||
{% endblock %}
|
Loading…
Reference in New Issue
Block a user