24 lines
921 B
Python
24 lines
921 B
Python
from django.core.exceptions import ValidationError
|
|
from django.utils.translation import ugettext_lazy as _
|
|
import datetime #for checking renewal date range.
|
|
|
|
from django import forms
|
|
|
|
class RenewBookForm(forms.Form):
|
|
"""
|
|
Form for a librarian to renew books.
|
|
"""
|
|
renewal_date = forms.DateField(help_text="Enter a date between now and 4 weeks (default 3).")
|
|
|
|
def clean_renewal_date(self):
|
|
data = self.cleaned_data['renewal_date']
|
|
|
|
#Check date is not in past.
|
|
if data < datetime.date.today():
|
|
raise ValidationError(_('Invalid date - renewal in past'))
|
|
#Check date is in range librarian allowed to change (+4 weeks)
|
|
if data > datetime.date.today() + datetime.timedelta(weeks=4):
|
|
raise ValidationError(_('Invalid date - renewal more than 4 weeks ahead'))
|
|
|
|
# Remember to always return the cleaned data.
|
|
return data |