aboutsummaryrefslogtreecommitdiff
path: root/app/dispatch/misc.py
blob: e0976bf30ae57ef76c53e5f6029ffb377273ea98 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from django.utils import formats
from datetime import datetime, timedelta
from dateutil import rrule
import uuid

# Text formatted date. *sigh*
def get_week_dates(date=None):
    if date == None:
        date = formats.date_format(datetime.now(), "SHORT_DATE_FORMAT")
    dt = datetime.strptime(date, '%m/%d/%Y')

    return get_week_dates_datetime(dt=dt)

def get_week_dates_datetime(dt=None):
    week_dates = {}

    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