Files
ProFi/surveys/admin.py

105 lines
3.2 KiB
Python
Raw Permalink Normal View History

2025-05-18 21:29:04 +03:00
from django.contrib import admin
2025-05-18 23:05:48 +03:00
from .models import (
Survey, ScoreVariable, Statement, QuestionPair, AgreementQuestion,
EducationalInstitution, Profession, Specialty, ProfessionSpecialtyLink, ProfessionTestResult
)
2025-05-18 21:29:04 +03:00
2025-05-18 23:05:48 +03:00
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')