2021-03-25 16:13:17 +03:00

106 lines
3.8 KiB
Python

from django import forms
from django.db import transaction
from django.conf import settings
from django.contrib.auth.models import User
from accounts.models import User
from .models import Program, Course, CourseAllocation, Upload, UploadVideo
# User = settings.AUTH_USER_MODEL
class ProgramForm(forms.ModelForm):
class Meta:
model = Program
fields = '__all__'
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['title'].widget.attrs.update({'class': 'form-control'})
self.fields['summary'].widget.attrs.update({'class': 'form-control'})
class CourseAddForm(forms.ModelForm):
class Meta:
model = Course
fields = '__all__'
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['title'].widget.attrs.update({'class': 'form-control'})
self.fields['code'].widget.attrs.update({'class': 'form-control'})
# self.fields['courseUnit'].widget.attrs.update({'class': 'form-control'})
self.fields['credit'].widget.attrs.update({'class': 'form-control'})
self.fields['summary'].widget.attrs.update({'class': 'form-control'})
self.fields['program'].widget.attrs.update({'class': 'form-control'})
self.fields['level'].widget.attrs.update({'class': 'form-control'})
self.fields['year'].widget.attrs.update({'class': 'form-control'})
self.fields['semester'].widget.attrs.update({'class': 'form-control'})
class CourseAllocationForm(forms.ModelForm):
courses = forms.ModelMultipleChoiceField(
queryset=Course.objects.all().order_by('level'),
widget=forms.CheckboxSelectMultiple(attrs={'class': 'browser-default checkbox'}),
required=True
)
lecturer = forms.ModelChoiceField(
queryset=User.objects.filter(is_lecturer=True),
widget=forms.Select(attrs={'class': 'browser-default custom-select'}),
label="lecturer",
)
class Meta:
model = CourseAllocation
fields = ['lecturer', 'courses']
def __init__(self, *args, **kwargs):
user = kwargs.pop('user')
super(CourseAllocationForm, self).__init__(*args, **kwargs)
self.fields['lecturer'].queryset = User.objects.filter(is_lecturer=True)
class EditCourseAllocationForm(forms.ModelForm):
courses = forms.ModelMultipleChoiceField(
queryset=Course.objects.all().order_by('level'),
widget=forms.CheckboxSelectMultiple,
required=True
)
lecturer = forms.ModelChoiceField(
queryset=User.objects.filter(is_lecturer=True),
widget=forms.Select(attrs={'class': 'browser-default custom-select'}),
label="lecturer",
)
class Meta:
model = CourseAllocation
fields = ['lecturer', 'courses']
def __init__(self, *args, **kwargs):
# user = kwargs.pop('user')
super(EditCourseAllocationForm, self).__init__(*args, **kwargs)
self.fields['lecturer'].queryset = User.objects.filter(is_lecturer=True)
# Upload files to specific course
class UploadFormFile(forms.ModelForm):
class Meta:
model = Upload
fields = ('title', 'file', 'course',)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['title'].widget.attrs.update({'class': 'form-control'})
self.fields['file'].widget.attrs.update({'class': 'form-control'})
# Upload video to specific course
class UploadFormVideo(forms.ModelForm):
class Meta:
model = UploadVideo
fields = ('title', 'video', 'course',)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['title'].widget.attrs.update({'class': 'form-control'})
self.fields['video'].widget.attrs.update({'class': 'form-control'})