
from django import forms
from .models import EcUser, ContactInfo, SchoolInfo, AcademicInfo, HealthInfo,  SelfEvaluation
from .models import HobbiesInterests, SocialPractice, FamilyInfo, AwardsInfo, PunishmentsInfo

class BaiscInfoForm(forms.ModelForm):
    class Meta:
        model = EcUser
        fields = ['name', 'gender', 'age', 'ethnicity', 'dob', 'id_card_number', 'political_status']

class ContactInfoForm(forms.ModelForm):
    class Meta:
        model = ContactInfo
        fields = ['home_address', 'parent_contact', 'student_contact', 'email']
        labels = {
            'home_address': '家庭住址',
            'parent_contact': '家长联系方式',
            'student_contact': '学生联系方式',
            'email': '电子邮箱',
        }

# SchoolInfo 表单
class SchoolInfoForm(forms.ModelForm):
    class Meta:
        model = SchoolInfo
        fields = ['school_name', 'grade', 'class_name', 'admission_date', 'expected_graduation_date']
        labels = {
            'school_name': '学校名称',
            'grade': '年级',
            'class_name': '班级名称',
            'admission_date': '入学日期',
            'expected_graduation_date': '预计毕业日期',
        }

# AcademicInfo 表单
class AcademicInfoForm(forms.ModelForm):
    class Meta:
        model = AcademicInfo
        fields = ['last_semester_score', 'this_semester_score', 'class_ranking', 'strong_subject', 'weak_subject']
        labels = {
            'last_semester_score': '上学期成绩',
            'this_semester_score': '本学期成绩',
            'class_ranking': '班级排名',
            'strong_subject': '优势科目',
            'weak_subject': '弱势科目',
        }

# HealthInfo 表单
class HealthInfoForm(forms.ModelForm):
    class Meta:
        model = HealthInfo
        fields = ['height', 'weight', 'blood_type', 'medical_history', 'disability_status', 'disability_category', 'disability_grade']
        labels = {
            'height': '身高',
            'weight': '体重',
            'blood_type': '血型',
            'medical_history': '病史',
            'disability_status': '残疾情况',
            'disability_category': '残疾类别',
            'disability_grade': '残疾等级',
        }
# SelfEvaluation 表单
class SelfEvaluationForm(forms.ModelForm):
    class Meta:
        model = SelfEvaluation
        fields = ['strengths', 'weaknesses', 'study_attitude', 'future_plans']
        labels = {
            'strengths': '优点',
            'weaknesses': '缺点',
            'study_attitude': '学习态度',
            'future_plans': '未来计划',
        }

# HobbiesInterests 表单
class HobbiesInterestsForm(forms.ModelForm):
    class Meta:
        model = HobbiesInterests
        fields = ['interests', 'extracurricular_activities']
        labels = {
            'interests': '兴趣爱好',
            'extracurricular_activities': '课外活动',
        }

# SocialPractice 表单
class SocialPracticeForm(forms.ModelForm):
    class Meta:
        model = SocialPractice
        fields = ['activity_name', 'activity_date', 'activity_location', 'activity_description', 'activity_outcome']
        labels = {
            'activity_name': '活动名称',
            'activity_date': '活动日期',
            'activity_location': '活动地点',
            'activity_description': '活动描述',
            'activity_outcome': '活动成果',
        }

# FamilyInfo 表单
class FamilyInfoForm(forms.ModelForm):
    class Meta:
        model = FamilyInfo
        fields = ['family_member', 'economic_status']
        labels = {
            'family_member': '家庭成员',
            'economic_status': '经济状况',
        }

# AwardsPunishments 表单
class AwardsInfoForm(forms.ModelForm):
    class Meta:
        model = AwardsInfo
        fields = ['award_name', 'award_date', 'award_organization']
        labels = {
            'award_name': '奖项名称',
            'award_date': '获奖日期',
            'award_organization': '颁奖机构',
        }

class PunishmentsInfoForm(forms.ModelForm):
    class Meta:
        model = PunishmentsInfo
        fields = ['discipline_date', 'discipline_issue', 'discipline_outcome']
        labels = {
            'discipline_date': '处分日期',
            'discipline_issue': '处分问题',
            'discipline_outcome': '处分结果',
        }

# 获取或创建各个信息模型实例
g_models = {
    'contact_info': ContactInfo,
    'school_info': SchoolInfo,
    'academic_info': AcademicInfo,
    'health_info': HealthInfo,
    'self_evaluation': SelfEvaluation,
    'hobbies_interests': HobbiesInterests,
    'social_practice': SocialPractice,
    'family_info': FamilyInfo,
    'awards_info': AwardsInfo,
    'punishments_info': PunishmentsInfo
}

g_form_classes = {
    'contact_info_form': ContactInfoForm,
    'school_info_form': SchoolInfoForm,
    'academic_info_form': AcademicInfoForm,
    'health_info_form': HealthInfoForm,
    'self_evaluation_form': SelfEvaluationForm,
    'hobbies_interests_form': HobbiesInterestsForm,
    'social_practice_form': SocialPracticeForm,
    'family_info_form': FamilyInfoForm,
    'awards_info_form': AwardsInfoForm,
    'punishments_info_form': PunishmentsInfoForm,
}
