This commit is contained in:
SDE
2023-05-16 17:14:16 +03:00
commit c17da7eaab
157 changed files with 14503 additions and 0 deletions

0
QuestionsApp/__init__.py Normal file
View File

11
QuestionsApp/admin.py Normal file
View File

@@ -0,0 +1,11 @@
from django.contrib import admin
from BaseModels.admin_utils import Admin_BaseIconModel
from .models import *
class Admin_Question(Admin_BaseIconModel):
pass
admin.site.register(Question, Admin_Question)
class Admin_Answer(Admin_BaseIconModel):
pass
admin.site.register(Answer, Admin_Answer)

6
QuestionsApp/apps.py Normal file
View File

@@ -0,0 +1,6 @@
from django.apps import AppConfig
class QuestionsappConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'QuestionsApp'

View File

@@ -0,0 +1,58 @@
# Generated by Django 4.2.1 on 2023-05-16 14:01
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Question',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
('name_plural', models.TextField(blank=True, null=True, verbose_name='Название (множественное число)')),
('order', models.IntegerField(blank=True, null=True, verbose_name='Очередность отображения')),
('createDT', models.DateTimeField(auto_now_add=True, verbose_name='Дата и время создания')),
('modifiedDT', models.DateTimeField(blank=True, null=True, verbose_name='Дата и время последнего изменения')),
('enable', models.BooleanField(db_index=True, default=True, verbose_name='Включено')),
('json_data', models.JSONField(blank=True, default=dict, verbose_name='Дополнительные данные')),
('game_level', models.IntegerField(default=1, verbose_name='Уровень игры')),
('time_for_answer', models.IntegerField(default=7, verbose_name='Время на ответ (сек)')),
('used_count', models.IntegerField(default=0, verbose_name='Количество использования')),
('comment', models.TextField(blank=True, null=True, verbose_name='Комментарий')),
],
options={
'verbose_name': 'Вопрос',
'verbose_name_plural': 'Вопросы',
'permissions': (),
},
),
migrations.CreateModel(
name='Answer',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
('name_plural', models.TextField(blank=True, null=True, verbose_name='Название (множественное число)')),
('order', models.IntegerField(blank=True, null=True, verbose_name='Очередность отображения')),
('createDT', models.DateTimeField(auto_now_add=True, verbose_name='Дата и время создания')),
('modifiedDT', models.DateTimeField(blank=True, null=True, verbose_name='Дата и время последнего изменения')),
('enable', models.BooleanField(db_index=True, default=True, verbose_name='Включено')),
('json_data', models.JSONField(blank=True, default=dict, verbose_name='Дополнительные данные')),
('right_answer', models.BooleanField(default=False, verbose_name='Правильный')),
('comment', models.TextField(blank=True, null=True, verbose_name='Комментарий')),
('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rel_answers_for_question', to='QuestionsApp.question', verbose_name='Вопрос')),
],
options={
'verbose_name': 'Ответ',
'verbose_name_plural': 'Ответы',
'ordering': ('question',),
},
),
]

View File

45
QuestionsApp/models.py Normal file
View File

@@ -0,0 +1,45 @@
from django.db import models
from BaseModels.base_models import BaseModel
from django.utils.translation import gettext_lazy as _
class Question(BaseModel):
game_level = models.IntegerField(verbose_name=_('Уровень игры'), default=1)
time_for_answer = models.IntegerField(verbose_name=_('Время на ответ (сек)'), default=7)
used_count = models.IntegerField(verbose_name=_('Количество использования'), default=0)
comment = models.TextField(verbose_name=_('Комментарий'), null=True, blank=True)
def __str__(self):
if self.name:
return f'{self.name}'
else:
return str(self.id)
class Meta:
permissions = (
)
verbose_name = _('Вопрос')
verbose_name_plural = _('Вопросы')
# ordering = ('user__last_name', 'user__first_name')
class Answer(BaseModel):
question = models.ForeignKey(
Question, verbose_name=_('Вопрос'), related_name='rel_answers_for_question', on_delete=models.CASCADE)
right_answer = models.BooleanField(verbose_name=_('Правильный'), default=False)
comment = models.TextField(verbose_name=_('Комментарий'), null=True, blank=True)
def __str__(self):
if self.name:
return f'{self.name}'
else:
return str(self.id)
class Meta:
verbose_name = _('Ответ')
verbose_name_plural = _('Ответы')
ordering = ('question',)

3
QuestionsApp/tests.py Normal file
View File

@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

3
QuestionsApp/views.py Normal file
View File

@@ -0,0 +1,3 @@
from django.shortcuts import render
# Create your views here.