106 lines
3.8 KiB
Python
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'})
|