def get_dates(self, request): to_ret = {} if self.request.POST: form = DateRangeForm(self.request.POST) if form.is_valid(): to_ret['start'] = form.cleaned_data['start'] to_ret['end'] = form.cleaned_data['end'] return to_ret
def get_dates(self, request): """ Process date variables from POST, session, or defaults """ if request.POST: form = DateRangeForm(request.POST) if form.is_valid(): cursor = connection.cursor() cursor.execute("select min(created) from rapidsms_xforms_xformsubmission") min_date = cursor.fetchone()[0] or (datetime.datetime.now() - datetime.timedelta(365)) start_date = form.cleaned_data['start'] end_date = form.cleaned_data['end'] request.session['start_date'] = start_date request.session['end_date'] = end_date return { 'max':datetime.datetime.now(), 'min':min_date, 'start':start_date, 'end':end_date, } else: return {} else: cursor = connection.cursor() cursor.execute("select min(created), max(created) from rapidsms_xforms_xformsubmission") min_date, end_date = cursor.fetchone() end_date = end_date or datetime.datetime.now() min_date = min_date or (datetime.datetime.now() - datetime.timedelta(365)) start_date = end_date - datetime.timedelta(days=30) if request.session.get('start_date', None) and request.session.get('end_date', None): start_date = request.session['start_date'] end_date = request.session['end_date'] return { 'max':datetime.datetime.now(), 'min':min_date, 'start':start_date, 'end':end_date, }