full admin

This commit is contained in:
Mikan
2025-05-18 23:05:48 +03:00
parent f1dd7fa22a
commit ba4df6674b
3 changed files with 114 additions and 2 deletions

View File

@@ -1,3 +1,104 @@
from django.contrib import admin
from .models import (
Survey, ScoreVariable, Statement, QuestionPair, AgreementQuestion,
EducationalInstitution, Profession, Specialty, ProfessionSpecialtyLink, ProfessionTestResult
)
# Register your models here.
class ScoreVariableInline(admin.TabularInline):
model = ScoreVariable
extra = 1
class QuestionPairInline(admin.TabularInline):
model = QuestionPair
extra = 1
autocomplete_fields = ('statement_a', 'statement_b')
class AgreementQuestionInline(admin.TabularInline):
model = AgreementQuestion
extra = 1
autocomplete_fields = ('score_variable',)
@admin.register(Survey)
class SurveyAdmin(admin.ModelAdmin):
list_display = ('title',)
search_fields = ('title',)
inlines = [ScoreVariableInline, QuestionPairInline, AgreementQuestionInline]
@admin.register(ScoreVariable)
class ScoreVariableAdmin(admin.ModelAdmin):
list_display = ('title', 'survey', 'name')
list_filter = ('survey',)
search_fields = ('title', 'name', 'description')
autocomplete_fields = ('survey',)
@admin.register(Statement)
class StatementAdmin(admin.ModelAdmin):
list_display = ('statement', 'score_variable')
list_filter = ('score_variable__survey',)
search_fields = ('statement', 'score_variable__title')
autocomplete_fields = ('score_variable',)
@admin.register(QuestionPair)
class QuestionPairAdmin(admin.ModelAdmin):
list_display = ('survey', 'statement_a', 'statement_b')
list_filter = ('survey',)
search_fields = ('statement_a__statement', 'statement_b__statement')
autocomplete_fields = ('survey', 'statement_a', 'statement_b')
@admin.register(AgreementQuestion)
class AgreementQuestionAdmin(admin.ModelAdmin):
list_display = ('question', 'survey', 'score_variable')
list_filter = ('survey',)
search_fields = ('question', 'score_variable__title')
autocomplete_fields = ('survey', 'score_variable')
@admin.register(EducationalInstitution)
class EducationalInstitutionAdmin(admin.ModelAdmin):
list_display = ('name',)
search_fields = ('name',)
@admin.register(Profession)
class ProfessionAdmin(admin.ModelAdmin):
list_display = ('name',)
search_fields = ('name', 'description')
class ProfessionSpecialtyLinkInline(admin.TabularInline):
model = ProfessionSpecialtyLink
extra = 1
autocomplete_fields = ('specialty',)
@admin.register(Specialty)
class SpecialtyAdmin(admin.ModelAdmin):
list_display = ('name', 'institution', 'link')
list_filter = ('institution',)
search_fields = ('name', 'institution__name')
inlines = [ProfessionSpecialtyLinkInline]
autocomplete_fields = ('institution',)
@admin.register(ProfessionSpecialtyLink)
class ProfessionSpecialtyLinkAdmin(admin.ModelAdmin):
list_display = ('profession', 'specialty')
list_filter = ('profession',)
search_fields = ('profession__name', 'specialty__name')
autocomplete_fields = ('profession', 'specialty')
@admin.register(ProfessionTestResult)
class ProfessionTestResultAdmin(admin.ModelAdmin):
list_display = ('profession', 'survey_score_variable')
list_filter = ('profession',)
search_fields = ('profession__name', 'survey_score_variable__title')
autocomplete_fields = ('profession', 'survey_score_variable')

View File

@@ -4,3 +4,4 @@ from django.apps import AppConfig
class SurveysConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'surveys'
verbose_name = "Анкетирование и Тестирование"

View File

@@ -1,5 +1,6 @@
from django.db import models
## Модуль Анкетирование (название приложения: surveys)
class Survey(models.Model):
@@ -11,6 +12,7 @@ class Survey(models.Model):
class Meta:
verbose_name = "Опрос"
verbose_name_plural = "Опросы"
ordering = ["title"]
class ScoreVariable(models.Model):
@@ -27,6 +29,7 @@ class ScoreVariable(models.Model):
class Meta:
verbose_name = "Переменная оценки"
verbose_name_plural = "Переменные оценки"
ordering = ["survey", "name", "title"]
class Statement(models.Model):
@@ -41,6 +44,7 @@ class Statement(models.Model):
class Meta:
verbose_name = "Утверждение"
verbose_name_plural = "Утверждения"
ordering = ["statement", "score_variable"]
class QuestionPair(models.Model):
@@ -60,6 +64,7 @@ class QuestionPair(models.Model):
class Meta:
verbose_name = "Пара вопросов"
verbose_name_plural = "Пары вопросов"
ordering = ["survey", "statement_a", "statement_b"]
class AgreementQuestion(models.Model):
@@ -77,6 +82,7 @@ class AgreementQuestion(models.Model):
class Meta:
verbose_name = "Вопрос на согласие"
verbose_name_plural = "Вопросы на согласие"
ordering = ["survey", "question"]
class EducationalInstitution(models.Model):
@@ -88,6 +94,7 @@ class EducationalInstitution(models.Model):
class Meta:
verbose_name = "Образовательное учреждение"
verbose_name_plural = "Образовательные учреждения"
ordering = ["name"]
class Profession(models.Model):
@@ -100,6 +107,7 @@ class Profession(models.Model):
class Meta:
verbose_name = "Профессия"
verbose_name_plural = "Профессии"
ordering = ["name"]
class Specialty(models.Model):
@@ -115,6 +123,7 @@ class Specialty(models.Model):
class Meta:
verbose_name = "Специальность"
verbose_name_plural = "Специальности"
ordering = ["name", "institution"]
class ProfessionSpecialtyLink(models.Model):
@@ -132,6 +141,7 @@ class ProfessionSpecialtyLink(models.Model):
verbose_name = "Связь между профессией и специальностью"
verbose_name_plural = "Связи между профессиями и специальностями"
unique_together = ("profession", "specialty")
ordering = ["profession", "specialty"]
class ProfessionTestResult(models.Model):
@@ -148,4 +158,4 @@ class ProfessionTestResult(models.Model):
class Meta:
verbose_name = "Результат теста по профессии"
verbose_name_plural = "Результаты тестов по профессиям"
ordering = ["profession", "survey_score_variable"]