Fixed some fields and started more work on forms

This commit is contained in:
Rushil Umaretiya 2020-06-16 18:24:16 -04:00
parent f825713f2f
commit dab0534592
3 changed files with 18 additions and 26 deletions

View File

@ -61,7 +61,7 @@ class Class(models.Model):
return super(Class, self).save(*args, **kwargs) return super(Class, self).save(*args, **kwargs)
def __str__(self): def __str__(self):
return f"{self.user.first_name} {self.user.last_name} ({self.user.username})" return f"{self.name}"
class Teacher(models.Model): class Teacher(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE) user = models.OneToOneField(User, on_delete=models.CASCADE)
@ -70,7 +70,7 @@ class Teacher(models.Model):
ion_user=models.CharField(primary_key=True, max_length=100) ion_user=models.CharField(primary_key=True, max_length=100)
def __str__(self): def __str__(self):
return f"{self.user.username}'s Profile" return f"{self.user.first_name} {self.user.last_name} ({self.user.username})"
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
super(Teacher, self).save(*args, **kwargs) super(Teacher, self).save(*args, **kwargs)

View File

@ -54,23 +54,16 @@ class ClassCreationForm (forms.ModelForm):
initial['unconfirmed'] = [t.pk for t in kwargs['instance'].unconfirmed.all()] initial['unconfirmed'] = [t.pk for t in kwargs['instance'].unconfirmed.all()]
# Overriding save allows us to process the value of 'unconfirmed' field # Overriding save allows us to process the value of 'unconfirmed' field
def save(self, commit=True): def save(self, username=""):
# Get the unsave Pizza instance cleaned_data = self.cleaned_data
instance = forms.ModelForm.save(self, False) print(self)
# Prepare a 'save_m2m' method for the form, # Get the unsave Class instance
old_save_m2m = self.save_m2m instance = forms.ModelForm.save(self)
def save_m2m(): instance.unconfirmed.clear()
old_save_m2m() instance.unconfirmed.add(*cleaned_data['unconfirmed'])
# This is where we actually link the pizza with toppings instance.name = cleaned_data['subject'] + str(cleaned_data['period']) + "_" + username
instance.topping_set.clear() print("Class name: " + instance.name)
instance.topping_set.add(*self.cleaned_data['unconfirmed'])
self.save_m2m = save_m2m
# Do we need to save all changes now?
if commit:
instance.save()
self.save_m2m()
return instance return instance

View File

@ -139,14 +139,13 @@ def createClassHelper(request):
teacher = request.user.teacher teacher = request.user.teacher
if request.method == "POST": if request.method == "POST":
userForm = UserUpdateForm(request.POST, instance=request.user) classForm = ClassCreationForm(request.POST)
profileForm = TeacherUpdateForm(request.POST, if classForm.is_valid():
instance=request.user.teacher) cleaned_data = classForm.clean()
if userForm.is_valid() and profileForm.is_valid(): print(cleaned_data)
userForm.save() classForm.save(username=teacher.user.username)
profileForm.save() messages.success(request, cleaned_data['subject'].capitalize() + " has been created!")
messages.success(request, "Your account has been updated!") return redirect('home')
return redirect('profile')
else: else:
classForm = ClassCreationForm() classForm = ClassCreationForm()