full admin
This commit is contained in:
103
surveys/admin.py
103
surveys/admin.py
@@ -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')
|
||||
|
||||
@@ -4,3 +4,4 @@ from django.apps import AppConfig
|
||||
class SurveysConfig(AppConfig):
|
||||
default_auto_field = 'django.db.models.BigAutoField'
|
||||
name = 'surveys'
|
||||
verbose_name = "Анкетирование и Тестирование"
|
||||
|
||||
@@ -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"]
|
||||
|
||||
Reference in New Issue
Block a user