from django import forms
from .models import *
from management.models import Subject

class EarlyFormStaff(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(EarlyFormStaff, self).__init__(*args, **kwargs)
        instance = getattr(self, 'instance', None)
        if instance and instance.id:
            self.fields['term'].required = False
            self.fields['term'].widget.attrs['disabled'] = 'disabled'
            self.fields['student'].required = False
            self.fields['student'].widget.attrs['disabled'] = 'disabled'

    def clean_term(self):
        instance = getattr(self, 'instance', None)
        if instance:
            return instance.term
        else:
            return self.cleaned_data.get('term', None)

    def clean_student(self):
        instance = getattr(self, 'instance', None)
        if instance:
            return instance.student
        else:
            return self.cleaned_data.get('student', None)

    class Meta:
        model = Early
        fields = ['term', 'student', 'attentiveness', 'attitude', 'cooperation', 'emotional',
                'health', 'helping', 'leadership', 'neatness', 'perseverance', 'politeness',
                'punctuality', 'speaking', 'drawing', 'handling', 'games', 'verbal', 'handwriting',
                'music', 'sports', 'number_present', 'teacher_comment']

class EarlyFormAdmin(forms.ModelForm):
    class Meta:
        model = Early
        fields = ['head_comment']

class EarlyForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(EarlyForm, self).__init__(*args, **kwargs)
        instance = getattr(self, 'instance', None)
        if instance and instance.id:
            self.fields['term'].required = False
            self.fields['term'].widget.attrs['disabled'] = 'disabled'
            self.fields['subject'].required = False
            self.fields['subject'].widget.attrs['disabled'] = 'disabled'
            self.fields['student'].required = False
            self.fields['student'].widget.attrs['disabled'] = 'disabled'

    def clean_term(self):
        instance = getattr(self, 'instance', None)
        if instance:
            return instance.term
        else:
            return self.cleaned_data.get('term', None)

    def clean_subject(self):
        instance = getattr(self, 'instance', None)
        if instance:
            return instance.subject
        else:
            return self.cleaned_data.get('subject', None)

    def clean_student(self):
        instance = getattr(self, 'instance', None)
        if instance:
            return instance.student
        else:
            return self.cleaned_data.get('student', None)

    class Meta:
        model = Early
        fields = ['term', 'student', 'subject', 'test', 'test2', 'exam']

class GradeFormStaff(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(GradeFormStaff, self).__init__(*args, **kwargs)
        instance = getattr(self, 'instance', None)
        if instance and instance.id:
            self.fields['term'].required = False
            self.fields['term'].widget.attrs['disabled'] = 'disabled'
            self.fields['student'].required = False
            self.fields['student'].widget.attrs['disabled'] = 'disabled'

    def clean_term(self):
        instance = getattr(self, 'instance', None)
        if instance:
            return instance.term
        else:
            return self.cleaned_data.get('term', None)

    def clean_student(self):
        instance = getattr(self, 'instance', None)
        if instance:
            return instance.student
        else:
            return self.cleaned_data.get('student', None)

    class Meta:
        model = Grade
        fields = ['term', 'student', 'attentiveness', 'attitude', 'cooperation', 'emotional',
                'health', 'helping', 'leadership', 'neatness', 'perseverance', 'politeness',
                'punctuality', 'speaking', 'drawing', 'handling', 'games', 'verbal', 'handwriting',
                'music', 'sports', 'number_present', 'teacher_comment']

class GradeFormAdmin(forms.ModelForm):
    class Meta:
        model = Grade
        fields = ['head_comment']

class GradeForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(GradeForm, self).__init__(*args, **kwargs)
        instance = getattr(self, 'instance', None)
        if instance and instance.id:
            self.fields['term'].required = False
            self.fields['term'].widget.attrs['disabled'] = 'disabled'
            self.fields['subject'].required = False
            self.fields['subject'].widget.attrs['disabled'] = 'disabled'
            self.fields['student'].required = False
            self.fields['student'].widget.attrs['disabled'] = 'disabled'

    def clean_term(self):
        instance = getattr(self, 'instance', None)
        if instance:
            return instance.term
        else:
            return self.cleaned_data.get('term', None)

    def clean_subject(self):
        instance = getattr(self, 'instance', None)
        if instance:
            return instance.subject
        else:
            return self.cleaned_data.get('subject', None)

    def clean_student(self):
        instance = getattr(self, 'instance', None)
        if instance:
            return instance.student
        else:
            return self.cleaned_data.get('student', None)

    class Meta:
        model = Grade
        fields = ['term', 'student', 'subject', 'test', 'test2', 'exam']

class SecondaryFormStaff(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(SecondaryFormStaff, self).__init__(*args, **kwargs)
        instance = getattr(self, 'instance', None)
        if instance and instance.id:
            self.fields['term'].required = False
            self.fields['term'].widget.attrs['disabled'] = 'disabled'
            self.fields['student'].required = False
            self.fields['student'].widget.attrs['disabled'] = 'disabled'

    def clean_term(self):
        instance = getattr(self, 'instance', None)
        if instance:
            return instance.term
        else:
            return self.cleaned_data.get('term', None)

    def clean_student(self):
        instance = getattr(self, 'instance', None)
        if instance:
            return instance.student
        else:
            return self.cleaned_data.get('student', None)

    class Meta:
        model = Secondary
        fields = ['term', 'student', 'attentiveness', 'attitude', 'cooperation', 'emotional',
                'health', 'helping', 'leadership', 'neatness', 'perseverance', 'politeness',
                'punctuality', 'speaking', 'drawing', 'handling', 'games', 'verbal', 'handwriting',
                'music', 'sports', 'number_present', 'teacher_comment']

class SecondaryFormAdmin(forms.ModelForm):
    class Meta:
        model = Secondary
        fields = ['head_comment']

class SecondaryForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(SecondaryForm, self).__init__(*args, **kwargs)
        instance = getattr(self, 'instance', None)
        if instance and instance.id:
            self.fields['term'].required = False
            self.fields['term'].widget.attrs['disabled'] = 'disabled'
            self.fields['subject'].required = False
            self.fields['subject'].widget.attrs['disabled'] = 'disabled'
            self.fields['student'].required = False
            self.fields['student'].widget.attrs['disabled'] = 'disabled'

    def clean_term(self):
        instance = getattr(self, 'instance', None)
        if instance:
            return instance.term
        else:
            return self.cleaned_data.get('term', None)

    def clean_subject(self):
        instance = getattr(self, 'instance', None)
        if instance:
            return instance.subject
        else:
            return self.cleaned_data.get('subject', None)

    def clean_student(self):
        instance = getattr(self, 'instance', None)
        if instance:
            return instance.student
        else:
            return self.cleaned_data.get('student', None)

    class Meta:
        model = Secondary
        fields = ['term', 'student', 'subject', 'test', 'test2', 'exam']
