that contains calendar
+ calendarLinkName: 'calendarlink', // name of the link that is used to toggle
+ clockDivName: 'clockbox', // name of clock
that gets toggled
+ clockLinkName: 'clocklink', // name of the link that is used to toggle
shortCutsClass: 'datetimeshortcuts', // class of the clock and cal shortcuts
timezoneWarningClass: 'timezonewarning', // class of the warning for timezone mismatch
timezoneOffset: 0,
@@ -399,10 +399,10 @@
var format = get_format('DATE_INPUT_FORMATS')[0];
// the format needs to be escaped a little
format = format.replace('\\', '\\\\')
- .replace('\r', '\\r')
- .replace('\n', '\\n')
- .replace('\t', '\\t')
- .replace("'", "\\'");
+ .replace('\r', '\\r')
+ .replace('\n', '\\n')
+ .replace('\t', '\\t')
+ .replace("'", "\\'");
return function(y, m, d) {
DateTimeShortcuts.calendarInputs[num].value = new Date(y, m - 1, d).strftime(format);
DateTimeShortcuts.calendarInputs[num].focus();
diff --git a/static/admin/js/admin/DateTimeShortcuts.js.gz b/static/admin/js/admin/DateTimeShortcuts.js.gz
index c5ecf1ba..e4c5c0fb 100644
Binary files a/static/admin/js/admin/DateTimeShortcuts.js.gz and b/static/admin/js/admin/DateTimeShortcuts.js.gz differ
diff --git a/static/admin/js/cancel.a2c3149a1c5e.js b/static/admin/js/cancel.a2c3149a1c5e.js
new file mode 100644
index 00000000..8809ee77
--- /dev/null
+++ b/static/admin/js/cancel.a2c3149a1c5e.js
@@ -0,0 +1,13 @@
+(function($) {
+ 'use strict';
+ $(function() {
+ $('.cancel-link').on('click', function(e) {
+ e.preventDefault();
+ if (window.location.search.indexOf('&_popup=1') === -1) {
+ window.history.back(); // Go back if not a popup.
+ } else {
+ window.close(); // Otherwise, close the popup.
+ }
+ });
+ });
+})(django.jQuery);
diff --git a/static/admin/js/cancel.a2c3149a1c5e.js.gz b/static/admin/js/cancel.a2c3149a1c5e.js.gz
new file mode 100644
index 00000000..41ae011a
Binary files /dev/null and b/static/admin/js/cancel.a2c3149a1c5e.js.gz differ
diff --git a/static/admin/js/cancel.js b/static/admin/js/cancel.js
index 04ec812a..8809ee77 100644
--- a/static/admin/js/cancel.js
+++ b/static/admin/js/cancel.js
@@ -4,7 +4,7 @@
$('.cancel-link').on('click', function(e) {
e.preventDefault();
if (window.location.search.indexOf('&_popup=1') === -1) {
- window.history.back(); // Go back if not a popup.
+ window.history.back(); // Go back if not a popup.
} else {
window.close(); // Otherwise, close the popup.
}
diff --git a/static/admin/js/cancel.js.gz b/static/admin/js/cancel.js.gz
index e60263d1..41ae011a 100644
Binary files a/static/admin/js/cancel.js.gz and b/static/admin/js/cancel.js.gz differ
diff --git a/static/admin/js/core.a004ed25a257.js b/static/admin/js/core.a004ed25a257.js
new file mode 100644
index 00000000..4f2fe138
--- /dev/null
+++ b/static/admin/js/core.a004ed25a257.js
@@ -0,0 +1,212 @@
+// Core javascript helper functions
+
+// basic browser identification & version
+var isOpera = (navigator.userAgent.indexOf("Opera") >= 0) && parseFloat(navigator.appVersion);
+var isIE = ((document.all) && (!isOpera)) && parseFloat(navigator.appVersion.split("MSIE ")[1].split(";")[0]);
+
+// quickElement(tagType, parentReference [, textInChildNode, attribute, attributeValue ...]);
+function quickElement() {
+ 'use strict';
+ var obj = document.createElement(arguments[0]);
+ if (arguments[2]) {
+ var textNode = document.createTextNode(arguments[2]);
+ obj.appendChild(textNode);
+ }
+ var len = arguments.length;
+ for (var i = 3; i < len; i += 2) {
+ obj.setAttribute(arguments[i], arguments[i + 1]);
+ }
+ arguments[1].appendChild(obj);
+ return obj;
+}
+
+// "a" is reference to an object
+function removeChildren(a) {
+ 'use strict';
+ while (a.hasChildNodes()) {
+ a.removeChild(a.lastChild);
+ }
+}
+
+// ----------------------------------------------------------------------------
+// Find-position functions by PPK
+// See https://www.quirksmode.org/js/findpos.html
+// ----------------------------------------------------------------------------
+function findPosX(obj) {
+ 'use strict';
+ var curleft = 0;
+ if (obj.offsetParent) {
+ while (obj.offsetParent) {
+ curleft += obj.offsetLeft - ((isOpera) ? 0 : obj.scrollLeft);
+ obj = obj.offsetParent;
+ }
+ // IE offsetParent does not include the top-level
+ if (isIE && obj.parentElement) {
+ curleft += obj.offsetLeft - obj.scrollLeft;
+ }
+ } else if (obj.x) {
+ curleft += obj.x;
+ }
+ return curleft;
+}
+
+function findPosY(obj) {
+ 'use strict';
+ var curtop = 0;
+ if (obj.offsetParent) {
+ while (obj.offsetParent) {
+ curtop += obj.offsetTop - ((isOpera) ? 0 : obj.scrollTop);
+ obj = obj.offsetParent;
+ }
+ // IE offsetParent does not include the top-level
+ if (isIE && obj.parentElement) {
+ curtop += obj.offsetTop - obj.scrollTop;
+ }
+ } else if (obj.y) {
+ curtop += obj.y;
+ }
+ return curtop;
+}
+
+//-----------------------------------------------------------------------------
+// Date object extensions
+// ----------------------------------------------------------------------------
+(function() {
+ 'use strict';
+ Date.prototype.getTwelveHours = function() {
+ var hours = this.getHours();
+ if (hours === 0) {
+ return 12;
+ }
+ else {
+ return hours <= 12 ? hours : hours - 12;
+ }
+ };
+
+ Date.prototype.getTwoDigitMonth = function() {
+ return (this.getMonth() < 9) ? '0' + (this.getMonth() + 1) : (this.getMonth() + 1);
+ };
+
+ Date.prototype.getTwoDigitDate = function() {
+ return (this.getDate() < 10) ? '0' + this.getDate() : this.getDate();
+ };
+
+ Date.prototype.getTwoDigitTwelveHour = function() {
+ return (this.getTwelveHours() < 10) ? '0' + this.getTwelveHours() : this.getTwelveHours();
+ };
+
+ Date.prototype.getTwoDigitHour = function() {
+ return (this.getHours() < 10) ? '0' + this.getHours() : this.getHours();
+ };
+
+ Date.prototype.getTwoDigitMinute = function() {
+ return (this.getMinutes() < 10) ? '0' + this.getMinutes() : this.getMinutes();
+ };
+
+ Date.prototype.getTwoDigitSecond = function() {
+ return (this.getSeconds() < 10) ? '0' + this.getSeconds() : this.getSeconds();
+ };
+
+ Date.prototype.getHourMinute = function() {
+ return this.getTwoDigitHour() + ':' + this.getTwoDigitMinute();
+ };
+
+ Date.prototype.getHourMinuteSecond = function() {
+ return this.getTwoDigitHour() + ':' + this.getTwoDigitMinute() + ':' + this.getTwoDigitSecond();
+ };
+
+ Date.prototype.getFullMonthName = function() {
+ return typeof window.CalendarNamespace === "undefined"
+ ? this.getTwoDigitMonth()
+ : window.CalendarNamespace.monthsOfYear[this.getMonth()];
+ };
+
+ Date.prototype.strftime = function(format) {
+ var fields = {
+ B: this.getFullMonthName(),
+ c: this.toString(),
+ d: this.getTwoDigitDate(),
+ H: this.getTwoDigitHour(),
+ I: this.getTwoDigitTwelveHour(),
+ m: this.getTwoDigitMonth(),
+ M: this.getTwoDigitMinute(),
+ p: (this.getHours() >= 12) ? 'PM' : 'AM',
+ S: this.getTwoDigitSecond(),
+ w: '0' + this.getDay(),
+ x: this.toLocaleDateString(),
+ X: this.toLocaleTimeString(),
+ y: ('' + this.getFullYear()).substr(2, 4),
+ Y: '' + this.getFullYear(),
+ '%': '%'
+ };
+ var result = '', i = 0;
+ while (i < format.length) {
+ if (format.charAt(i) === '%') {
+ result = result + fields[format.charAt(i + 1)];
+ ++i;
+ }
+ else {
+ result = result + format.charAt(i);
+ }
+ ++i;
+ }
+ return result;
+ };
+
+ // ----------------------------------------------------------------------------
+ // String object extensions
+ // ----------------------------------------------------------------------------
+ String.prototype.pad_left = function(pad_length, pad_string) {
+ var new_string = this;
+ for (var i = 0; new_string.length < pad_length; i++) {
+ new_string = pad_string + new_string;
+ }
+ return new_string;
+ };
+
+ String.prototype.strptime = function(format) {
+ var split_format = format.split(/[.\-/]/);
+ var date = this.split(/[.\-/]/);
+ var i = 0;
+ var day, month, year;
+ while (i < split_format.length) {
+ switch (split_format[i]) {
+ case "%d":
+ day = date[i];
+ break;
+ case "%m":
+ month = date[i] - 1;
+ break;
+ case "%Y":
+ year = date[i];
+ break;
+ case "%y":
+ year = date[i];
+ break;
+ }
+ ++i;
+ }
+ // Create Date object from UTC since the parsed value is supposed to be
+ // in UTC, not local time. Also, the calendar uses UTC functions for
+ // date extraction.
+ return new Date(Date.UTC(year, month, day));
+ };
+
+})();
+// ----------------------------------------------------------------------------
+// Get the computed style for and element
+// ----------------------------------------------------------------------------
+function getStyle(oElm, strCssRule) {
+ 'use strict';
+ var strValue = "";
+ if(document.defaultView && document.defaultView.getComputedStyle) {
+ strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
+ }
+ else if(oElm.currentStyle) {
+ strCssRule = strCssRule.replace(/\-(\w)/g, function(strMatch, p1) {
+ return p1.toUpperCase();
+ });
+ strValue = oElm.currentStyle[strCssRule];
+ }
+ return strValue;
+}
diff --git a/static/admin/js/core.a004ed25a257.js.gz b/static/admin/js/core.a004ed25a257.js.gz
new file mode 100644
index 00000000..37ba5ad5
Binary files /dev/null and b/static/admin/js/core.a004ed25a257.js.gz differ
diff --git a/static/admin/js/core.js b/static/admin/js/core.js
index 591394e5..4f2fe138 100644
--- a/static/admin/js/core.js
+++ b/static/admin/js/core.js
@@ -153,9 +153,9 @@ function findPosY(obj) {
return result;
};
-// ----------------------------------------------------------------------------
-// String object extensions
-// ----------------------------------------------------------------------------
+ // ----------------------------------------------------------------------------
+ // String object extensions
+ // ----------------------------------------------------------------------------
String.prototype.pad_left = function(pad_length, pad_string) {
var new_string = this;
for (var i = 0; new_string.length < pad_length; i++) {
@@ -171,18 +171,18 @@ function findPosY(obj) {
var day, month, year;
while (i < split_format.length) {
switch (split_format[i]) {
- case "%d":
- day = date[i];
- break;
- case "%m":
- month = date[i] - 1;
- break;
- case "%Y":
- year = date[i];
- break;
- case "%y":
- year = date[i];
- break;
+ case "%d":
+ day = date[i];
+ break;
+ case "%m":
+ month = date[i] - 1;
+ break;
+ case "%Y":
+ year = date[i];
+ break;
+ case "%y":
+ year = date[i];
+ break;
}
++i;
}
diff --git a/static/admin/js/core.js.gz b/static/admin/js/core.js.gz
index 1e37902b..37ba5ad5 100644
Binary files a/static/admin/js/core.js.gz and b/static/admin/js/core.js.gz differ
diff --git a/static/admin/js/inlines.12d1af430335.js b/static/admin/js/inlines.12d1af430335.js
new file mode 100644
index 00000000..ba8c9cd7
--- /dev/null
+++ b/static/admin/js/inlines.12d1af430335.js
@@ -0,0 +1,298 @@
+/*global DateTimeShortcuts, SelectFilter*/
+/**
+ * Django admin inlines
+ *
+ * Based on jQuery Formset 1.1
+ * @author Stanislaus Madueke (stan DOT madueke AT gmail DOT com)
+ * @requires jQuery 1.2.6 or later
+ *
+ * Copyright (c) 2009, Stanislaus Madueke
+ * All rights reserved.
+ *
+ * Spiced up with Code from Zain Memon's GSoC project 2009
+ * and modified for Django by Jannis Leidel, Travis Swicegood and Julien Phalip.
+ *
+ * Licensed under the New BSD License
+ * See: https://opensource.org/licenses/bsd-license.php
+ */
+(function($) {
+ 'use strict';
+ $.fn.formset = function(opts) {
+ var options = $.extend({}, $.fn.formset.defaults, opts);
+ var $this = $(this);
+ var $parent = $this.parent();
+ var updateElementIndex = function(el, prefix, ndx) {
+ var id_regex = new RegExp("(" + prefix + "-(\\d+|__prefix__))");
+ var replacement = prefix + "-" + ndx;
+ if ($(el).prop("for")) {
+ $(el).prop("for", $(el).prop("for").replace(id_regex, replacement));
+ }
+ if (el.id) {
+ el.id = el.id.replace(id_regex, replacement);
+ }
+ if (el.name) {
+ el.name = el.name.replace(id_regex, replacement);
+ }
+ };
+ var totalForms = $("#id_" + options.prefix + "-TOTAL_FORMS").prop("autocomplete", "off");
+ var nextIndex = parseInt(totalForms.val(), 10);
+ var maxForms = $("#id_" + options.prefix + "-MAX_NUM_FORMS").prop("autocomplete", "off");
+ // only show the add button if we are allowed to add more items,
+ // note that max_num = None translates to a blank string.
+ var showAddButton = maxForms.val() === '' || (maxForms.val() - totalForms.val()) > 0;
+ $this.each(function(i) {
+ $(this).not("." + options.emptyCssClass).addClass(options.formCssClass);
+ });
+ if ($this.length && showAddButton) {
+ var addButton = options.addButton;
+ if (addButton === null) {
+ if ($this.prop("tagName") === "TR") {
+ // If forms are laid out as table rows, insert the
+ // "add" button in a new table row:
+ var numCols = this.eq(-1).children().length;
+ $parent.append('
' + options.addText + " ");
+ addButton = $parent.find("tr:last a");
+ } else {
+ // Otherwise, insert it immediately after the last form:
+ $this.filter(":last").after('
");
+ addButton = $this.filter(":last").next().find("a");
+ }
+ }
+ addButton.on('click', function(e) {
+ e.preventDefault();
+ var template = $("#" + options.prefix + "-empty");
+ var row = template.clone(true);
+ row.removeClass(options.emptyCssClass)
+ .addClass(options.formCssClass)
+ .attr("id", options.prefix + "-" + nextIndex);
+ if (row.is("tr")) {
+ // If the forms are laid out in table rows, insert
+ // the remove button into the last table cell:
+ row.children(":last").append('
");
+ } else if (row.is("ul") || row.is("ol")) {
+ // If they're laid out as an ordered/unordered list,
+ // insert an
after the last list item:
+ row.append(' ' + options.deleteText + " ");
+ } else {
+ // Otherwise, just insert the remove button as the
+ // last child element of the form's container:
+ row.children(":first").append('
' + options.deleteText + " ");
+ }
+ row.find("*").each(function() {
+ updateElementIndex(this, options.prefix, totalForms.val());
+ });
+ // Insert the new form when it has been fully edited
+ row.insertBefore($(template));
+ // Update number of total forms
+ $(totalForms).val(parseInt(totalForms.val(), 10) + 1);
+ nextIndex += 1;
+ // Hide add button in case we've hit the max, except we want to add infinitely
+ if ((maxForms.val() !== '') && (maxForms.val() - totalForms.val()) <= 0) {
+ addButton.parent().hide();
+ }
+ // The delete button of each row triggers a bunch of other things
+ row.find("a." + options.deleteCssClass).on('click', function(e1) {
+ e1.preventDefault();
+ // Remove the parent form containing this button:
+ row.remove();
+ nextIndex -= 1;
+ // If a post-delete callback was provided, call it with the deleted form:
+ if (options.removed) {
+ options.removed(row);
+ }
+ $(document).trigger('formset:removed', [row, options.prefix]);
+ // Update the TOTAL_FORMS form count.
+ var forms = $("." + options.formCssClass);
+ $("#id_" + options.prefix + "-TOTAL_FORMS").val(forms.length);
+ // Show add button again once we drop below max
+ if ((maxForms.val() === '') || (maxForms.val() - forms.length) > 0) {
+ addButton.parent().show();
+ }
+ // Also, update names and ids for all remaining form controls
+ // so they remain in sequence:
+ var i, formCount;
+ var updateElementCallback = function() {
+ updateElementIndex(this, options.prefix, i);
+ };
+ for (i = 0, formCount = forms.length; i < formCount; i++) {
+ updateElementIndex($(forms).get(i), options.prefix, i);
+ $(forms.get(i)).find("*").each(updateElementCallback);
+ }
+ });
+ // If a post-add callback was supplied, call it with the added form:
+ if (options.added) {
+ options.added(row);
+ }
+ $(document).trigger('formset:added', [row, options.prefix]);
+ });
+ }
+ return this;
+ };
+
+ /* Setup plugin defaults */
+ $.fn.formset.defaults = {
+ prefix: "form", // The form prefix for your django formset
+ addText: "add another", // Text for the add link
+ deleteText: "remove", // Text for the delete link
+ addCssClass: "add-row", // CSS class applied to the add link
+ deleteCssClass: "delete-row", // CSS class applied to the delete link
+ emptyCssClass: "empty-row", // CSS class applied to the empty row
+ formCssClass: "dynamic-form", // CSS class applied to each form in a formset
+ added: null, // Function called each time a new form is added
+ removed: null, // Function called each time a form is deleted
+ addButton: null // Existing add button to use
+ };
+
+
+ // Tabular inlines ---------------------------------------------------------
+ $.fn.tabularFormset = function(selector, options) {
+ var $rows = $(this);
+ var alternatingRows = function(row) {
+ $(selector).not(".add-row").removeClass("row1 row2")
+ .filter(":even").addClass("row1").end()
+ .filter(":odd").addClass("row2");
+ };
+
+ var reinitDateTimeShortCuts = function() {
+ // Reinitialize the calendar and clock widgets by force
+ if (typeof DateTimeShortcuts !== "undefined") {
+ $(".datetimeshortcuts").remove();
+ DateTimeShortcuts.init();
+ }
+ };
+
+ var updateSelectFilter = function() {
+ // If any SelectFilter widgets are a part of the new form,
+ // instantiate a new SelectFilter instance for it.
+ if (typeof SelectFilter !== 'undefined') {
+ $('.selectfilter').each(function(index, value) {
+ var namearr = value.name.split('-');
+ SelectFilter.init(value.id, namearr[namearr.length - 1], false);
+ });
+ $('.selectfilterstacked').each(function(index, value) {
+ var namearr = value.name.split('-');
+ SelectFilter.init(value.id, namearr[namearr.length - 1], true);
+ });
+ }
+ };
+
+ var initPrepopulatedFields = function(row) {
+ row.find('.prepopulated_field').each(function() {
+ var field = $(this),
+ input = field.find('input, select, textarea'),
+ dependency_list = input.data('dependency_list') || [],
+ dependencies = [];
+ $.each(dependency_list, function(i, field_name) {
+ dependencies.push('#' + row.find('.field-' + field_name).find('input, select, textarea').attr('id'));
+ });
+ if (dependencies.length) {
+ input.prepopulate(dependencies, input.attr('maxlength'));
+ }
+ });
+ };
+
+ $rows.formset({
+ prefix: options.prefix,
+ addText: options.addText,
+ formCssClass: "dynamic-" + options.prefix,
+ deleteCssClass: "inline-deletelink",
+ deleteText: options.deleteText,
+ emptyCssClass: "empty-form",
+ removed: alternatingRows,
+ added: function(row) {
+ initPrepopulatedFields(row);
+ reinitDateTimeShortCuts();
+ updateSelectFilter();
+ alternatingRows(row);
+ },
+ addButton: options.addButton
+ });
+
+ return $rows;
+ };
+
+ // Stacked inlines ---------------------------------------------------------
+ $.fn.stackedFormset = function(selector, options) {
+ var $rows = $(this);
+ var updateInlineLabel = function(row) {
+ $(selector).find(".inline_label").each(function(i) {
+ var count = i + 1;
+ $(this).html($(this).html().replace(/(#\d+)/g, "#" + count));
+ });
+ };
+
+ var reinitDateTimeShortCuts = function() {
+ // Reinitialize the calendar and clock widgets by force, yuck.
+ if (typeof DateTimeShortcuts !== "undefined") {
+ $(".datetimeshortcuts").remove();
+ DateTimeShortcuts.init();
+ }
+ };
+
+ var updateSelectFilter = function() {
+ // If any SelectFilter widgets were added, instantiate a new instance.
+ if (typeof SelectFilter !== "undefined") {
+ $(".selectfilter").each(function(index, value) {
+ var namearr = value.name.split('-');
+ SelectFilter.init(value.id, namearr[namearr.length - 1], false);
+ });
+ $(".selectfilterstacked").each(function(index, value) {
+ var namearr = value.name.split('-');
+ SelectFilter.init(value.id, namearr[namearr.length - 1], true);
+ });
+ }
+ };
+
+ var initPrepopulatedFields = function(row) {
+ row.find('.prepopulated_field').each(function() {
+ var field = $(this),
+ input = field.find('input, select, textarea'),
+ dependency_list = input.data('dependency_list') || [],
+ dependencies = [];
+ $.each(dependency_list, function(i, field_name) {
+ dependencies.push('#' + row.find('.form-row .field-' + field_name).find('input, select, textarea').attr('id'));
+ });
+ if (dependencies.length) {
+ input.prepopulate(dependencies, input.attr('maxlength'));
+ }
+ });
+ };
+
+ $rows.formset({
+ prefix: options.prefix,
+ addText: options.addText,
+ formCssClass: "dynamic-" + options.prefix,
+ deleteCssClass: "inline-deletelink",
+ deleteText: options.deleteText,
+ emptyCssClass: "empty-form",
+ removed: updateInlineLabel,
+ added: function(row) {
+ initPrepopulatedFields(row);
+ reinitDateTimeShortCuts();
+ updateSelectFilter();
+ updateInlineLabel(row);
+ },
+ addButton: options.addButton
+ });
+
+ return $rows;
+ };
+
+ $(document).ready(function() {
+ $(".js-inline-admin-formset").each(function() {
+ var data = $(this).data(),
+ inlineOptions = data.inlineFormset,
+ selector;
+ switch(data.inlineType) {
+ case "stacked":
+ selector = inlineOptions.name + "-group .inline-related";
+ $(selector).stackedFormset(selector, inlineOptions.options);
+ break;
+ case "tabular":
+ selector = inlineOptions.name + "-group .tabular.inline-related tbody:first > tr";
+ $(selector).tabularFormset(selector, inlineOptions.options);
+ break;
+ }
+ });
+ });
+})(django.jQuery);
diff --git a/static/admin/js/inlines.12d1af430335.js.gz b/static/admin/js/inlines.12d1af430335.js.gz
new file mode 100644
index 00000000..64c540c8
Binary files /dev/null and b/static/admin/js/inlines.12d1af430335.js.gz differ
diff --git a/static/admin/js/inlines.js b/static/admin/js/inlines.js
index 045ef1ec..ba8c9cd7 100644
--- a/static/admin/js/inlines.js
+++ b/static/admin/js/inlines.js
@@ -63,8 +63,8 @@
var template = $("#" + options.prefix + "-empty");
var row = template.clone(true);
row.removeClass(options.emptyCssClass)
- .addClass(options.formCssClass)
- .attr("id", options.prefix + "-" + nextIndex);
+ .addClass(options.formCssClass)
+ .attr("id", options.prefix + "-" + nextIndex);
if (row.is("tr")) {
// If the forms are laid out in table rows, insert
// the remove button into the last table cell:
@@ -131,16 +131,16 @@
/* Setup plugin defaults */
$.fn.formset.defaults = {
- prefix: "form", // The form prefix for your django formset
- addText: "add another", // Text for the add link
- deleteText: "remove", // Text for the delete link
- addCssClass: "add-row", // CSS class applied to the add link
- deleteCssClass: "delete-row", // CSS class applied to the delete link
- emptyCssClass: "empty-row", // CSS class applied to the empty row
- formCssClass: "dynamic-form", // CSS class applied to each form in a formset
- added: null, // Function called each time a new form is added
- removed: null, // Function called each time a form is deleted
- addButton: null // Existing add button to use
+ prefix: "form", // The form prefix for your django formset
+ addText: "add another", // Text for the add link
+ deleteText: "remove", // Text for the delete link
+ addCssClass: "add-row", // CSS class applied to the add link
+ deleteCssClass: "delete-row", // CSS class applied to the delete link
+ emptyCssClass: "empty-row", // CSS class applied to the empty row
+ formCssClass: "dynamic-form", // CSS class applied to each form in a formset
+ added: null, // Function called each time a new form is added
+ removed: null, // Function called each time a form is deleted
+ addButton: null // Existing add button to use
};
@@ -149,8 +149,8 @@
var $rows = $(this);
var alternatingRows = function(row) {
$(selector).not(".add-row").removeClass("row1 row2")
- .filter(":even").addClass("row1").end()
- .filter(":odd").addClass("row2");
+ .filter(":even").addClass("row1").end()
+ .filter(":odd").addClass("row2");
};
var reinitDateTimeShortCuts = function() {
diff --git a/static/admin/js/inlines.js.gz b/static/admin/js/inlines.js.gz
index 8204bd76..64c540c8 100644
Binary files a/static/admin/js/inlines.js.gz and b/static/admin/js/inlines.js.gz differ
diff --git a/static/admin/js/urlify.67bae52223e0.js b/static/admin/js/urlify.67bae52223e0.js
new file mode 100644
index 00000000..c3342b9d
--- /dev/null
+++ b/static/admin/js/urlify.67bae52223e0.js
@@ -0,0 +1,195 @@
+/*global XRegExp*/
+(function() {
+ 'use strict';
+
+ var LATIN_MAP = {
+ 'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A', 'Ä': 'A', 'Å': 'A', 'Æ': 'AE',
+ 'Ç': 'C', 'È': 'E', 'É': 'E', 'Ê': 'E', 'Ë': 'E', 'Ì': 'I', 'Í': 'I',
+ 'Î': 'I', 'Ï': 'I', 'Ð': 'D', 'Ñ': 'N', 'Ò': 'O', 'Ó': 'O', 'Ô': 'O',
+ 'Õ': 'O', 'Ö': 'O', 'Ő': 'O', 'Ø': 'O', 'Ù': 'U', 'Ú': 'U', 'Û': 'U',
+ 'Ü': 'U', 'Ű': 'U', 'Ý': 'Y', 'Þ': 'TH', 'Ÿ': 'Y', 'ß': 'ss', 'à': 'a',
+ 'á': 'a', 'â': 'a', 'ã': 'a', 'ä': 'a', 'å': 'a', 'æ': 'ae', 'ç': 'c',
+ 'è': 'e', 'é': 'e', 'ê': 'e', 'ë': 'e', 'ì': 'i', 'í': 'i', 'î': 'i',
+ 'ï': 'i', 'ð': 'd', 'ñ': 'n', 'ò': 'o', 'ó': 'o', 'ô': 'o', 'õ': 'o',
+ 'ö': 'o', 'ő': 'o', 'ø': 'o', 'ù': 'u', 'ú': 'u', 'û': 'u', 'ü': 'u',
+ 'ű': 'u', 'ý': 'y', 'þ': 'th', 'ÿ': 'y'
+ };
+ var LATIN_SYMBOLS_MAP = {
+ '©': '(c)'
+ };
+ var GREEK_MAP = {
+ 'α': 'a', 'β': 'b', 'γ': 'g', 'δ': 'd', 'ε': 'e', 'ζ': 'z', 'η': 'h',
+ 'θ': '8', 'ι': 'i', 'κ': 'k', 'λ': 'l', 'μ': 'm', 'ν': 'n', 'ξ': '3',
+ 'ο': 'o', 'π': 'p', 'ρ': 'r', 'σ': 's', 'τ': 't', 'υ': 'y', 'φ': 'f',
+ 'χ': 'x', 'ψ': 'ps', 'ω': 'w', 'ά': 'a', 'έ': 'e', 'ί': 'i', 'ό': 'o',
+ 'ύ': 'y', 'ή': 'h', 'ώ': 'w', 'ς': 's', 'ϊ': 'i', 'ΰ': 'y', 'ϋ': 'y',
+ 'ΐ': 'i', 'Α': 'A', 'Β': 'B', 'Γ': 'G', 'Δ': 'D', 'Ε': 'E', 'Ζ': 'Z',
+ 'Η': 'H', 'Θ': '8', 'Ι': 'I', 'Κ': 'K', 'Λ': 'L', 'Μ': 'M', 'Ν': 'N',
+ 'Ξ': '3', 'Ο': 'O', 'Π': 'P', 'Ρ': 'R', 'Σ': 'S', 'Τ': 'T', 'Υ': 'Y',
+ 'Φ': 'F', 'Χ': 'X', 'Ψ': 'PS', 'Ω': 'W', 'Ά': 'A', 'Έ': 'E', 'Ί': 'I',
+ 'Ό': 'O', 'Ύ': 'Y', 'Ή': 'H', 'Ώ': 'W', 'Ϊ': 'I', 'Ϋ': 'Y'
+ };
+ var TURKISH_MAP = {
+ 'ş': 's', 'Ş': 'S', 'ı': 'i', 'İ': 'I', 'ç': 'c', 'Ç': 'C', 'ü': 'u',
+ 'Ü': 'U', 'ö': 'o', 'Ö': 'O', 'ğ': 'g', 'Ğ': 'G'
+ };
+ var ROMANIAN_MAP = {
+ 'ă': 'a', 'î': 'i', 'ș': 's', 'ț': 't', 'â': 'a',
+ 'Ă': 'A', 'Î': 'I', 'Ș': 'S', 'Ț': 'T', 'Â': 'A'
+ };
+ var RUSSIAN_MAP = {
+ 'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ё': 'yo',
+ 'ж': 'zh', 'з': 'z', 'и': 'i', 'й': 'j', 'к': 'k', 'л': 'l', 'м': 'm',
+ 'н': 'n', 'о': 'o', 'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u',
+ 'ф': 'f', 'х': 'h', 'ц': 'c', 'ч': 'ch', 'ш': 'sh', 'щ': 'sh', 'ъ': '',
+ 'ы': 'y', 'ь': '', 'э': 'e', 'ю': 'yu', 'я': 'ya',
+ 'А': 'A', 'Б': 'B', 'В': 'V', 'Г': 'G', 'Д': 'D', 'Е': 'E', 'Ё': 'Yo',
+ 'Ж': 'Zh', 'З': 'Z', 'И': 'I', 'Й': 'J', 'К': 'K', 'Л': 'L', 'М': 'M',
+ 'Н': 'N', 'О': 'O', 'П': 'P', 'Р': 'R', 'С': 'S', 'Т': 'T', 'У': 'U',
+ 'Ф': 'F', 'Х': 'H', 'Ц': 'C', 'Ч': 'Ch', 'Ш': 'Sh', 'Щ': 'Sh', 'Ъ': '',
+ 'Ы': 'Y', 'Ь': '', 'Э': 'E', 'Ю': 'Yu', 'Я': 'Ya'
+ };
+ var UKRAINIAN_MAP = {
+ 'Є': 'Ye', 'І': 'I', 'Ї': 'Yi', 'Ґ': 'G', 'є': 'ye', 'і': 'i',
+ 'ї': 'yi', 'ґ': 'g'
+ };
+ var CZECH_MAP = {
+ 'č': 'c', 'ď': 'd', 'ě': 'e', 'ň': 'n', 'ř': 'r', 'š': 's', 'ť': 't',
+ 'ů': 'u', 'ž': 'z', 'Č': 'C', 'Ď': 'D', 'Ě': 'E', 'Ň': 'N', 'Ř': 'R',
+ 'Š': 'S', 'Ť': 'T', 'Ů': 'U', 'Ž': 'Z'
+ };
+ var SLOVAK_MAP = {
+ 'á': 'a', 'ä': 'a', 'č': 'c', 'ď': 'd', 'é': 'e', 'í': 'i', 'ľ': 'l',
+ 'ĺ': 'l', 'ň': 'n', 'ó': 'o', 'ô': 'o', 'ŕ': 'r', 'š': 's', 'ť': 't',
+ 'ú': 'u', 'ý': 'y', 'ž': 'z',
+ 'Á': 'a', 'Ä': 'A', 'Č': 'C', 'Ď': 'D', 'É': 'E', 'Í': 'I', 'Ľ': 'L',
+ 'Ĺ': 'L', 'Ň': 'N', 'Ó': 'O', 'Ô': 'O', 'Ŕ': 'R', 'Š': 'S', 'Ť': 'T',
+ 'Ú': 'U', 'Ý': 'Y', 'Ž': 'Z'
+ };
+ var POLISH_MAP = {
+ 'ą': 'a', 'ć': 'c', 'ę': 'e', 'ł': 'l', 'ń': 'n', 'ó': 'o', 'ś': 's',
+ 'ź': 'z', 'ż': 'z',
+ 'Ą': 'A', 'Ć': 'C', 'Ę': 'E', 'Ł': 'L', 'Ń': 'N', 'Ó': 'O', 'Ś': 'S',
+ 'Ź': 'Z', 'Ż': 'Z'
+ };
+ var LATVIAN_MAP = {
+ 'ā': 'a', 'č': 'c', 'ē': 'e', 'ģ': 'g', 'ī': 'i', 'ķ': 'k', 'ļ': 'l',
+ 'ņ': 'n', 'š': 's', 'ū': 'u', 'ž': 'z',
+ 'Ā': 'A', 'Č': 'C', 'Ē': 'E', 'Ģ': 'G', 'Ī': 'I', 'Ķ': 'K', 'Ļ': 'L',
+ 'Ņ': 'N', 'Š': 'S', 'Ū': 'U', 'Ž': 'Z'
+ };
+ var ARABIC_MAP = {
+ 'أ': 'a', 'ب': 'b', 'ت': 't', 'ث': 'th', 'ج': 'g', 'ح': 'h', 'خ': 'kh', 'د': 'd',
+ 'ذ': 'th', 'ر': 'r', 'ز': 'z', 'س': 's', 'ش': 'sh', 'ص': 's', 'ض': 'd', 'ط': 't',
+ 'ظ': 'th', 'ع': 'aa', 'غ': 'gh', 'ف': 'f', 'ق': 'k', 'ك': 'k', 'ل': 'l', 'م': 'm',
+ 'ن': 'n', 'ه': 'h', 'و': 'o', 'ي': 'y'
+ };
+ var LITHUANIAN_MAP = {
+ 'ą': 'a', 'č': 'c', 'ę': 'e', 'ė': 'e', 'į': 'i', 'š': 's', 'ų': 'u',
+ 'ū': 'u', 'ž': 'z',
+ 'Ą': 'A', 'Č': 'C', 'Ę': 'E', 'Ė': 'E', 'Į': 'I', 'Š': 'S', 'Ų': 'U',
+ 'Ū': 'U', 'Ž': 'Z'
+ };
+ var SERBIAN_MAP = {
+ 'ђ': 'dj', 'ј': 'j', 'љ': 'lj', 'њ': 'nj', 'ћ': 'c', 'џ': 'dz',
+ 'đ': 'dj', 'Ђ': 'Dj', 'Ј': 'j', 'Љ': 'Lj', 'Њ': 'Nj', 'Ћ': 'C',
+ 'Џ': 'Dz', 'Đ': 'Dj'
+ };
+ var AZERBAIJANI_MAP = {
+ 'ç': 'c', 'ə': 'e', 'ğ': 'g', 'ı': 'i', 'ö': 'o', 'ş': 's', 'ü': 'u',
+ 'Ç': 'C', 'Ə': 'E', 'Ğ': 'G', 'İ': 'I', 'Ö': 'O', 'Ş': 'S', 'Ü': 'U'
+ };
+ var GEORGIAN_MAP = {
+ 'ა': 'a', 'ბ': 'b', 'გ': 'g', 'დ': 'd', 'ე': 'e', 'ვ': 'v', 'ზ': 'z',
+ 'თ': 't', 'ი': 'i', 'კ': 'k', 'ლ': 'l', 'მ': 'm', 'ნ': 'n', 'ო': 'o',
+ 'პ': 'p', 'ჟ': 'j', 'რ': 'r', 'ს': 's', 'ტ': 't', 'უ': 'u', 'ფ': 'f',
+ 'ქ': 'q', 'ღ': 'g', 'ყ': 'y', 'შ': 'sh', 'ჩ': 'ch', 'ც': 'c', 'ძ': 'dz',
+ 'წ': 'w', 'ჭ': 'ch', 'ხ': 'x', 'ჯ': 'j', 'ჰ': 'h'
+ };
+
+ var ALL_DOWNCODE_MAPS = [
+ LATIN_MAP,
+ LATIN_SYMBOLS_MAP,
+ GREEK_MAP,
+ TURKISH_MAP,
+ ROMANIAN_MAP,
+ RUSSIAN_MAP,
+ UKRAINIAN_MAP,
+ CZECH_MAP,
+ SLOVAK_MAP,
+ POLISH_MAP,
+ LATVIAN_MAP,
+ ARABIC_MAP,
+ LITHUANIAN_MAP,
+ SERBIAN_MAP,
+ AZERBAIJANI_MAP,
+ GEORGIAN_MAP
+ ];
+
+ var Downcoder = {
+ 'Initialize': function() {
+ if (Downcoder.map) { // already made
+ return;
+ }
+ Downcoder.map = {};
+ Downcoder.chars = [];
+ for (var i = 0; i < ALL_DOWNCODE_MAPS.length; i++) {
+ var lookup = ALL_DOWNCODE_MAPS[i];
+ for (var c in lookup) {
+ if (lookup.hasOwnProperty(c)) {
+ Downcoder.map[c] = lookup[c];
+ }
+ }
+ }
+ for (var k in Downcoder.map) {
+ if (Downcoder.map.hasOwnProperty(k)) {
+ Downcoder.chars.push(k);
+ }
+ }
+ Downcoder.regex = new RegExp(Downcoder.chars.join('|'), 'g');
+ }
+ };
+
+ function downcode(slug) {
+ Downcoder.Initialize();
+ return slug.replace(Downcoder.regex, function(m) {
+ return Downcoder.map[m];
+ });
+ }
+
+
+ function URLify(s, num_chars, allowUnicode) {
+ // changes, e.g., "Petty theft" to "petty-theft"
+ // remove all these words from the string before urlifying
+ if (!allowUnicode) {
+ s = downcode(s);
+ }
+ var hasUnicodeChars = /[^\u0000-\u007f]/.test(s);
+ // Remove English words only if the string contains ASCII (English)
+ // characters.
+ if (!hasUnicodeChars) {
+ var removeList = [
+ "a", "an", "as", "at", "before", "but", "by", "for", "from",
+ "is", "in", "into", "like", "of", "off", "on", "onto", "per",
+ "since", "than", "the", "this", "that", "to", "up", "via",
+ "with"
+ ];
+ var r = new RegExp('\\b(' + removeList.join('|') + ')\\b', 'gi');
+ s = s.replace(r, '');
+ }
+ // if downcode doesn't hit, the char will be stripped here
+ if (allowUnicode) {
+ // Keep Unicode letters including both lowercase and uppercase
+ // characters, whitespace, and dash; remove other characters.
+ s = XRegExp.replace(s, XRegExp('[^-_\\p{L}\\p{N}\\s]', 'g'), '');
+ } else {
+ s = s.replace(/[^-\w\s]/g, ''); // remove unneeded chars
+ }
+ s = s.replace(/^\s+|\s+$/g, ''); // trim leading/trailing spaces
+ s = s.replace(/[-\s]+/g, '-'); // convert spaces to hyphens
+ s = s.substring(0, num_chars); // trim to first num_chars chars
+ s = s.replace(/-+$/g, ''); // trim any trailing hyphens
+ return s.toLowerCase(); // convert to lowercase
+ }
+ window.URLify = URLify;
+})();
diff --git a/static/admin/js/urlify.67bae52223e0.js.gz b/static/admin/js/urlify.67bae52223e0.js.gz
new file mode 100644
index 00000000..b3801f4a
Binary files /dev/null and b/static/admin/js/urlify.67bae52223e0.js.gz differ
diff --git a/static/admin/js/urlify.js b/static/admin/js/urlify.js
index 2d70dcd0..c3342b9d 100644
--- a/static/admin/js/urlify.js
+++ b/static/admin/js/urlify.js
@@ -128,7 +128,7 @@
var Downcoder = {
'Initialize': function() {
- if (Downcoder.map) { // already made
+ if (Downcoder.map) { // already made
return;
}
Downcoder.map = {};
@@ -183,13 +183,13 @@
// characters, whitespace, and dash; remove other characters.
s = XRegExp.replace(s, XRegExp('[^-_\\p{L}\\p{N}\\s]', 'g'), '');
} else {
- s = s.replace(/[^-\w\s]/g, ''); // remove unneeded chars
+ s = s.replace(/[^-\w\s]/g, ''); // remove unneeded chars
}
- s = s.replace(/^\s+|\s+$/g, ''); // trim leading/trailing spaces
- s = s.replace(/[-\s]+/g, '-'); // convert spaces to hyphens
- s = s.substring(0, num_chars); // trim to first num_chars chars
- s = s.replace(/-+$/g, ''); // trim any trailing hyphens
- return s.toLowerCase(); // convert to lowercase
+ s = s.replace(/^\s+|\s+$/g, ''); // trim leading/trailing spaces
+ s = s.replace(/[-\s]+/g, '-'); // convert spaces to hyphens
+ s = s.substring(0, num_chars); // trim to first num_chars chars
+ s = s.replace(/-+$/g, ''); // trim any trailing hyphens
+ return s.toLowerCase(); // convert to lowercase
}
window.URLify = URLify;
})();
diff --git a/static/admin/js/urlify.js.gz b/static/admin/js/urlify.js.gz
index 7720851b..b3801f4a 100644
Binary files a/static/admin/js/urlify.js.gz and b/static/admin/js/urlify.js.gz differ
diff --git a/static/babybuddy/js/graph.da32e0532ca2.js.gz b/static/babybuddy/js/graph.da32e0532ca2.js.gz
index e69de29b..f7fa75b6 100644
Binary files a/static/babybuddy/js/graph.da32e0532ca2.js.gz and b/static/babybuddy/js/graph.da32e0532ca2.js.gz differ
diff --git a/static/babybuddy/js/graph.js.gz b/static/babybuddy/js/graph.js.gz
index a684d224..f7fa75b6 100644
Binary files a/static/babybuddy/js/graph.js.gz and b/static/babybuddy/js/graph.js.gz differ
diff --git a/static/babybuddy/webfonts/fa-brands-400.38975343b586.svg b/static/babybuddy/webfonts/fa-brands-400.38975343b586.svg
new file mode 100644
index 00000000..c5f544c7
--- /dev/null
+++ b/static/babybuddy/webfonts/fa-brands-400.38975343b586.svg
@@ -0,0 +1,3452 @@
+
+
+
+
+
+Created by FontForge 20190112 at Tue May 7 11:33:44 2019
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/static/babybuddy/webfonts/fa-brands-400.38975343b586.svg.gz b/static/babybuddy/webfonts/fa-brands-400.38975343b586.svg.gz
new file mode 100644
index 00000000..42ac9a0b
Binary files /dev/null and b/static/babybuddy/webfonts/fa-brands-400.38975343b586.svg.gz differ
diff --git a/static/babybuddy/webfonts/fa-brands-400.8e49b7284130.eot b/static/babybuddy/webfonts/fa-brands-400.8e49b7284130.eot
new file mode 100644
index 00000000..4f991ad3
Binary files /dev/null and b/static/babybuddy/webfonts/fa-brands-400.8e49b7284130.eot differ
diff --git a/static/babybuddy/webfonts/fa-brands-400.8e49b7284130.eot.gz b/static/babybuddy/webfonts/fa-brands-400.8e49b7284130.eot.gz
new file mode 100644
index 00000000..3fec3334
Binary files /dev/null and b/static/babybuddy/webfonts/fa-brands-400.8e49b7284130.eot.gz differ
diff --git a/static/babybuddy/webfonts/fa-brands-400.9f018d102556.woff b/static/babybuddy/webfonts/fa-brands-400.9f018d102556.woff
new file mode 100644
index 00000000..d65148db
Binary files /dev/null and b/static/babybuddy/webfonts/fa-brands-400.9f018d102556.woff differ
diff --git a/static/babybuddy/webfonts/fa-brands-400.9f4ce3dc6899.woff2 b/static/babybuddy/webfonts/fa-brands-400.9f4ce3dc6899.woff2
new file mode 100644
index 00000000..e2bfe667
Binary files /dev/null and b/static/babybuddy/webfonts/fa-brands-400.9f4ce3dc6899.woff2 differ
diff --git a/static/babybuddy/webfonts/fa-brands-400.b7d071b9c3c1.ttf b/static/babybuddy/webfonts/fa-brands-400.b7d071b9c3c1.ttf
new file mode 100644
index 00000000..8836d9ff
Binary files /dev/null and b/static/babybuddy/webfonts/fa-brands-400.b7d071b9c3c1.ttf differ
diff --git a/static/babybuddy/webfonts/fa-brands-400.b7d071b9c3c1.ttf.gz b/static/babybuddy/webfonts/fa-brands-400.b7d071b9c3c1.ttf.gz
new file mode 100644
index 00000000..753640d1
Binary files /dev/null and b/static/babybuddy/webfonts/fa-brands-400.b7d071b9c3c1.ttf.gz differ
diff --git a/static/babybuddy/webfonts/fa-brands-400.eot b/static/babybuddy/webfonts/fa-brands-400.eot
new file mode 100644
index 00000000..4f991ad3
Binary files /dev/null and b/static/babybuddy/webfonts/fa-brands-400.eot differ
diff --git a/static/babybuddy/webfonts/fa-brands-400.eot.gz b/static/babybuddy/webfonts/fa-brands-400.eot.gz
new file mode 100644
index 00000000..3fec3334
Binary files /dev/null and b/static/babybuddy/webfonts/fa-brands-400.eot.gz differ
diff --git a/static/babybuddy/webfonts/fa-brands-400.svg b/static/babybuddy/webfonts/fa-brands-400.svg
new file mode 100644
index 00000000..c5f544c7
--- /dev/null
+++ b/static/babybuddy/webfonts/fa-brands-400.svg
@@ -0,0 +1,3452 @@
+
+
+
+
+
+Created by FontForge 20190112 at Tue May 7 11:33:44 2019
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/static/babybuddy/webfonts/fa-brands-400.svg.gz b/static/babybuddy/webfonts/fa-brands-400.svg.gz
new file mode 100644
index 00000000..42ac9a0b
Binary files /dev/null and b/static/babybuddy/webfonts/fa-brands-400.svg.gz differ
diff --git a/static/babybuddy/webfonts/fa-brands-400.ttf b/static/babybuddy/webfonts/fa-brands-400.ttf
new file mode 100644
index 00000000..8836d9ff
Binary files /dev/null and b/static/babybuddy/webfonts/fa-brands-400.ttf differ
diff --git a/static/babybuddy/webfonts/fa-brands-400.ttf.gz b/static/babybuddy/webfonts/fa-brands-400.ttf.gz
new file mode 100644
index 00000000..753640d1
Binary files /dev/null and b/static/babybuddy/webfonts/fa-brands-400.ttf.gz differ
diff --git a/static/babybuddy/webfonts/fa-brands-400.woff b/static/babybuddy/webfonts/fa-brands-400.woff
new file mode 100644
index 00000000..d65148db
Binary files /dev/null and b/static/babybuddy/webfonts/fa-brands-400.woff differ
diff --git a/static/babybuddy/webfonts/fa-brands-400.woff2 b/static/babybuddy/webfonts/fa-brands-400.woff2
new file mode 100644
index 00000000..e2bfe667
Binary files /dev/null and b/static/babybuddy/webfonts/fa-brands-400.woff2 differ
diff --git a/static/babybuddy/webfonts/fa-regular-400.7980a6361c25.woff2 b/static/babybuddy/webfonts/fa-regular-400.7980a6361c25.woff2
new file mode 100644
index 00000000..7faee563
Binary files /dev/null and b/static/babybuddy/webfonts/fa-regular-400.7980a6361c25.woff2 differ
diff --git a/static/babybuddy/webfonts/fa-regular-400.7aaf5675efd6.woff b/static/babybuddy/webfonts/fa-regular-400.7aaf5675efd6.woff
new file mode 100644
index 00000000..b7414354
Binary files /dev/null and b/static/babybuddy/webfonts/fa-regular-400.7aaf5675efd6.woff differ
diff --git a/static/babybuddy/webfonts/fa-regular-400.859001f6ae8e.eot b/static/babybuddy/webfonts/fa-regular-400.859001f6ae8e.eot
new file mode 100644
index 00000000..f9c3418a
Binary files /dev/null and b/static/babybuddy/webfonts/fa-regular-400.859001f6ae8e.eot differ
diff --git a/static/babybuddy/webfonts/fa-regular-400.859001f6ae8e.eot.gz b/static/babybuddy/webfonts/fa-regular-400.859001f6ae8e.eot.gz
new file mode 100644
index 00000000..5d08e439
Binary files /dev/null and b/static/babybuddy/webfonts/fa-regular-400.859001f6ae8e.eot.gz differ
diff --git a/static/babybuddy/webfonts/fa-regular-400.da8a235bb207.svg b/static/babybuddy/webfonts/fa-regular-400.da8a235bb207.svg
new file mode 100644
index 00000000..38b66718
--- /dev/null
+++ b/static/babybuddy/webfonts/fa-regular-400.da8a235bb207.svg
@@ -0,0 +1,803 @@
+
+
+
+
+
+Created by FontForge 20190112 at Tue May 7 11:33:43 2019
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/static/babybuddy/webfonts/fa-regular-400.da8a235bb207.svg.gz b/static/babybuddy/webfonts/fa-regular-400.da8a235bb207.svg.gz
new file mode 100644
index 00000000..a416434e
Binary files /dev/null and b/static/babybuddy/webfonts/fa-regular-400.da8a235bb207.svg.gz differ
diff --git a/static/babybuddy/webfonts/fa-regular-400.eot b/static/babybuddy/webfonts/fa-regular-400.eot
new file mode 100644
index 00000000..f9c3418a
Binary files /dev/null and b/static/babybuddy/webfonts/fa-regular-400.eot differ
diff --git a/static/babybuddy/webfonts/fa-regular-400.eot.gz b/static/babybuddy/webfonts/fa-regular-400.eot.gz
new file mode 100644
index 00000000..5d08e439
Binary files /dev/null and b/static/babybuddy/webfonts/fa-regular-400.eot.gz differ
diff --git a/static/babybuddy/webfonts/fa-regular-400.f33342516f7c.ttf b/static/babybuddy/webfonts/fa-regular-400.f33342516f7c.ttf
new file mode 100644
index 00000000..b4abb3df
Binary files /dev/null and b/static/babybuddy/webfonts/fa-regular-400.f33342516f7c.ttf differ
diff --git a/static/babybuddy/webfonts/fa-regular-400.f33342516f7c.ttf.gz b/static/babybuddy/webfonts/fa-regular-400.f33342516f7c.ttf.gz
new file mode 100644
index 00000000..f965e362
Binary files /dev/null and b/static/babybuddy/webfonts/fa-regular-400.f33342516f7c.ttf.gz differ
diff --git a/static/babybuddy/webfonts/fa-regular-400.svg b/static/babybuddy/webfonts/fa-regular-400.svg
new file mode 100644
index 00000000..38b66718
--- /dev/null
+++ b/static/babybuddy/webfonts/fa-regular-400.svg
@@ -0,0 +1,803 @@
+
+
+
+
+
+Created by FontForge 20190112 at Tue May 7 11:33:43 2019
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/static/babybuddy/webfonts/fa-regular-400.svg.gz b/static/babybuddy/webfonts/fa-regular-400.svg.gz
new file mode 100644
index 00000000..a416434e
Binary files /dev/null and b/static/babybuddy/webfonts/fa-regular-400.svg.gz differ
diff --git a/static/babybuddy/webfonts/fa-regular-400.ttf b/static/babybuddy/webfonts/fa-regular-400.ttf
new file mode 100644
index 00000000..b4abb3df
Binary files /dev/null and b/static/babybuddy/webfonts/fa-regular-400.ttf differ
diff --git a/static/babybuddy/webfonts/fa-regular-400.ttf.gz b/static/babybuddy/webfonts/fa-regular-400.ttf.gz
new file mode 100644
index 00000000..f965e362
Binary files /dev/null and b/static/babybuddy/webfonts/fa-regular-400.ttf.gz differ
diff --git a/static/babybuddy/webfonts/fa-regular-400.woff b/static/babybuddy/webfonts/fa-regular-400.woff
new file mode 100644
index 00000000..b7414354
Binary files /dev/null and b/static/babybuddy/webfonts/fa-regular-400.woff differ
diff --git a/static/babybuddy/webfonts/fa-regular-400.woff2 b/static/babybuddy/webfonts/fa-regular-400.woff2
new file mode 100644
index 00000000..7faee563
Binary files /dev/null and b/static/babybuddy/webfonts/fa-regular-400.woff2 differ
diff --git a/static/babybuddy/webfonts/fa-solid-900.0be94a07755b.woff b/static/babybuddy/webfonts/fa-solid-900.0be94a07755b.woff
new file mode 100644
index 00000000..49325538
Binary files /dev/null and b/static/babybuddy/webfonts/fa-solid-900.0be94a07755b.woff differ
diff --git a/static/babybuddy/webfonts/fa-solid-900.64b3e814a66c.woff2 b/static/babybuddy/webfonts/fa-solid-900.64b3e814a66c.woff2
new file mode 100644
index 00000000..92c4d57c
Binary files /dev/null and b/static/babybuddy/webfonts/fa-solid-900.64b3e814a66c.woff2 differ
diff --git a/static/babybuddy/webfonts/fa-solid-900.7726a281c1d4.svg b/static/babybuddy/webfonts/fa-solid-900.7726a281c1d4.svg
new file mode 100644
index 00000000..35b78661
--- /dev/null
+++ b/static/babybuddy/webfonts/fa-solid-900.7726a281c1d4.svg
@@ -0,0 +1,4527 @@
+
+
+
+
+
+Created by FontForge 20190112 at Tue May 7 11:33:44 2019
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/static/babybuddy/webfonts/fa-solid-900.7726a281c1d4.svg.gz b/static/babybuddy/webfonts/fa-solid-900.7726a281c1d4.svg.gz
new file mode 100644
index 00000000..80e94cf1
Binary files /dev/null and b/static/babybuddy/webfonts/fa-solid-900.7726a281c1d4.svg.gz differ
diff --git a/static/babybuddy/webfonts/fa-solid-900.e2675a616b68.eot b/static/babybuddy/webfonts/fa-solid-900.e2675a616b68.eot
new file mode 100644
index 00000000..bf4fd60a
Binary files /dev/null and b/static/babybuddy/webfonts/fa-solid-900.e2675a616b68.eot differ
diff --git a/static/babybuddy/webfonts/fa-solid-900.e2675a616b68.eot.gz b/static/babybuddy/webfonts/fa-solid-900.e2675a616b68.eot.gz
new file mode 100644
index 00000000..4b1083cd
Binary files /dev/null and b/static/babybuddy/webfonts/fa-solid-900.e2675a616b68.eot.gz differ
diff --git a/static/babybuddy/webfonts/fa-solid-900.eot b/static/babybuddy/webfonts/fa-solid-900.eot
new file mode 100644
index 00000000..bf4fd60a
Binary files /dev/null and b/static/babybuddy/webfonts/fa-solid-900.eot differ
diff --git a/static/babybuddy/webfonts/fa-solid-900.eot.gz b/static/babybuddy/webfonts/fa-solid-900.eot.gz
new file mode 100644
index 00000000..4b1083cd
Binary files /dev/null and b/static/babybuddy/webfonts/fa-solid-900.eot.gz differ
diff --git a/static/babybuddy/webfonts/fa-solid-900.f14c3b2ff7c8.ttf b/static/babybuddy/webfonts/fa-solid-900.f14c3b2ff7c8.ttf
new file mode 100644
index 00000000..9821bea3
Binary files /dev/null and b/static/babybuddy/webfonts/fa-solid-900.f14c3b2ff7c8.ttf differ
diff --git a/static/babybuddy/webfonts/fa-solid-900.f14c3b2ff7c8.ttf.gz b/static/babybuddy/webfonts/fa-solid-900.f14c3b2ff7c8.ttf.gz
new file mode 100644
index 00000000..a494c40a
Binary files /dev/null and b/static/babybuddy/webfonts/fa-solid-900.f14c3b2ff7c8.ttf.gz differ
diff --git a/static/babybuddy/webfonts/fa-solid-900.svg b/static/babybuddy/webfonts/fa-solid-900.svg
new file mode 100644
index 00000000..35b78661
--- /dev/null
+++ b/static/babybuddy/webfonts/fa-solid-900.svg
@@ -0,0 +1,4527 @@
+
+
+
+
+
+Created by FontForge 20190112 at Tue May 7 11:33:44 2019
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/static/babybuddy/webfonts/fa-solid-900.svg.gz b/static/babybuddy/webfonts/fa-solid-900.svg.gz
new file mode 100644
index 00000000..80e94cf1
Binary files /dev/null and b/static/babybuddy/webfonts/fa-solid-900.svg.gz differ
diff --git a/static/babybuddy/webfonts/fa-solid-900.ttf b/static/babybuddy/webfonts/fa-solid-900.ttf
new file mode 100644
index 00000000..9821bea3
Binary files /dev/null and b/static/babybuddy/webfonts/fa-solid-900.ttf differ
diff --git a/static/babybuddy/webfonts/fa-solid-900.ttf.gz b/static/babybuddy/webfonts/fa-solid-900.ttf.gz
new file mode 100644
index 00000000..a494c40a
Binary files /dev/null and b/static/babybuddy/webfonts/fa-solid-900.ttf.gz differ
diff --git a/static/babybuddy/webfonts/fa-solid-900.woff b/static/babybuddy/webfonts/fa-solid-900.woff
new file mode 100644
index 00000000..49325538
Binary files /dev/null and b/static/babybuddy/webfonts/fa-solid-900.woff differ
diff --git a/static/babybuddy/webfonts/fa-solid-900.woff2 b/static/babybuddy/webfonts/fa-solid-900.woff2
new file mode 100644
index 00000000..92c4d57c
Binary files /dev/null and b/static/babybuddy/webfonts/fa-solid-900.woff2 differ
diff --git a/static/staticfiles.json b/static/staticfiles.json
index 6aedacd2..206143d8 100644
--- a/static/staticfiles.json
+++ b/static/staticfiles.json
@@ -1 +1 @@
-{"paths": {"admin/js/vendor/select2/i18n/cs.js": "admin/js/vendor/select2/i18n/cs.a68bcd293adc.js", "admin/js/vendor/select2/i18n/en.js": "admin/js/vendor/select2/i18n/en.05649b26c086.js", "admin/js/vendor/select2/i18n/ko.js": "admin/js/vendor/select2/i18n/ko.74b17541834f.js", "admin/js/vendor/select2/i18n/lv.js": "admin/js/vendor/select2/i18n/lv.07fe2a580d17.js", "admin/js/vendor/select2/i18n/km.js": "admin/js/vendor/select2/i18n/km.6074a9c5575c.js", "admin/js/vendor/select2/i18n/pl.js": "admin/js/vendor/select2/i18n/pl.76465b54a6b0.js", "admin/js/vendor/select2/i18n/de.js": "admin/js/vendor/select2/i18n/de.366d0aacb55f.js", "admin/js/vendor/select2/i18n/sr.js": "admin/js/vendor/select2/i18n/sr.157bc6eb978e.js", "admin/js/vendor/select2/i18n/ru.js": "admin/js/vendor/select2/i18n/ru.d83609abf2e0.js", "admin/js/vendor/select2/i18n/he.js": "admin/js/vendor/select2/i18n/he.222d90ee0344.js", "admin/js/vendor/select2/i18n/el.js": "admin/js/vendor/select2/i18n/el.5629ce65500f.js", "admin/js/vendor/select2/i18n/pt-BR.js": "admin/js/vendor/select2/i18n/pt-BR.9efbbac4fda8.js", "admin/js/vendor/select2/i18n/uk.js": "admin/js/vendor/select2/i18n/uk.3d56f311192d.js", "admin/js/vendor/select2/i18n/nl.js": "admin/js/vendor/select2/i18n/nl.c363ace8aa05.js", "admin/js/vendor/select2/i18n/sv.js": "admin/js/vendor/select2/i18n/sv.2b21bb3f6110.js", "admin/js/vendor/select2/i18n/mk.js": "admin/js/vendor/select2/i18n/mk.4986d7fc3ff3.js", "admin/js/vendor/select2/i18n/bg.js": "admin/js/vendor/select2/i18n/bg.89cba4df3c86.js", "admin/js/vendor/select2/i18n/zh-CN.js": "admin/js/vendor/select2/i18n/zh-CN.419002d3c6c1.js", "admin/js/vendor/select2/i18n/vi.js": "admin/js/vendor/select2/i18n/vi.3520aa7bdea8.js", "admin/js/vendor/select2/i18n/tr.js": "admin/js/vendor/select2/i18n/tr.c1925d8817db.js", "admin/js/vendor/select2/i18n/fr.js": "admin/js/vendor/select2/i18n/fr.b06a3340de45.js", "admin/js/vendor/select2/i18n/gl.js": "admin/js/vendor/select2/i18n/gl.78a87f7c0a51.js", "admin/js/vendor/select2/i18n/hr.js": "admin/js/vendor/select2/i18n/hr.e1d2c70b4df5.js", "admin/js/vendor/select2/i18n/eu.js": "admin/js/vendor/select2/i18n/eu.11b925456433.js", "admin/js/vendor/select2/i18n/ar.js": "admin/js/vendor/select2/i18n/ar.a8bb27ec698c.js", "admin/js/vendor/select2/i18n/zh-TW.js": "admin/js/vendor/select2/i18n/zh-TW.c021537edf2c.js", "admin/js/vendor/select2/i18n/th.js": "admin/js/vendor/select2/i18n/th.2a4ece4c4355.js", "admin/js/vendor/select2/i18n/sr-Cyrl.js": "admin/js/vendor/select2/i18n/sr-Cyrl.2f3047aad49e.js", "admin/js/vendor/select2/i18n/lt.js": "admin/js/vendor/select2/i18n/lt.a0783b1bd159.js", "admin/js/vendor/select2/i18n/et.js": "admin/js/vendor/select2/i18n/et.c3953fb90b6b.js", "admin/js/vendor/select2/i18n/fi.js": "admin/js/vendor/select2/i18n/fi.659847deefdc.js", "admin/js/vendor/select2/i18n/hi.js": "admin/js/vendor/select2/i18n/hi.116a90b7111b.js", "admin/js/vendor/select2/i18n/ja.js": "admin/js/vendor/select2/i18n/ja.19cf1ce8a03d.js", "admin/js/vendor/select2/i18n/sk.js": "admin/js/vendor/select2/i18n/sk.a0f1a818d092.js", "admin/js/vendor/select2/i18n/da.js": "admin/js/vendor/select2/i18n/da.cbf897a0ae53.js", "admin/js/vendor/select2/i18n/id.js": "admin/js/vendor/select2/i18n/id.6ee6c9c64b94.js", "admin/js/vendor/select2/i18n/es.js": "admin/js/vendor/select2/i18n/es.dc9dbf9d65df.js", "admin/js/vendor/select2/i18n/it.js": "admin/js/vendor/select2/i18n/it.bae1661dbb77.js", "admin/js/vendor/select2/i18n/hu.js": "admin/js/vendor/select2/i18n/hu.db45641f10b2.js", "admin/js/vendor/select2/i18n/ms.js": "admin/js/vendor/select2/i18n/ms.23e7b4369579.js", "admin/js/vendor/select2/i18n/fa.js": "admin/js/vendor/select2/i18n/fa.98e52839b583.js", "admin/js/vendor/select2/i18n/nb.js": "admin/js/vendor/select2/i18n/nb.137e184004aa.js", "admin/js/vendor/select2/i18n/az.js": "admin/js/vendor/select2/i18n/az.498dc667b34e.js", "admin/js/vendor/select2/i18n/ca.js": "admin/js/vendor/select2/i18n/ca.2eaad4eb1950.js", "admin/js/vendor/select2/i18n/ro.js": "admin/js/vendor/select2/i18n/ro.1ddc2b9980dc.js", "admin/js/vendor/select2/i18n/pt.js": "admin/js/vendor/select2/i18n/pt.5d6ccc53b347.js", "admin/js/vendor/select2/i18n/is.js": "admin/js/vendor/select2/i18n/is.808c7d47acb5.js", "admin/js/vendor/xregexp/LICENSE.txt": "admin/js/vendor/xregexp/LICENSE.d64cecf4f157.txt", "admin/js/vendor/xregexp/xregexp.min.js": "admin/js/vendor/xregexp/xregexp.min.c95393b8ca4d.js", "admin/js/vendor/xregexp/xregexp.js": "admin/js/vendor/xregexp/xregexp.1865b1cf5085.js", "admin/js/vendor/select2/LICENSE.md": "admin/js/vendor/select2/LICENSE.7cf1de939f3b.md", "admin/js/vendor/select2/select2.full.js": "admin/js/vendor/select2/select2.full.a95323cb4760.js", "admin/js/vendor/select2/select2.full.min.js": "admin/js/vendor/select2/select2.full.min.da607360bcc6.js", "admin/js/vendor/jquery/jquery.js": "admin/js/vendor/jquery/jquery.6fb03f669462.js", "admin/js/vendor/jquery/LICENSE.txt": "admin/js/vendor/jquery/LICENSE.a158210a2737.txt", "admin/js/vendor/jquery/jquery.min.js": "admin/js/vendor/jquery/jquery.min.9c86871c4213.js", "admin/css/vendor/select2/select2.min.css": "admin/css/vendor/select2/select2.min.d44571114a90.css", "admin/css/vendor/select2/select2.css": "admin/css/vendor/select2/select2.3805311d5fc1.css", "admin/css/vendor/select2/LICENSE-SELECT2.md": "admin/css/vendor/select2/LICENSE-SELECT2.7cf1de939f3b.md", "babybuddy/img/core/child-placeholder.png": "babybuddy/img/core/child-placeholder.7c0a81f0d7f0.png", "rest_framework/docs/js/jquery.json-view.min.js": "rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js", "rest_framework/docs/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "rest_framework/docs/js/api.js": "rest_framework/docs/js/api.c9743eab7a4f.js", "rest_framework/docs/css/base.css": "rest_framework/docs/css/base.d9cd17260641.css", "rest_framework/docs/css/jquery.json-view.min.css": "rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css", "rest_framework/docs/css/highlight.css": "rest_framework/docs/css/highlight.e0e4d973c6d7.css", "rest_framework/docs/img/grid.png": "rest_framework/docs/img/grid.a4b938cf382b.png", "rest_framework/docs/img/favicon.ico": "rest_framework/docs/img/favicon.5195b4d0f3eb.ico", "admin/js/admin/DateTimeShortcuts.js": "admin/js/admin/DateTimeShortcuts.c085703ffd82.js", "admin/js/admin/RelatedObjectLookups.js": "admin/js/admin/RelatedObjectLookups.ea0683bea064.js", "admin/img/gis/move_vertex_on.svg": "admin/img/gis/move_vertex_on.0047eba25b67.svg", "admin/img/gis/move_vertex_off.svg": "admin/img/gis/move_vertex_off.7a23bf31ef8a.svg", "babybuddy/logo/icon2.png": "babybuddy/logo/icon2.be48fd16c53f.png", "babybuddy/logo/icon-brand.png": "babybuddy/logo/icon-brand.96e4491f2209.png", "babybuddy/logo/logo.png": "babybuddy/logo/logo.62870041cc83.png", "babybuddy/logo/icon.png": "babybuddy/logo/icon.6377611bf399.png", "babybuddy/js/app.js": "babybuddy/js/app.0079764f3fc1.js", "babybuddy/js/graph.js": "babybuddy/js/graph.da32e0532ca2.js", "babybuddy/js/vendor.js": "babybuddy/js/vendor.3aed05379df2.js", "babybuddy/css/vendor.css": "babybuddy/css/vendor.be1a1448dd86.css", "babybuddy/css/app.css": "babybuddy/css/app.3349e431532d.css", "babybuddy/fonts/fontawesome-webfont.eot": "babybuddy/fonts/fontawesome-webfont.674f50d287a8.eot", "babybuddy/fonts/fontawesome-webfont.ttf": "babybuddy/fonts/fontawesome-webfont.b06871f281fe.ttf", "babybuddy/fonts/fontawesome-webfont.svg": "babybuddy/fonts/fontawesome-webfont.912ec66d7572.svg", "babybuddy/fonts/fontawesome-webfont.woff2": "babybuddy/fonts/fontawesome-webfont.af7ae505a9ee.woff2", "babybuddy/fonts/FontAwesome.otf": "babybuddy/fonts/FontAwesome.0d2717cd5d85.otf", "babybuddy/fonts/fontawesome-webfont.woff": "babybuddy/fonts/fontawesome-webfont.fee66e712a8a.woff", "babybuddy/root/site.webmanifest.json": "babybuddy/root/site.webmanifest.61dac00bb04b.json", "babybuddy/root/favicon-32x32.png": "babybuddy/root/favicon-32x32.076f1340f1cf.png", "babybuddy/root/favicon.ico": "babybuddy/root/favicon.1b19cfd81791.ico", "babybuddy/root/android-chrome-512x512.png": "babybuddy/root/android-chrome-512x512.89ee40b783cd.png", "babybuddy/root/favicon-16x16.png": "babybuddy/root/favicon-16x16.12c501486484.png", "babybuddy/root/mstile-150x150.png": "babybuddy/root/mstile-150x150.f231c8ff6157.png", "babybuddy/root/apple-touch-icon.png": "babybuddy/root/apple-touch-icon.33416748f239.png", "babybuddy/root/safari-pinned-tab.svg": "babybuddy/root/safari-pinned-tab.3de51db2baf2.svg", "babybuddy/root/android-chrome-192x192.png": "babybuddy/root/android-chrome-192x192.484bd0e8cb66.png", "babybuddy/root/browserconfig.xml": "babybuddy/root/browserconfig.5858221e0a38.xml", "babybuddy/root/android-chrome-384x384.png": "babybuddy/root/android-chrome-384x384.7849615a1e26.png", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.js", "rest_framework/js/default.js": "rest_framework/js/default.5b08897dbdc3.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.969930007329.js", "rest_framework/js/jquery-3.3.1.min.js": "rest_framework/js/jquery-3.3.1.min.a09e13ee94d5.js", "rest_framework/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.3d8308804264.js", "rest_framework/js/ajax-form.js": "rest_framework/js/ajax-form.0ea6e6052ab5.js", "rest_framework/js/coreapi-0.1.1.js": "rest_framework/js/coreapi-0.1.1.8851fb9336c9.js", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/css/font-awesome-4.0.3.css": "rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css", "rest_framework/css/bootstrap-tweaks.css": "rest_framework/css/bootstrap-tweaks.46ed116b0edd.css", "rest_framework/css/default.css": "rest_framework/css/default.8d5591a6aabc.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.66b84a04375e.css", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.77017a69879a.css", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/fonts/glyphicons-halflings-regular.woff2": "rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "rest_framework/fonts/fontawesome-webfont.ttf": "rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/img/glyphicons-halflings.png": "rest_framework/img/glyphicons-halflings.90233c9067e9.png", "rest_framework/img/glyphicons-halflings-white.png": "rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png", "admin/js/prepopulate.min.js": "admin/js/prepopulate.min.85fd5e0fb706.js", "admin/js/calendar.js": "admin/js/calendar.aae57adab5f6.js", "admin/js/inlines.min.js": "admin/js/inlines.min.4d23f8660b21.js", "admin/js/SelectBox.js": "admin/js/SelectBox.b49f008d186b.js", "admin/js/collapse.min.js": "admin/js/collapse.min.44dfdb427845.js", "admin/js/urlify.js": "admin/js/urlify.4087f3e18796.js", "admin/js/actions.min.js": "admin/js/actions.min.5fa8cb0403f1.js", "admin/js/popup_response.js": "admin/js/popup_response.6ce3197f8fc8.js", "admin/js/autocomplete.js": "admin/js/autocomplete.cfd2c4dc8981.js", "admin/js/collapse.js": "admin/js/collapse.c5b851e91226.js", "admin/js/change_form.js": "admin/js/change_form.9e85003a1a38.js", "admin/js/jquery.init.js": "admin/js/jquery.init.95b62fa19378.js", "admin/js/actions.js": "admin/js/actions.2fb8e8349c22.js", "admin/js/prepopulate_init.js": "admin/js/prepopulate_init.0d3b53c37074.js", "admin/js/inlines.js": "admin/js/inlines.3b3fb199b064.js", "admin/js/timeparse.js": "admin/js/timeparse.51258861a46a.js", "admin/js/prepopulate.js": "admin/js/prepopulate.2f90da7170ec.js", "admin/js/cancel.js": "admin/js/cancel.d6b4b556c3aa.js", "admin/js/SelectFilter2.js": "admin/js/SelectFilter2.32ea9335ce47.js", "admin/js/core.js": "admin/js/core.9c3bce7d1006.js", "admin/css/changelists.css": "admin/css/changelists.f6dc691f8d62.css", "admin/css/login.css": "admin/css/login.252ffabd6548.css", "admin/css/fonts.css": "admin/css/fonts.168bab448fee.css", "admin/css/responsive.css": "admin/css/responsive.3a465780d49f.css", "admin/css/autocomplete.css": "admin/css/autocomplete.781713f30664.css", "admin/css/base.css": "admin/css/base.ae33e6383baa.css", "admin/css/widgets.css": "admin/css/widgets.5e372b41c483.css", "admin/css/forms.css": "admin/css/forms.31b2f650d92e.css", "admin/css/dashboard.css": "admin/css/dashboard.7ac78187c567.css", "admin/css/rtl.css": "admin/css/rtl.30f903442dc5.css", "admin/css/responsive_rtl.css": "admin/css/responsive_rtl.51c7445ceeff.css", "admin/fonts/LICENSE.txt": "admin/fonts/LICENSE.d273d63619c9.txt", "admin/fonts/Roboto-Bold-webfont.woff": "admin/fonts/Roboto-Bold-webfont.50d75e48e0a3.woff", "admin/fonts/Roboto-Light-webfont.woff": "admin/fonts/Roboto-Light-webfont.c73eb1ceba33.woff", "admin/fonts/README.txt": "admin/fonts/README.ab99e6b541ea.txt", "admin/fonts/Roboto-Regular-webfont.woff": "admin/fonts/Roboto-Regular-webfont.35b07eb2f871.woff", "admin/img/icon-changelink.svg": "admin/img/icon-changelink.18d2fd706348.svg", "admin/img/icon-no.svg": "admin/img/icon-no.439e821418cd.svg", "admin/img/selector-icons.svg": "admin/img/selector-icons.b4555096cea2.svg", "admin/img/search.svg": "admin/img/search.7cf54ff789c6.svg", "admin/img/icon-yes.svg": "admin/img/icon-yes.d2f9f035226a.svg", "admin/img/icon-addlink.svg": "admin/img/icon-addlink.d519b3bab011.svg", "admin/img/icon-clock.svg": "admin/img/icon-clock.e1d4dfac3f2b.svg", "admin/img/LICENSE": "admin/img/LICENSE.2c54f4e1ca1c", "admin/img/icon-viewlink.svg": "admin/img/icon-viewlink.41eb31f7826e.svg", "admin/img/icon-unknown.svg": "admin/img/icon-unknown.a18cb4398978.svg", "admin/img/README.txt": "admin/img/README.a70711a38d87.txt", "admin/img/icon-calendar.svg": "admin/img/icon-calendar.ac7aea671bea.svg", "admin/img/sorting-icons.svg": "admin/img/sorting-icons.3a097b59f104.svg", "admin/img/tooltag-arrowright.svg": "admin/img/tooltag-arrowright.bbfb788a849e.svg", "admin/img/icon-deletelink.svg": "admin/img/icon-deletelink.564ef9dc3854.svg", "admin/img/tooltag-add.svg": "admin/img/tooltag-add.e59d620a9742.svg", "admin/img/inline-delete.svg": "admin/img/inline-delete.fec1b761f254.svg", "admin/img/icon-alert.svg": "admin/img/icon-alert.034cc7d8a67f.svg", "admin/img/icon-unknown-alt.svg": "admin/img/icon-unknown-alt.81536e128bb6.svg", "admin/img/calendar-icons.svg": "admin/img/calendar-icons.39b290681a8b.svg"}, "version": "1.0"}
\ No newline at end of file
+{"paths": {"admin/js/vendor/select2/i18n/cs.js": "admin/js/vendor/select2/i18n/cs.a68bcd293adc.js", "admin/js/vendor/select2/i18n/en.js": "admin/js/vendor/select2/i18n/en.05649b26c086.js", "admin/js/vendor/select2/i18n/ko.js": "admin/js/vendor/select2/i18n/ko.74b17541834f.js", "admin/js/vendor/select2/i18n/lv.js": "admin/js/vendor/select2/i18n/lv.07fe2a580d17.js", "admin/js/vendor/select2/i18n/km.js": "admin/js/vendor/select2/i18n/km.6074a9c5575c.js", "admin/js/vendor/select2/i18n/pl.js": "admin/js/vendor/select2/i18n/pl.76465b54a6b0.js", "admin/js/vendor/select2/i18n/de.js": "admin/js/vendor/select2/i18n/de.366d0aacb55f.js", "admin/js/vendor/select2/i18n/sr.js": "admin/js/vendor/select2/i18n/sr.157bc6eb978e.js", "admin/js/vendor/select2/i18n/ru.js": "admin/js/vendor/select2/i18n/ru.d83609abf2e0.js", "admin/js/vendor/select2/i18n/he.js": "admin/js/vendor/select2/i18n/he.222d90ee0344.js", "admin/js/vendor/select2/i18n/el.js": "admin/js/vendor/select2/i18n/el.5629ce65500f.js", "admin/js/vendor/select2/i18n/pt-BR.js": "admin/js/vendor/select2/i18n/pt-BR.9efbbac4fda8.js", "admin/js/vendor/select2/i18n/uk.js": "admin/js/vendor/select2/i18n/uk.3d56f311192d.js", "admin/js/vendor/select2/i18n/nl.js": "admin/js/vendor/select2/i18n/nl.c363ace8aa05.js", "admin/js/vendor/select2/i18n/sv.js": "admin/js/vendor/select2/i18n/sv.2b21bb3f6110.js", "admin/js/vendor/select2/i18n/mk.js": "admin/js/vendor/select2/i18n/mk.4986d7fc3ff3.js", "admin/js/vendor/select2/i18n/bg.js": "admin/js/vendor/select2/i18n/bg.89cba4df3c86.js", "admin/js/vendor/select2/i18n/zh-CN.js": "admin/js/vendor/select2/i18n/zh-CN.419002d3c6c1.js", "admin/js/vendor/select2/i18n/vi.js": "admin/js/vendor/select2/i18n/vi.3520aa7bdea8.js", "admin/js/vendor/select2/i18n/tr.js": "admin/js/vendor/select2/i18n/tr.c1925d8817db.js", "admin/js/vendor/select2/i18n/fr.js": "admin/js/vendor/select2/i18n/fr.b06a3340de45.js", "admin/js/vendor/select2/i18n/gl.js": "admin/js/vendor/select2/i18n/gl.78a87f7c0a51.js", "admin/js/vendor/select2/i18n/hr.js": "admin/js/vendor/select2/i18n/hr.e1d2c70b4df5.js", "admin/js/vendor/select2/i18n/eu.js": "admin/js/vendor/select2/i18n/eu.11b925456433.js", "admin/js/vendor/select2/i18n/ar.js": "admin/js/vendor/select2/i18n/ar.a8bb27ec698c.js", "admin/js/vendor/select2/i18n/zh-TW.js": "admin/js/vendor/select2/i18n/zh-TW.c021537edf2c.js", "admin/js/vendor/select2/i18n/th.js": "admin/js/vendor/select2/i18n/th.2a4ece4c4355.js", "admin/js/vendor/select2/i18n/sr-Cyrl.js": "admin/js/vendor/select2/i18n/sr-Cyrl.2f3047aad49e.js", "admin/js/vendor/select2/i18n/lt.js": "admin/js/vendor/select2/i18n/lt.a0783b1bd159.js", "admin/js/vendor/select2/i18n/et.js": "admin/js/vendor/select2/i18n/et.c3953fb90b6b.js", "admin/js/vendor/select2/i18n/fi.js": "admin/js/vendor/select2/i18n/fi.659847deefdc.js", "admin/js/vendor/select2/i18n/hi.js": "admin/js/vendor/select2/i18n/hi.116a90b7111b.js", "admin/js/vendor/select2/i18n/ja.js": "admin/js/vendor/select2/i18n/ja.19cf1ce8a03d.js", "admin/js/vendor/select2/i18n/sk.js": "admin/js/vendor/select2/i18n/sk.a0f1a818d092.js", "admin/js/vendor/select2/i18n/da.js": "admin/js/vendor/select2/i18n/da.cbf897a0ae53.js", "admin/js/vendor/select2/i18n/id.js": "admin/js/vendor/select2/i18n/id.6ee6c9c64b94.js", "admin/js/vendor/select2/i18n/es.js": "admin/js/vendor/select2/i18n/es.dc9dbf9d65df.js", "admin/js/vendor/select2/i18n/it.js": "admin/js/vendor/select2/i18n/it.bae1661dbb77.js", "admin/js/vendor/select2/i18n/hu.js": "admin/js/vendor/select2/i18n/hu.db45641f10b2.js", "admin/js/vendor/select2/i18n/ms.js": "admin/js/vendor/select2/i18n/ms.23e7b4369579.js", "admin/js/vendor/select2/i18n/fa.js": "admin/js/vendor/select2/i18n/fa.98e52839b583.js", "admin/js/vendor/select2/i18n/nb.js": "admin/js/vendor/select2/i18n/nb.137e184004aa.js", "admin/js/vendor/select2/i18n/az.js": "admin/js/vendor/select2/i18n/az.498dc667b34e.js", "admin/js/vendor/select2/i18n/ca.js": "admin/js/vendor/select2/i18n/ca.2eaad4eb1950.js", "admin/js/vendor/select2/i18n/ro.js": "admin/js/vendor/select2/i18n/ro.1ddc2b9980dc.js", "admin/js/vendor/select2/i18n/pt.js": "admin/js/vendor/select2/i18n/pt.5d6ccc53b347.js", "admin/js/vendor/select2/i18n/is.js": "admin/js/vendor/select2/i18n/is.808c7d47acb5.js", "admin/js/vendor/xregexp/LICENSE.txt": "admin/js/vendor/xregexp/LICENSE.d64cecf4f157.txt", "admin/js/vendor/xregexp/xregexp.min.js": "admin/js/vendor/xregexp/xregexp.min.c95393b8ca4d.js", "admin/js/vendor/xregexp/xregexp.js": "admin/js/vendor/xregexp/xregexp.1865b1cf5085.js", "admin/js/vendor/select2/LICENSE.md": "admin/js/vendor/select2/LICENSE.7cf1de939f3b.md", "admin/js/vendor/select2/select2.full.js": "admin/js/vendor/select2/select2.full.a95323cb4760.js", "admin/js/vendor/select2/select2.full.min.js": "admin/js/vendor/select2/select2.full.min.da607360bcc6.js", "admin/js/vendor/jquery/jquery.js": "admin/js/vendor/jquery/jquery.6fb03f669462.js", "admin/js/vendor/jquery/LICENSE.txt": "admin/js/vendor/jquery/LICENSE.a158210a2737.txt", "admin/js/vendor/jquery/jquery.min.js": "admin/js/vendor/jquery/jquery.min.9c86871c4213.js", "admin/css/vendor/select2/select2.min.css": "admin/css/vendor/select2/select2.min.d44571114a90.css", "admin/css/vendor/select2/select2.css": "admin/css/vendor/select2/select2.3805311d5fc1.css", "admin/css/vendor/select2/LICENSE-SELECT2.md": "admin/css/vendor/select2/LICENSE-SELECT2.7cf1de939f3b.md", "babybuddy/img/core/child-placeholder.png": "babybuddy/img/core/child-placeholder.7c0a81f0d7f0.png", "rest_framework/docs/js/jquery.json-view.min.js": "rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js", "rest_framework/docs/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "rest_framework/docs/js/api.js": "rest_framework/docs/js/api.c9743eab7a4f.js", "rest_framework/docs/css/base.css": "rest_framework/docs/css/base.d9cd17260641.css", "rest_framework/docs/css/jquery.json-view.min.css": "rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css", "rest_framework/docs/css/highlight.css": "rest_framework/docs/css/highlight.e0e4d973c6d7.css", "rest_framework/docs/img/grid.png": "rest_framework/docs/img/grid.a4b938cf382b.png", "rest_framework/docs/img/favicon.ico": "rest_framework/docs/img/favicon.5195b4d0f3eb.ico", "admin/js/admin/DateTimeShortcuts.js": "admin/js/admin/DateTimeShortcuts.efa703f6f0b3.js", "admin/js/admin/RelatedObjectLookups.js": "admin/js/admin/RelatedObjectLookups.ea0683bea064.js", "admin/img/gis/move_vertex_on.svg": "admin/img/gis/move_vertex_on.0047eba25b67.svg", "admin/img/gis/move_vertex_off.svg": "admin/img/gis/move_vertex_off.7a23bf31ef8a.svg", "babybuddy/logo/icon2.png": "babybuddy/logo/icon2.be48fd16c53f.png", "babybuddy/logo/icon-brand.png": "babybuddy/logo/icon-brand.96e4491f2209.png", "babybuddy/logo/logo.png": "babybuddy/logo/logo.62870041cc83.png", "babybuddy/logo/icon.png": "babybuddy/logo/icon.6377611bf399.png", "babybuddy/js/app.js": "babybuddy/js/app.0079764f3fc1.js", "babybuddy/js/graph.js": "babybuddy/js/graph.da32e0532ca2.js", "babybuddy/js/vendor.js": "babybuddy/js/vendor.3aed05379df2.js", "babybuddy/css/vendor.css": "babybuddy/css/vendor.be1a1448dd86.css", "babybuddy/css/app.css": "babybuddy/css/app.3349e431532d.css", "babybuddy/fonts/fontawesome-webfont.eot": "babybuddy/fonts/fontawesome-webfont.674f50d287a8.eot", "babybuddy/fonts/fontawesome-webfont.ttf": "babybuddy/fonts/fontawesome-webfont.b06871f281fe.ttf", "babybuddy/fonts/fontawesome-webfont.svg": "babybuddy/fonts/fontawesome-webfont.912ec66d7572.svg", "babybuddy/fonts/fontawesome-webfont.woff2": "babybuddy/fonts/fontawesome-webfont.af7ae505a9ee.woff2", "babybuddy/fonts/FontAwesome.otf": "babybuddy/fonts/FontAwesome.0d2717cd5d85.otf", "babybuddy/fonts/fontawesome-webfont.woff": "babybuddy/fonts/fontawesome-webfont.fee66e712a8a.woff", "babybuddy/root/site.webmanifest.json": "babybuddy/root/site.webmanifest.61dac00bb04b.json", "babybuddy/root/favicon-32x32.png": "babybuddy/root/favicon-32x32.076f1340f1cf.png", "babybuddy/root/favicon.ico": "babybuddy/root/favicon.1b19cfd81791.ico", "babybuddy/root/android-chrome-512x512.png": "babybuddy/root/android-chrome-512x512.89ee40b783cd.png", "babybuddy/root/favicon-16x16.png": "babybuddy/root/favicon-16x16.12c501486484.png", "babybuddy/root/mstile-150x150.png": "babybuddy/root/mstile-150x150.f231c8ff6157.png", "babybuddy/root/apple-touch-icon.png": "babybuddy/root/apple-touch-icon.33416748f239.png", "babybuddy/root/safari-pinned-tab.svg": "babybuddy/root/safari-pinned-tab.3de51db2baf2.svg", "babybuddy/root/android-chrome-192x192.png": "babybuddy/root/android-chrome-192x192.484bd0e8cb66.png", "babybuddy/root/browserconfig.xml": "babybuddy/root/browserconfig.5858221e0a38.xml", "babybuddy/root/android-chrome-384x384.png": "babybuddy/root/android-chrome-384x384.7849615a1e26.png", "babybuddy/webfonts/fa-brands-400.svg": "babybuddy/webfonts/fa-brands-400.38975343b586.svg", "babybuddy/webfonts/fa-solid-900.svg": "babybuddy/webfonts/fa-solid-900.7726a281c1d4.svg", "babybuddy/webfonts/fa-regular-400.woff": "babybuddy/webfonts/fa-regular-400.7aaf5675efd6.woff", "babybuddy/webfonts/fa-solid-900.woff2": "babybuddy/webfonts/fa-solid-900.64b3e814a66c.woff2", "babybuddy/webfonts/fa-regular-400.eot": "babybuddy/webfonts/fa-regular-400.859001f6ae8e.eot", "babybuddy/webfonts/fa-solid-900.woff": "babybuddy/webfonts/fa-solid-900.0be94a07755b.woff", "babybuddy/webfonts/fa-brands-400.eot": "babybuddy/webfonts/fa-brands-400.8e49b7284130.eot", "babybuddy/webfonts/fa-brands-400.woff2": "babybuddy/webfonts/fa-brands-400.9f4ce3dc6899.woff2", "babybuddy/webfonts/fa-brands-400.ttf": "babybuddy/webfonts/fa-brands-400.b7d071b9c3c1.ttf", "babybuddy/webfonts/fa-regular-400.ttf": "babybuddy/webfonts/fa-regular-400.f33342516f7c.ttf", "babybuddy/webfonts/fa-solid-900.ttf": "babybuddy/webfonts/fa-solid-900.f14c3b2ff7c8.ttf", "babybuddy/webfonts/fa-regular-400.woff2": "babybuddy/webfonts/fa-regular-400.7980a6361c25.woff2", "babybuddy/webfonts/fa-solid-900.eot": "babybuddy/webfonts/fa-solid-900.e2675a616b68.eot", "babybuddy/webfonts/fa-regular-400.svg": "babybuddy/webfonts/fa-regular-400.da8a235bb207.svg", "babybuddy/webfonts/fa-brands-400.woff": "babybuddy/webfonts/fa-brands-400.9f018d102556.woff", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.js", "rest_framework/js/default.js": "rest_framework/js/default.5b08897dbdc3.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.969930007329.js", "rest_framework/js/jquery-3.3.1.min.js": "rest_framework/js/jquery-3.3.1.min.a09e13ee94d5.js", "rest_framework/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.3d8308804264.js", "rest_framework/js/ajax-form.js": "rest_framework/js/ajax-form.0ea6e6052ab5.js", "rest_framework/js/coreapi-0.1.1.js": "rest_framework/js/coreapi-0.1.1.8851fb9336c9.js", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/css/font-awesome-4.0.3.css": "rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css", "rest_framework/css/bootstrap-tweaks.css": "rest_framework/css/bootstrap-tweaks.46ed116b0edd.css", "rest_framework/css/default.css": "rest_framework/css/default.8d5591a6aabc.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.66b84a04375e.css", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.77017a69879a.css", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/fonts/glyphicons-halflings-regular.woff2": "rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "rest_framework/fonts/fontawesome-webfont.ttf": "rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/img/glyphicons-halflings.png": "rest_framework/img/glyphicons-halflings.90233c9067e9.png", "rest_framework/img/glyphicons-halflings-white.png": "rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png", "admin/js/prepopulate.min.js": "admin/js/prepopulate.min.85fd5e0fb706.js", "admin/js/calendar.js": "admin/js/calendar.aae57adab5f6.js", "admin/js/inlines.min.js": "admin/js/inlines.min.4d23f8660b21.js", "admin/js/SelectBox.js": "admin/js/SelectBox.99d0cfd2e80c.js", "admin/js/collapse.min.js": "admin/js/collapse.min.44dfdb427845.js", "admin/js/urlify.js": "admin/js/urlify.67bae52223e0.js", "admin/js/actions.min.js": "admin/js/actions.min.5fa8cb0403f1.js", "admin/js/popup_response.js": "admin/js/popup_response.6ce3197f8fc8.js", "admin/js/autocomplete.js": "admin/js/autocomplete.cfd2c4dc8981.js", "admin/js/collapse.js": "admin/js/collapse.c5b851e91226.js", "admin/js/change_form.js": "admin/js/change_form.9e85003a1a38.js", "admin/js/jquery.init.js": "admin/js/jquery.init.95b62fa19378.js", "admin/js/actions.js": "admin/js/actions.8d83e3af0fbd.js", "admin/js/prepopulate_init.js": "admin/js/prepopulate_init.0d3b53c37074.js", "admin/js/inlines.js": "admin/js/inlines.12d1af430335.js", "admin/js/timeparse.js": "admin/js/timeparse.51258861a46a.js", "admin/js/prepopulate.js": "admin/js/prepopulate.2f90da7170ec.js", "admin/js/cancel.js": "admin/js/cancel.a2c3149a1c5e.js", "admin/js/SelectFilter2.js": "admin/js/SelectFilter2.32ea9335ce47.js", "admin/js/core.js": "admin/js/core.a004ed25a257.js", "admin/css/changelists.css": "admin/css/changelists.f6dc691f8d62.css", "admin/css/login.css": "admin/css/login.252ffabd6548.css", "admin/css/fonts.css": "admin/css/fonts.168bab448fee.css", "admin/css/responsive.css": "admin/css/responsive.3a465780d49f.css", "admin/css/autocomplete.css": "admin/css/autocomplete.781713f30664.css", "admin/css/base.css": "admin/css/base.ae33e6383baa.css", "admin/css/widgets.css": "admin/css/widgets.5e372b41c483.css", "admin/css/forms.css": "admin/css/forms.31b2f650d92e.css", "admin/css/dashboard.css": "admin/css/dashboard.7ac78187c567.css", "admin/css/rtl.css": "admin/css/rtl.30f903442dc5.css", "admin/css/responsive_rtl.css": "admin/css/responsive_rtl.51c7445ceeff.css", "admin/fonts/LICENSE.txt": "admin/fonts/LICENSE.d273d63619c9.txt", "admin/fonts/Roboto-Bold-webfont.woff": "admin/fonts/Roboto-Bold-webfont.50d75e48e0a3.woff", "admin/fonts/Roboto-Light-webfont.woff": "admin/fonts/Roboto-Light-webfont.c73eb1ceba33.woff", "admin/fonts/README.txt": "admin/fonts/README.ab99e6b541ea.txt", "admin/fonts/Roboto-Regular-webfont.woff": "admin/fonts/Roboto-Regular-webfont.35b07eb2f871.woff", "admin/img/icon-changelink.svg": "admin/img/icon-changelink.18d2fd706348.svg", "admin/img/icon-no.svg": "admin/img/icon-no.439e821418cd.svg", "admin/img/selector-icons.svg": "admin/img/selector-icons.b4555096cea2.svg", "admin/img/search.svg": "admin/img/search.7cf54ff789c6.svg", "admin/img/icon-yes.svg": "admin/img/icon-yes.d2f9f035226a.svg", "admin/img/icon-addlink.svg": "admin/img/icon-addlink.d519b3bab011.svg", "admin/img/icon-clock.svg": "admin/img/icon-clock.e1d4dfac3f2b.svg", "admin/img/LICENSE": "admin/img/LICENSE.2c54f4e1ca1c", "admin/img/icon-viewlink.svg": "admin/img/icon-viewlink.41eb31f7826e.svg", "admin/img/icon-unknown.svg": "admin/img/icon-unknown.a18cb4398978.svg", "admin/img/README.txt": "admin/img/README.a70711a38d87.txt", "admin/img/icon-calendar.svg": "admin/img/icon-calendar.ac7aea671bea.svg", "admin/img/sorting-icons.svg": "admin/img/sorting-icons.3a097b59f104.svg", "admin/img/tooltag-arrowright.svg": "admin/img/tooltag-arrowright.bbfb788a849e.svg", "admin/img/icon-deletelink.svg": "admin/img/icon-deletelink.564ef9dc3854.svg", "admin/img/tooltag-add.svg": "admin/img/tooltag-add.e59d620a9742.svg", "admin/img/inline-delete.svg": "admin/img/inline-delete.fec1b761f254.svg", "admin/img/icon-alert.svg": "admin/img/icon-alert.034cc7d8a67f.svg", "admin/img/icon-unknown-alt.svg": "admin/img/icon-unknown-alt.81536e128bb6.svg", "admin/img/calendar-icons.svg": "admin/img/calendar-icons.39b290681a8b.svg"}, "version": "1.0"}
\ No newline at end of file