Skip to content

Commit

Permalink
Переименованы некоторые поля, вернул admin_user, настроил для коррек…
Browse files Browse the repository at this point in the history
…тной работы и отображения в админке
  • Loading branch information
Ezereul committed Sep 14, 2023
1 parent 9300965 commit 42f893a
Show file tree
Hide file tree
Showing 12 changed files with 115 additions and 15 deletions.
Empty file added src/admin_user/__init__.py
Empty file.
12 changes: 12 additions & 0 deletions src/admin_user/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from django.contrib import admin
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin

AdminUser = get_user_model()


@admin.register(AdminUser)
class AdminUserAdmin(UserAdmin):
"""Управление админкой."""

pass
8 changes: 8 additions & 0 deletions src/admin_user/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from django.apps import AppConfig


class AdminUserConfig(AppConfig):
"""Настройка приложения admin_user."""

default_auto_field = "django.db.models.BigAutoField"
name = "admin_user"
44 changes: 44 additions & 0 deletions src/admin_user/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Generated by Django 4.2.5 on 2023-09-14 15:19

import django.contrib.auth.models
import django.contrib.auth.validators
from django.db import migrations, models
import django.utils.timezone


class Migration(migrations.Migration):

initial = True

dependencies = [
('auth', '0012_alter_user_first_name_max_length'),
]

operations = [
migrations.CreateModel(
name='AdminUser',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('password', models.CharField(max_length=128, verbose_name='password')),
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')),
('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')),
('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')),
('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')),
('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')),
],
options={
'verbose_name': 'Администратор',
'verbose_name_plural': 'Администраторы',
'ordering': ('id',),
},
managers=[
('objects', django.contrib.auth.models.UserManager()),
],
),
]
Empty file.
13 changes: 13 additions & 0 deletions src/admin_user/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from django.contrib.auth.models import AbstractUser


class AdminUser(AbstractUser):
"""Модель для создания администраторов."""

class Meta:
ordering = ("id",)
verbose_name = "Администратор"
verbose_name_plural = "Администраторы"

def __str__(self):
return self.username
9 changes: 8 additions & 1 deletion src/bot/admin.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
from django.contrib import admin

from src.bot.models import CreatedPair, PassedPair, Recruiter, Student
from bot.models import CreatedPair, PassedPair, Profession, Recruiter, Student


@admin.register(Profession)
class ProfessionAdmin(admin.ModelAdmin):
"""Управление профессиями."""

list_display = ("name",)


@admin.register(CreatedPair)
Expand Down
2 changes: 1 addition & 1 deletion src/bot/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def stop_bot(self, **kwargs):

def ready(self) -> None:
"""Вызывается при запуске приложения."""
from bot.bot import Bot
from bot.bot_interface import Bot

self.bot = Bot()

Expand Down
File renamed without changes.
29 changes: 18 additions & 11 deletions src/bot/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Generated by Django 4.2.5 on 2023-09-14 00:13
# Generated by Django 4.2.5 on 2023-09-14 15:09

from django.db import migrations, models
import django.db.models.deletion
Expand All @@ -12,16 +12,23 @@ class Migration(migrations.Migration):
]

operations = [
migrations.CreateModel(
name='Profession',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=128, unique=True, verbose_name='Название профессии')),
],
),
migrations.CreateModel(
name='Recruiter',
fields=[
('user_id', models.IntegerField(primary_key=True, serialize=False, verbose_name='Telegram id')),
('telegram_id', models.IntegerField(primary_key=True, serialize=False, verbose_name='Telegram User ID')),
('name', models.CharField(max_length=255, verbose_name='Имя')),
('surname', models.CharField(max_length=255, verbose_name='Фамилия')),
('tg_username', models.CharField(max_length=255, verbose_name='Ник в телеграмме')),
('telegram_username', models.CharField(max_length=255, unique=True, verbose_name='Ник в телеграмме')),
('registration_date', models.DateField(auto_now_add=True, verbose_name='Дата регистрации')),
('last_login_date', models.DateField(auto_now=True, verbose_name='Заходил в последний раз')),
('is_vacant', models.BooleanField(default=False, verbose_name='Есть пара')),
('has_pair', models.BooleanField(default=False, verbose_name='Есть пара')),
],
options={
'verbose_name': 'Рекрутер',
Expand All @@ -31,14 +38,14 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='Student',
fields=[
('user_id', models.IntegerField(primary_key=True, serialize=False, verbose_name='Telegram id')),
('telegram_id', models.IntegerField(primary_key=True, serialize=False, verbose_name='Telegram User ID')),
('name', models.CharField(max_length=255, verbose_name='Имя')),
('surname', models.CharField(max_length=255, verbose_name='Фамилия')),
('tg_username', models.CharField(max_length=255, verbose_name='Ник в телеграмме')),
('telegram_username', models.CharField(max_length=255, unique=True, verbose_name='Ник в телеграмме')),
('registration_date', models.DateField(auto_now_add=True, verbose_name='Дата регистрации')),
('last_login_date', models.DateField(auto_now=True, verbose_name='Заходил в последний раз')),
('is_vacant', models.BooleanField(default=False, verbose_name='Есть пара')),
('profession', models.CharField(choices=[('AN', 'Аналитик'), ('BA', 'Бэкенд-разработчик'), ('FR', 'Фронтенд-разработчик'), ('TE', 'Тестировщик')], default='AN', max_length=2, verbose_name='Профессия')),
('has_pair', models.BooleanField(default=False, verbose_name='Есть пара')),
('profession', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='students', to='bot.profession', verbose_name='Профессия')),
],
options={
'verbose_name': 'Студент',
Expand All @@ -50,7 +57,7 @@ class Migration(migrations.Migration):
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('date', models.DateField(auto_now_add=True)),
('is_interview_successful', models.BooleanField(default=False, verbose_name='Встреча прошла успешно')),
('interview_successful', models.BooleanField(default=False, verbose_name='Встреча прошла успешно')),
('recruiter', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bot.recruiter', verbose_name='Рекрутер')),
('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bot.student', verbose_name='Студент')),
],
Expand All @@ -68,8 +75,8 @@ class Migration(migrations.Migration):
('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bot.student', verbose_name='Студент')),
],
options={
'verbose_name': 'Текущая пара',
'verbose_name_plural': 'Текущие пары',
'verbose_name': 'Активная пара',
'verbose_name_plural': 'Активные пары',
},
),
migrations.AddConstraint(
Expand Down
7 changes: 7 additions & 0 deletions src/bot/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@ class Profession(models.Model):
max_length=128, unique=True, verbose_name="Название профессии"
)

class Meta:
verbose_name = "Профессия"
verbose_name_plural = "Профессии"

def __str__(self):
return self.name


class PracticumUser(models.Model):
"""Базовая модель для пользователей."""
Expand Down
6 changes: 4 additions & 2 deletions src/core/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@
BASE_DIR = Path(__file__).resolve().parent.parent


SECRET_KEY = ""
SECRET_KEY = " "

DEBUG = True

AUTH_USER_MODEL = "admin_user.AdminUser"

ALLOWED_HOSTS = []


Expand All @@ -19,7 +21,7 @@
"django.contrib.staticfiles",
]

LOCAL_APPS = ["bot",]
LOCAL_APPS = ["bot", "admin_user"]

EXTERNAL_APPS = []

Expand Down

0 comments on commit 42f893a

Please sign in to comment.