From 60f907070db49861fbe6776f1c979b6615c853a2 Mon Sep 17 00:00:00 2001 From: bsimpson63 Date: Thu, 14 Feb 2013 11:18:04 -0500 Subject: [PATCH] VDate can take alternate date formats. --- r2/r2/lib/validator/validator.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/r2/r2/lib/validator/validator.py b/r2/r2/lib/validator/validator.py index 995358697..90e854788 100644 --- a/r2/r2/lib/validator/validator.py +++ b/r2/r2/lib/validator/validator.py @@ -1696,7 +1696,7 @@ class ValidIP(Validator): class VDate(Validator): """ - Date checker that accepts string inputs in %m/%d/%Y format. + Date checker that accepts string inputs. Optional parameters include 'past' and 'future' which specify how far (in days) into the past or future the date must be to be @@ -1712,13 +1712,16 @@ class VDate(Validator): def __init__(self, param, future=None, past = None, sponsor_override = False, reference_date = lambda : datetime.now(g.tz), - business_days = False): + business_days = False, + format = "%m/%d/%Y"): self.future = future self.past = past # are weekends to be exluded from the interval? self.business_days = business_days + self.format = format + # function for generating "now" self.reference_date = reference_date @@ -1730,7 +1733,7 @@ class VDate(Validator): now = self.reference_date() override = c.user_is_sponsor and self.override try: - date = datetime.strptime(date, "%m/%d/%Y") + date = datetime.strptime(date, self.format) if not override: # can't put in __init__ since we need the date on the fly future = utils.make_offset_date(now, self.future,