from django.utils import formats from datetime import datetime, timedelta from dateutil import rrule import uuid def get_week_dates(date=None): week_dates = {} if date == None: date = formats.date_format(datetime.now(), "SHORT_DATE_FORMAT") dt = datetime.strptime(date, '%m/%d/%Y') weekday = dt.weekday() if weekday == 6: week_dates['start_date'] = dt else: weekday = weekday + 1 week_dates['start_date'] = dt - timedelta(days=weekday) week_dates['end_date'] = week_dates['start_date'] + timedelta(days=6) week_dates['next_week'] = week_dates['end_date'] + timedelta(days=1) week_dates['previous_week'] = week_dates['start_date'] - timedelta(days=1) return week_dates def split_loads_by_day(loads,start_date,end_date): split_loads = {} for date in rrule.rrule(rrule.DAILY,dtstart=start_date, until=end_date): if date not in split_loads: split_loads[date] = loads.filter(date=date) return split_loads # This is used to set the upload path of the document for Paperwork Objects def paperwork_user_directory_path(instance, filename): # We don't want the UUID to be too long, just enough so there aren't any # filename conflicts return 'paperwork/{:d}/'.format(instance.load.pk) + \ str(uuid.uuid4())[0:9] + filename