aboutsummaryrefslogtreecommitdiff
path: root/app/dispatch/misc.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/dispatch/misc.py')
-rw-r--r--app/dispatch/misc.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/app/dispatch/misc.py b/app/dispatch/misc.py
new file mode 100644
index 0000000..14bb5e7
--- /dev/null
+++ b/app/dispatch/misc.py
@@ -0,0 +1,37 @@
+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
+