from django.forms import ( Form, ModelForm, ModelMultipleChoiceField, ModelChoiceField, ChoiceField, CharField, ) from django.forms import inlineformset_factory from longs.models import ( #Examination, Note, Long, LongSeries, LongSeriesImage, LongCreationDefault, CidUserAnswer, Exam, ) from generic.models import Examination, Condition, Sign #from generic.models import Examination, Site, Condition, Sign from django.contrib.admin.widgets import FilteredSelectMultiple from django.forms.widgets import RadioSelect, TextInput, Textarea class LongAnswerForm(ModelForm): class Meta: model = CidUserAnswer fields = ("answer_observations","answer_interpretation","answer_principle_diagnosis","answer_differential_diagnosis","answer_management",) class MarkLongQuestionForm(Form): # correct = forms.CharField(required=False) # half_correct = forms.CharField(required=False) # incorrect = forms.CharField(required=False) marked_answers = CharField(required=False) class ExaminationForm(ModelForm): class Meta: model = Examination fields = ["examination"] class NoteForm(ModelForm): class Meta: model = Note fields = ["note"] class LongCreationDefaultForm(ModelForm): class Meta: model = LongCreationDefault #fields = ["site"] exclude = ["author"] class LongSeriesForm(ModelForm): def __init__(self, *args, **kwargs): super(LongSeriesForm, self).__init__(*args, **kwargs) self.fields["examination"] = ModelChoiceField( queryset=Examination.objects.all(), widget=FilteredSelectMultiple(verbose_name="Examination", is_stacked=False), ) class Meta: model = LongSeries exclude = [] class LongForm(ModelForm): class Media: # Django also includes a few javascript files necessary # for the operation of this form element. You need to # include # in the template. css = { "all": ["css/widgets.css"], } # Adding this javascript is crucial js = ["jsi18n.js", "tesseract.min.js"] def __init__(self, *args, **kwargs): super(LongForm, self).__init__(*args, **kwargs) # self.fields['question'].widget.attrs = {'class': 'question-form', 'rows': 10, 'cols': 100} # self.fields['feedback'].widget.attrs = {'class': 'feedback-form', 'rows': 10, 'cols': 100} #self.fields["examination"] = ModelMultipleChoiceField( # queryset=Examination.objects.all(), # widget=FilteredSelectMultiple(verbose_name="Examination", is_stacked=False), #) class Meta: model = Long # fields = ['due_back'] # fields = '__all__' fields = [ #"examination", #"site", "feedback", ] # fields = ['question', 'feedback', 'subspecialty', 'references'] widgets = { # "normal": RadioSelect( # choices=[(True, 'Yes'), # (False, 'No')]) } SeriesFormSet = inlineformset_factory( Long, LongSeries, exclude=[], can_delete=True, extra=4, max_num=10, field_classes="testing", ) LongSeriesImageFormSet = inlineformset_factory( LongSeries, LongSeriesImage, exclude=[], can_delete=True, extra=4, max_num=2000, field_classes="testing", )