Coverage for catalog/forms.py: 100.00%

12 statements  

« prev     ^ index     » next       coverage.py v7.9.1, created at 2025-06-13 15:39 -0700

1import datetime 

2 

3from django import forms 

4from django.core.exceptions import ValidationError 

5 

6 

7class RenewBookForm(forms.Form): 

8 """Form for a librarian to renew books.""" 

9 

10 renewal_date = forms.DateField( 

11 help_text="Enter a date between now and 4 weeks (default 3)." 

12 ) 

13 

14 def clean_renewal_date(self): 

15 data = self.cleaned_data["renewal_date"] 1fbcde

16 

17 # Check if a date is not in the past. 

18 if data < datetime.date.today(): 1fbcde

19 raise ValidationError("Invalid date - renewal in past") 1f

20 

21 # Check if a date is in the allowed range (+4 weeks from today). 

22 if data > datetime.date.today() + datetime.timedelta(weeks=4): 1bcde

23 raise ValidationError("Invalid date - renewal more than 4 weeks ahead") 1d

24 

25 # Remember to always return the cleaned data. 

26 return data 1bce