diff --git a/Pipfile b/Pipfile index 0bf2d3f0..62a51bb3 100644 --- a/Pipfile +++ b/Pipfile @@ -1,11 +1,8 @@ [[source]] - verify_ssl = true url = "https://pypi.python.org/simple" - [packages] - django = "*" djangorestframework = "*" django-filter = "*" @@ -21,10 +18,9 @@ easy-thumbnails = "*" python-dotenv = "*" django-storages = "*" boto3 = "*" - +django-import-export = "*" [dev-packages] - coveralls = "*" flake8 = "*" ipaddress = "*" diff --git a/Pipfile.lock b/Pipfile.lock index 7213b2cc..917bc111 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "21a6001d830ce191858fed3bd90d35af9317737dddfcb41a3dd1e714f8e8fd54" + "sha256": "60e32aea6660fd1030af59723675270b96317b565230d48f7262f158f82c2ee3" }, "pipfile-spec": 6, "requires": {}, @@ -22,17 +22,30 @@ }, "boto3": { "hashes": [ - "sha256:09eccb6cd41381c4ff1d626c3a19884b5b1f1424d15a96004d077b532ef393d1", - "sha256:664be6e0e20cb064dda4ac3397082e3dcc453abb8b2bd2cf64066677e0fb2266" + "sha256:33462a79d57c9c4a215e075472509537d03545f54566fc4f776fb0f4cfa616f6", + "sha256:34f9a04f529dc849f0e427782d6f3c6b62f7fb734d8f4859b17e5dee0855323e" ], - "version": "==1.11.13" + "version": "==1.12.0" }, "botocore": { "hashes": [ - "sha256:6478d9207db6dbcb5106fd4db2cdd5194d0b2dc0b73776019d56877ab802fe87", - "sha256:6ffb78b331b0954cfe5c51958cb51522ab0e2999442422949b080a3e1bc76ee1" + "sha256:055da4826f6c9158e4a61549d57a2ce449c27d44ce34ab4c96c7bb7b5c993efc", + "sha256:1f7cecfcd38c7cac17b5386014eb04626d1c7559ee8d8ec1526058cd23f6d1d4" ], - "version": "==1.14.13" + "version": "==1.15.0" + }, + "defusedxml": { + "hashes": [ + "sha256:6687150770438374ab581bb7a1b327a847dd9c5749e396102de3fad4e8a3ef93", + "sha256:f684034d135af4c6cbb949b8a4d2ed61634515257a67299e5f940fbaa34377f5" + ], + "version": "==0.6.0" + }, + "diff-match-patch": { + "hashes": [ + "sha256:a809a996d0f09b9bbd59e9bbd0b71eed8c807922512910e05cbd3f9480712ddb" + ], + "version": "==20181111" }, "dj-database-url": { "hashes": [ @@ -55,6 +68,13 @@ ], "version": "==2.2.0" }, + "django-import-export": { + "hashes": [ + "sha256:939109c8be31a8bcc8779634c080c4510669aba576b173f37cfdf838a705d0ac", + "sha256:94c2030ba1b141bdd6423ac479b4da79b7de55c5a9f339b675c46299db184c11" + ], + "version": "==2.0.1" + }, "django-storages": { "hashes": [ "sha256:3103991c2ee8cef8a2ff096709973ffe7106183d211a79f22cf855f33533d924", @@ -90,6 +110,13 @@ ], "version": "==2.7" }, + "et-xmlfile": { + "hashes": [ + "sha256:1c702bcfd00f9a602dffd0e004d9b4f68a65c7410963ca76b1250413e9197a6c", + "sha256:614d9722d572f6246302c4491846d2c393c199cfa4edc9af593437691683335b" + ], + "version": "==1.0.1" + }, "faker": { "hashes": [ "sha256:047d4d1791bfb3756264da670d99df13d799bb36e7d88774b1585a82d05dbaec", @@ -104,6 +131,13 @@ ], "version": "==20.0.4" }, + "jdcal": { + "hashes": [ + "sha256:1abf1305fce18b4e8aa248cf8fe0c56ce2032392bc64bbd61b5dff2a19ec8bba", + "sha256:472872e096eb8df219c23f2689fc336668bdb43d194094b5cc1707e1640acfc8" + ], + "version": "==1.4.1" + }, "jmespath": { "hashes": [ "sha256:3720a4b1bd659dd2eecad0666459b9788813e032b83e7ba58578e48254e0a0e6", @@ -111,6 +145,12 @@ ], "version": "==0.9.4" }, + "markuppy": { + "hashes": [ + "sha256:1adee2c0a542af378fe84548ff6f6b0168f3cb7f426b46961038a2bcfaad0d5f" + ], + "version": "==1.14" + }, "numpy": { "hashes": [ "sha256:1786a08236f2c92ae0e70423c45e1e62788ed33028f94ca99c4df03f5be6b3c6", @@ -137,6 +177,18 @@ ], "version": "==1.18.1" }, + "odfpy": { + "hashes": [ + "sha256:db766a6e59c5103212f3cc92ec8dd50a0f3a02790233ed0b52148b70d3c438ec" + ], + "version": "==1.4.1" + }, + "openpyxl": { + "hashes": [ + "sha256:547a9fc6aafcf44abe358b89ed4438d077e9d92e4f182c87e2dc294186dc4b64" + ], + "version": "==3.0.3" + }, "pandas": { "hashes": [ "sha256:23e177d43e4bf68950b0f8788b6a2fef2f478f4ec94883acb627b9264522a98a", @@ -248,6 +300,22 @@ ], "version": "==2019.3" }, + "pyyaml": { + "hashes": [ + "sha256:059b2ee3194d718896c0ad077dd8c043e5e909d9180f387ce42012662a4946d6", + "sha256:1cf708e2ac57f3aabc87405f04b86354f66799c8e62c28c5fc5f88b5521b2dbf", + "sha256:24521fa2890642614558b492b473bee0ac1f8057a7263156b02e8b14c88ce6f5", + "sha256:4fee71aa5bc6ed9d5f116327c04273e25ae31a3020386916905767ec4fc5317e", + "sha256:70024e02197337533eef7b85b068212420f950319cc8c580261963aefc75f811", + "sha256:74782fbd4d4f87ff04159e986886931456a1894c61229be9eaf4de6f6e44b99e", + "sha256:940532b111b1952befd7db542c370887a8611660d2b9becff75d39355303d82d", + "sha256:cb1f2f5e426dc9f07a7681419fe39cee823bb74f723f36f70399123f439e9b20", + "sha256:dbbb2379c19ed6042e8f11f2a2c66d39cceb8aeace421bfc29d085d93eda3689", + "sha256:e3a057b7a64f1222b56e47bcff5e4b94c4f61faac04c7c4ecb1985e18caa3994", + "sha256:e9f45bd5b92c7974e59bcd2dcc8631a6b6cc380a904725fce7bc08872e691615" + ], + "version": "==5.3" + }, "retrying": { "hashes": [ "sha256:08c039560a6da2fe4f2c426d0766e284d3b736e355f8dd24b37367b0bb41973b" @@ -275,6 +343,13 @@ ], "version": "==0.3.0" }, + "tablib": { + "hashes": [ + "sha256:00654241e5beee437ba544e4fa4abef70ccec3668503aa95406c1250bb660770", + "sha256:6336e7aa3f0e5894b47270a3dc639cc2e78eb823c7ccb8c4512fb408cdc18d08" + ], + "version": "==0.14.0" + }, "text-unidecode": { "hashes": [ "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8", @@ -296,6 +371,20 @@ "sha256:62556265ec1011bd87113fb81b7516f52688887b7a010ee899ff1fd18fd22700" ], "version": "==5.0.1" + }, + "xlrd": { + "hashes": [ + "sha256:546eb36cee8db40c3eaa46c351e67ffee6eeb5fa2650b71bc4c758a29a1b29b2", + "sha256:e551fb498759fa3a5384a94ccd4c3c02eb7c00ea424426e212ac0c57be9dfbde" + ], + "version": "==1.2.0" + }, + "xlwt": { + "hashes": [ + "sha256:a082260524678ba48a297d922cc385f58278b8aa68741596a87de01a9c628b2e", + "sha256:c59912717a9b28f1a3c2a98fd60741014b06b043936dcecbc113eaaada156c88" + ], + "version": "==1.3.0" } }, "develop": { @@ -351,10 +440,10 @@ }, "coveralls": { "hashes": [ - "sha256:2da39aeaef986757653f0a442ba2bef22a8ec602c8bacbc69d39f468dfae12ec", - "sha256:906e07a12b2ac04b8ad782d06173975fe5ff815fe9df3bfedd2c099bc5791aec" + "sha256:4b6bfc2a2a77b890f556bc631e35ba1ac21193c356393b66c84465c06218e135", + "sha256:67188c7ec630c5f708c31552f2bcdac4580e172219897c4136504f14b823132f" ], - "version": "==1.10.0" + "version": "==1.11.1" }, "docopt": { "hashes": [ diff --git a/babybuddy/settings/base.py b/babybuddy/settings/base.py index 968eca5b..4be89ef3 100644 --- a/babybuddy/settings/base.py +++ b/babybuddy/settings/base.py @@ -40,6 +40,7 @@ INSTALLED_APPS = [ 'widget_tweaks', 'easy_thumbnails', 'storages', + 'import_export', 'django.contrib.admin', 'django.contrib.auth', @@ -215,6 +216,12 @@ REST_FRAMEWORK = { 'PAGE_SIZE': 100 } +# Import/Export configuration +# See https://django-import-export.readthedocs.io/ + +IMPORT_EXPORT_IMPORT_PERMISSION_CODE = 'add' +IMPORT_EXPORT_EXPORT_PERMISSION_CODE = 'change' + # Baby Buddy configuration # See README.md#configuration for details about these settings. diff --git a/core/admin.py b/core/admin.py index 15723d45..06650e50 100644 --- a/core/admin.py +++ b/core/admin.py @@ -2,54 +2,95 @@ from django.contrib import admin from django.conf import settings +from import_export import resources +from import_export.admin import ImportExportMixin + from core import models +class ChildImportExportResource(resources.ModelResource): + class Meta: + model = models.Child + exclude = ('picture', 'slug') + + @admin.register(models.Child) -class ChildAdmin(admin.ModelAdmin): +class ChildAdmin(ImportExportMixin, admin.ModelAdmin): list_display = ('first_name', 'last_name', 'birth_date', 'slug') list_filter = ('last_name',) search_fields = ('first_name', 'last_name', 'birth_date') fields = ['first_name', 'last_name', 'birth_date'] if settings.BABY_BUDDY['ALLOW_UPLOADS']: fields.append('picture') + resource_class = ChildImportExportResource + + +class DiaperChangeImportExportResource(resources.ModelResource): + class Meta: + model = models.DiaperChange @admin.register(models.DiaperChange) -class DiaperChangeAdmin(admin.ModelAdmin): +class DiaperChangeAdmin(ImportExportMixin, admin.ModelAdmin): list_display = ('child', 'time', 'wet', 'solid', 'color') list_filter = ('child', 'wet', 'solid', 'color') search_fields = ('child__first_name', 'child__last_name',) + resource_class = DiaperChangeImportExportResource + + +class FeedingImportExportResource(resources.ModelResource): + class Meta: + model = models.Feeding @admin.register(models.Feeding) -class FeedingAdmin(admin.ModelAdmin): +class FeedingAdmin(ImportExportMixin, admin.ModelAdmin): list_display = ('start', 'end', 'duration', 'child', 'type', 'method', 'amount') list_filter = ('child', 'type', 'method',) search_fields = ('child__first_name', 'child__last_name', 'type', 'method',) + resource_class = FeedingImportExportResource + + +class NoteImportExportResource(resources.ModelResource): + class Meta: + model = models.Note @admin.register(models.Note) -class NoteAdmin(admin.ModelAdmin): +class NoteAdmin(ImportExportMixin, admin.ModelAdmin): list_display = ('time', 'child', 'note',) list_filter = ('child',) search_fields = ('child__last_name',) + resource_class = NoteImportExportResource + + +class SleepImportExportResource(resources.ModelResource): + class Meta: + model = models.Sleep + exclude = ('duration',) @admin.register(models.Sleep) -class SleepAdmin(admin.ModelAdmin): +class SleepAdmin(ImportExportMixin, admin.ModelAdmin): list_display = ('start', 'end', 'duration', 'child', 'nap') list_filter = ('child',) search_fields = ('child__first_name', 'child__last_name',) + resource_class = SleepImportExportResource + + +class TemperatureImportExportResource(resources.ModelResource): + class Meta: + model = models.Temperature @admin.register(models.Temperature) -class TemperatureAdmin(admin.ModelAdmin): +class TemperatureAdmin(ImportExportMixin, admin.ModelAdmin): list_display = ('child', 'temperature', 'time',) list_filter = ('child',) search_fields = ('child__first_name', 'child__last_name', 'temperature',) + resource_class = TemperatureImportExportResource @admin.register(models.Timer) @@ -60,15 +101,27 @@ class TimerAdmin(admin.ModelAdmin): search_fields = ('child__first_name', 'child__last_name', 'name', 'user') +class TummyTimeImportExportResource(resources.ModelResource): + class Meta: + model = models.TummyTime + + @admin.register(models.TummyTime) -class TummyTimeAdmin(admin.ModelAdmin): +class TummyTimeAdmin(ImportExportMixin, admin.ModelAdmin): list_display = ('start', 'end', 'duration', 'child', 'milestone',) list_filter = ('child',) search_fields = ('child__first_name', 'child__last_name', 'milestone',) + resource_class = TummyTimeImportExportResource + + +class WeightImportExportResource(resources.ModelResource): + class Meta: + model = models.Weight @admin.register(models.Weight) -class WeightAdmin(admin.ModelAdmin): +class WeightAdmin(ImportExportMixin, admin.ModelAdmin): list_display = ('child', 'weight', 'date',) list_filter = ('child',) search_fields = ('child__first_name', 'child__last_name', 'weight',) + resource_class = WeightImportExportResource diff --git a/static/import_export/action_formats.11c3e817b80a.js b/static/import_export/action_formats.11c3e817b80a.js new file mode 100644 index 00000000..9f0fe571 --- /dev/null +++ b/static/import_export/action_formats.11c3e817b80a.js @@ -0,0 +1,22 @@ +(function($) { + $(document).ready(function() { + var $actionsSelect, $formatsElement; + if ($('body').hasClass('grp-change-list')) { + // using grappelli + $actionsSelect = $('#grp-changelist-form select[name="action"]'); + $formatsElement = $('#grp-changelist-form select[name="file_format"]'); + } else { + // using default admin + $actionsSelect = $('#changelist-form select[name="action"]'); + $formatsElement = $('#changelist-form select[name="file_format"]').parent(); + } + $actionsSelect.change(function() { + if ($(this).val() === 'export_admin_action') { + $formatsElement.show(); + } else { + $formatsElement.hide(); + } + }); + $actionsSelect.change(); + }); +})(django.jQuery); diff --git a/static/import_export/action_formats.11c3e817b80a.js.gz b/static/import_export/action_formats.11c3e817b80a.js.gz new file mode 100644 index 00000000..d5a48a3f Binary files /dev/null and b/static/import_export/action_formats.11c3e817b80a.js.gz differ diff --git a/static/import_export/action_formats.js b/static/import_export/action_formats.js new file mode 100644 index 00000000..9f0fe571 --- /dev/null +++ b/static/import_export/action_formats.js @@ -0,0 +1,22 @@ +(function($) { + $(document).ready(function() { + var $actionsSelect, $formatsElement; + if ($('body').hasClass('grp-change-list')) { + // using grappelli + $actionsSelect = $('#grp-changelist-form select[name="action"]'); + $formatsElement = $('#grp-changelist-form select[name="file_format"]'); + } else { + // using default admin + $actionsSelect = $('#changelist-form select[name="action"]'); + $formatsElement = $('#changelist-form select[name="file_format"]').parent(); + } + $actionsSelect.change(function() { + if ($(this).val() === 'export_admin_action') { + $formatsElement.show(); + } else { + $formatsElement.hide(); + } + }); + $actionsSelect.change(); + }); +})(django.jQuery); diff --git a/static/import_export/action_formats.js.gz b/static/import_export/action_formats.js.gz new file mode 100644 index 00000000..d5a48a3f Binary files /dev/null and b/static/import_export/action_formats.js.gz differ diff --git a/static/import_export/import.358144dd8713.css b/static/import_export/import.358144dd8713.css new file mode 100644 index 00000000..bb20ba2a --- /dev/null +++ b/static/import_export/import.358144dd8713.css @@ -0,0 +1,81 @@ +.import-preview .errors { + position: relative; +} + +.validation-error-count { + display: inline-block; + background-color: #e40000; + border-radius: 6px; + color: white; + font-size: 0.9em; + position: relative; + font-weight: bold; + margin-top: -2px; + padding: 0.2em 0.4em; +} + +.validation-error-container { + position: absolute; + opacity: 0; + pointer-events: none; + background-color: #ffc1c1; + padding: 14px 15px 10px; + top: 25px; + margin: 0 0 20px 0; + width: 200px; + z-index: 2; +} + +table.import-preview tr.skip { + background-color: #d2d2d2; +} + +table.import-preview tr.new { + background-color: #bdd8b2; +} + +table.import-preview tr.delete { + background-color: #f9bebf; +} + +table.import-preview tr.update { + background-color: #fdfdcf; +} + +.import-preview td:hover .validation-error-count { + z-index: 3; +} +.import-preview td:hover .validation-error-container { + opacity: 1; + pointer-events: auto; +} + +.validation-error-list { + margin: 0; + padding: 0; +} + +.validation-error-list li { + list-style: none; + margin: 0; +} + +.validation-error-list > li > ul { + margin: 8px 0; + padding: 0; +} + +.validation-error-list > li > ul > li { + padding: 0; + margin: 0 0 10px; + line-height: 1.28em; +} + +.validation-error-field-label { + display: block; + border-bottom: 1px solid #e40000; + color: #e40000; + text-transform: uppercase; + font-weight: bold; + font-size: 0.85em; +} diff --git a/static/import_export/import.358144dd8713.css.gz b/static/import_export/import.358144dd8713.css.gz new file mode 100644 index 00000000..dce505a1 Binary files /dev/null and b/static/import_export/import.358144dd8713.css.gz differ diff --git a/static/import_export/import.css b/static/import_export/import.css new file mode 100644 index 00000000..bb20ba2a --- /dev/null +++ b/static/import_export/import.css @@ -0,0 +1,81 @@ +.import-preview .errors { + position: relative; +} + +.validation-error-count { + display: inline-block; + background-color: #e40000; + border-radius: 6px; + color: white; + font-size: 0.9em; + position: relative; + font-weight: bold; + margin-top: -2px; + padding: 0.2em 0.4em; +} + +.validation-error-container { + position: absolute; + opacity: 0; + pointer-events: none; + background-color: #ffc1c1; + padding: 14px 15px 10px; + top: 25px; + margin: 0 0 20px 0; + width: 200px; + z-index: 2; +} + +table.import-preview tr.skip { + background-color: #d2d2d2; +} + +table.import-preview tr.new { + background-color: #bdd8b2; +} + +table.import-preview tr.delete { + background-color: #f9bebf; +} + +table.import-preview tr.update { + background-color: #fdfdcf; +} + +.import-preview td:hover .validation-error-count { + z-index: 3; +} +.import-preview td:hover .validation-error-container { + opacity: 1; + pointer-events: auto; +} + +.validation-error-list { + margin: 0; + padding: 0; +} + +.validation-error-list li { + list-style: none; + margin: 0; +} + +.validation-error-list > li > ul { + margin: 8px 0; + padding: 0; +} + +.validation-error-list > li > ul > li { + padding: 0; + margin: 0 0 10px; + line-height: 1.28em; +} + +.validation-error-field-label { + display: block; + border-bottom: 1px solid #e40000; + color: #e40000; + text-transform: uppercase; + font-weight: bold; + font-size: 0.85em; +} diff --git a/static/import_export/import.css.gz b/static/import_export/import.css.gz new file mode 100644 index 00000000..dce505a1 Binary files /dev/null and b/static/import_export/import.css.gz differ diff --git a/static/staticfiles.json b/static/staticfiles.json index f6dfcda7..4885946d 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.edd7167cdcb6.js", "admin/js/vendor/select2/i18n/en.js": "admin/js/vendor/select2/i18n/en.aed9bad15375.js", "admin/js/vendor/select2/i18n/ko.js": "admin/js/vendor/select2/i18n/ko.82358a9b6840.js", "admin/js/vendor/select2/i18n/dsb.js": "admin/js/vendor/select2/i18n/dsb.9c2742bfc55a.js", "admin/js/vendor/select2/i18n/lv.js": "admin/js/vendor/select2/i18n/lv.30bfb7fc3b63.js", "admin/js/vendor/select2/i18n/hsb.js": "admin/js/vendor/select2/i18n/hsb.50caaee90a0d.js", "admin/js/vendor/select2/i18n/km.js": "admin/js/vendor/select2/i18n/km.8c337905305d.js", "admin/js/vendor/select2/i18n/pl.js": "admin/js/vendor/select2/i18n/pl.a10ee9248c07.js", "admin/js/vendor/select2/i18n/de.js": "admin/js/vendor/select2/i18n/de.630e81c65a7b.js", "admin/js/vendor/select2/i18n/sr.js": "admin/js/vendor/select2/i18n/sr.c9f16b9e0f93.js", "admin/js/vendor/select2/i18n/ru.js": "admin/js/vendor/select2/i18n/ru.962f048c22f2.js", "admin/js/vendor/select2/i18n/he.js": "admin/js/vendor/select2/i18n/he.4d933538516a.js", "admin/js/vendor/select2/i18n/el.js": "admin/js/vendor/select2/i18n/el.01c46bf8c8b3.js", "admin/js/vendor/select2/i18n/pt-BR.js": "admin/js/vendor/select2/i18n/pt-BR.455adefc2984.js", "admin/js/vendor/select2/i18n/uk.js": "admin/js/vendor/select2/i18n/uk.e05ad5df6258.js", "admin/js/vendor/select2/i18n/nl.js": "admin/js/vendor/select2/i18n/nl.674c0d3da68d.js", "admin/js/vendor/select2/i18n/sv.js": "admin/js/vendor/select2/i18n/sv.725800c5e8fc.js", "admin/js/vendor/select2/i18n/mk.js": "admin/js/vendor/select2/i18n/mk.92f1d29581b7.js", "admin/js/vendor/select2/i18n/bg.js": "admin/js/vendor/select2/i18n/bg.096f4410173b.js", "admin/js/vendor/select2/i18n/zh-CN.js": "admin/js/vendor/select2/i18n/zh-CN.bde34fa3f064.js", "admin/js/vendor/select2/i18n/vi.js": "admin/js/vendor/select2/i18n/vi.0a60056920fc.js", "admin/js/vendor/select2/i18n/tr.js": "admin/js/vendor/select2/i18n/tr.dc697d893beb.js", "admin/js/vendor/select2/i18n/tk.js": "admin/js/vendor/select2/i18n/tk.5042dc8eca8e.js", "admin/js/vendor/select2/i18n/fr.js": "admin/js/vendor/select2/i18n/fr.6129248732b9.js", "admin/js/vendor/select2/i18n/gl.js": "admin/js/vendor/select2/i18n/gl.e2766036e78a.js", "admin/js/vendor/select2/i18n/ps.js": "admin/js/vendor/select2/i18n/ps.de1a40c46c09.js", "admin/js/vendor/select2/i18n/hr.js": "admin/js/vendor/select2/i18n/hr.68583e607f1e.js", "admin/js/vendor/select2/i18n/eu.js": "admin/js/vendor/select2/i18n/eu.6c45eaf416fe.js", "admin/js/vendor/select2/i18n/ar.js": "admin/js/vendor/select2/i18n/ar.7dcfd5775174.js", "admin/js/vendor/select2/i18n/af.js": "admin/js/vendor/select2/i18n/af.c4a5cbd6a23f.js", "admin/js/vendor/select2/i18n/zh-TW.js": "admin/js/vendor/select2/i18n/zh-TW.e727260f7094.js", "admin/js/vendor/select2/i18n/ka.js": "admin/js/vendor/select2/i18n/ka.8ea0684cc301.js", "admin/js/vendor/select2/i18n/th.js": "admin/js/vendor/select2/i18n/th.b013804dae9c.js", "admin/js/vendor/select2/i18n/sr-Cyrl.js": "admin/js/vendor/select2/i18n/sr-Cyrl.116365a2de65.js", "admin/js/vendor/select2/i18n/lt.js": "admin/js/vendor/select2/i18n/lt.2c390a6bf650.js", "admin/js/vendor/select2/i18n/hy.js": "admin/js/vendor/select2/i18n/hy.4c655f53f4e1.js", "admin/js/vendor/select2/i18n/sq.js": "admin/js/vendor/select2/i18n/sq.abf2d34b255a.js", "admin/js/vendor/select2/i18n/et.js": "admin/js/vendor/select2/i18n/et.32b0b17ba1a9.js", "admin/js/vendor/select2/i18n/sl.js": "admin/js/vendor/select2/i18n/sl.a5e262c643f2.js", "admin/js/vendor/select2/i18n/bs.js": "admin/js/vendor/select2/i18n/bs.debce43cfca2.js", "admin/js/vendor/select2/i18n/fi.js": "admin/js/vendor/select2/i18n/fi.2858f3167855.js", "admin/js/vendor/select2/i18n/hi.js": "admin/js/vendor/select2/i18n/hi.f81e979ec25f.js", "admin/js/vendor/select2/i18n/ja.js": "admin/js/vendor/select2/i18n/ja.442146837f55.js", "admin/js/vendor/select2/i18n/ne.js": "admin/js/vendor/select2/i18n/ne.f61bf00bc3fe.js", "admin/js/vendor/select2/i18n/sk.js": "admin/js/vendor/select2/i18n/sk.34019208b835.js", "admin/js/vendor/select2/i18n/da.js": "admin/js/vendor/select2/i18n/da.6bbc262044b3.js", "admin/js/vendor/select2/i18n/id.js": "admin/js/vendor/select2/i18n/id.322604a430a5.js", "admin/js/vendor/select2/i18n/es.js": "admin/js/vendor/select2/i18n/es.8b21ebdb01ee.js", "admin/js/vendor/select2/i18n/it.js": "admin/js/vendor/select2/i18n/it.110a0fa84968.js", "admin/js/vendor/select2/i18n/hu.js": "admin/js/vendor/select2/i18n/hu.9edad4c24fd0.js", "admin/js/vendor/select2/i18n/bn.js": "admin/js/vendor/select2/i18n/bn.b33721dc9b8a.js", "admin/js/vendor/select2/i18n/ms.js": "admin/js/vendor/select2/i18n/ms.ade6aba46542.js", "admin/js/vendor/select2/i18n/fa.js": "admin/js/vendor/select2/i18n/fa.1738b003dd26.js", "admin/js/vendor/select2/i18n/nb.js": "admin/js/vendor/select2/i18n/nb.e535138ca26b.js", "admin/js/vendor/select2/i18n/az.js": "admin/js/vendor/select2/i18n/az.1804c238d269.js", "admin/js/vendor/select2/i18n/ca.js": "admin/js/vendor/select2/i18n/ca.60f20182ff18.js", "admin/js/vendor/select2/i18n/ro.js": "admin/js/vendor/select2/i18n/ro.ea7e3b822b06.js", "admin/js/vendor/select2/i18n/pt.js": "admin/js/vendor/select2/i18n/pt.5b4ec8cb5b23.js", "admin/js/vendor/select2/i18n/is.js": "admin/js/vendor/select2/i18n/is.a8a13c9122d7.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.f94142512c91.md", "admin/js/vendor/select2/select2.full.js": "admin/js/vendor/select2/select2.full.d379d5235584.js", "admin/js/vendor/select2/select2.full.min.js": "admin/js/vendor/select2/select2.full.min.68e8d8f673b7.js", "admin/js/vendor/jquery/jquery.js": "admin/js/vendor/jquery/jquery.11c05eb286ed.js", "admin/js/vendor/jquery/LICENSE.txt": "admin/js/vendor/jquery/LICENSE.75308107741f.txt", "admin/js/vendor/jquery/jquery.min.js": "admin/js/vendor/jquery/jquery.min.220afd743d9e.js", "admin/css/vendor/select2/select2.min.css": "admin/css/vendor/select2/select2.min.af22a7e2bfec.css", "admin/css/vendor/select2/select2.css": "admin/css/vendor/select2/select2.fd9fe49d3d91.css", "admin/css/vendor/select2/LICENSE-SELECT2.md": "admin/css/vendor/select2/LICENSE-SELECT2.f94142512c91.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.3208b6cc4466.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.a9c6d180860b.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.d2994702ae86.js", "babybuddy/js/graph.js": "babybuddy/js/graph.ebb84296212e.js", "babybuddy/js/vendor.js": "babybuddy/js/vendor.105d8dea2623.js", "babybuddy/css/app.css": "babybuddy/css/app.615d5409dcbf.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/jquery-3.4.1.min.js": "rest_framework/js/jquery-3.4.1.min.220afd743d9e.js", "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/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.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.6d6c2416646e.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/prepopulate.js": "admin/js/prepopulate.2f90da7170ec.js", "admin/js/cancel.js": "admin/js/cancel.a2c3149a1c5e.js", "admin/js/SelectFilter2.js": "admin/js/SelectFilter2.c26733924aea.js", "admin/js/core.js": "admin/js/core.ea39b3bd34c3.js", "admin/css/changelists.css": "admin/css/changelists.cfe316f81936.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.755ce0b07393.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.8874c301e7bc.css", "admin/css/forms.css": "admin/css/forms.9f1ffc442e9a.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.edd7167cdcb6.js", "admin/js/vendor/select2/i18n/en.js": "admin/js/vendor/select2/i18n/en.aed9bad15375.js", "admin/js/vendor/select2/i18n/ko.js": "admin/js/vendor/select2/i18n/ko.82358a9b6840.js", "admin/js/vendor/select2/i18n/dsb.js": "admin/js/vendor/select2/i18n/dsb.9c2742bfc55a.js", "admin/js/vendor/select2/i18n/lv.js": "admin/js/vendor/select2/i18n/lv.30bfb7fc3b63.js", "admin/js/vendor/select2/i18n/hsb.js": "admin/js/vendor/select2/i18n/hsb.50caaee90a0d.js", "admin/js/vendor/select2/i18n/km.js": "admin/js/vendor/select2/i18n/km.8c337905305d.js", "admin/js/vendor/select2/i18n/pl.js": "admin/js/vendor/select2/i18n/pl.a10ee9248c07.js", "admin/js/vendor/select2/i18n/de.js": "admin/js/vendor/select2/i18n/de.630e81c65a7b.js", "admin/js/vendor/select2/i18n/sr.js": "admin/js/vendor/select2/i18n/sr.c9f16b9e0f93.js", "admin/js/vendor/select2/i18n/ru.js": "admin/js/vendor/select2/i18n/ru.962f048c22f2.js", "admin/js/vendor/select2/i18n/he.js": "admin/js/vendor/select2/i18n/he.4d933538516a.js", "admin/js/vendor/select2/i18n/el.js": "admin/js/vendor/select2/i18n/el.01c46bf8c8b3.js", "admin/js/vendor/select2/i18n/pt-BR.js": "admin/js/vendor/select2/i18n/pt-BR.455adefc2984.js", "admin/js/vendor/select2/i18n/uk.js": "admin/js/vendor/select2/i18n/uk.e05ad5df6258.js", "admin/js/vendor/select2/i18n/nl.js": "admin/js/vendor/select2/i18n/nl.674c0d3da68d.js", "admin/js/vendor/select2/i18n/sv.js": "admin/js/vendor/select2/i18n/sv.725800c5e8fc.js", "admin/js/vendor/select2/i18n/mk.js": "admin/js/vendor/select2/i18n/mk.92f1d29581b7.js", "admin/js/vendor/select2/i18n/bg.js": "admin/js/vendor/select2/i18n/bg.096f4410173b.js", "admin/js/vendor/select2/i18n/zh-CN.js": "admin/js/vendor/select2/i18n/zh-CN.bde34fa3f064.js", "admin/js/vendor/select2/i18n/vi.js": "admin/js/vendor/select2/i18n/vi.0a60056920fc.js", "admin/js/vendor/select2/i18n/tr.js": "admin/js/vendor/select2/i18n/tr.dc697d893beb.js", "admin/js/vendor/select2/i18n/tk.js": "admin/js/vendor/select2/i18n/tk.5042dc8eca8e.js", "admin/js/vendor/select2/i18n/fr.js": "admin/js/vendor/select2/i18n/fr.6129248732b9.js", "admin/js/vendor/select2/i18n/gl.js": "admin/js/vendor/select2/i18n/gl.e2766036e78a.js", "admin/js/vendor/select2/i18n/ps.js": "admin/js/vendor/select2/i18n/ps.de1a40c46c09.js", "admin/js/vendor/select2/i18n/hr.js": "admin/js/vendor/select2/i18n/hr.68583e607f1e.js", "admin/js/vendor/select2/i18n/eu.js": "admin/js/vendor/select2/i18n/eu.6c45eaf416fe.js", "admin/js/vendor/select2/i18n/ar.js": "admin/js/vendor/select2/i18n/ar.7dcfd5775174.js", "admin/js/vendor/select2/i18n/af.js": "admin/js/vendor/select2/i18n/af.c4a5cbd6a23f.js", "admin/js/vendor/select2/i18n/zh-TW.js": "admin/js/vendor/select2/i18n/zh-TW.e727260f7094.js", "admin/js/vendor/select2/i18n/ka.js": "admin/js/vendor/select2/i18n/ka.8ea0684cc301.js", "admin/js/vendor/select2/i18n/th.js": "admin/js/vendor/select2/i18n/th.b013804dae9c.js", "admin/js/vendor/select2/i18n/sr-Cyrl.js": "admin/js/vendor/select2/i18n/sr-Cyrl.116365a2de65.js", "admin/js/vendor/select2/i18n/lt.js": "admin/js/vendor/select2/i18n/lt.2c390a6bf650.js", "admin/js/vendor/select2/i18n/hy.js": "admin/js/vendor/select2/i18n/hy.4c655f53f4e1.js", "admin/js/vendor/select2/i18n/sq.js": "admin/js/vendor/select2/i18n/sq.abf2d34b255a.js", "admin/js/vendor/select2/i18n/et.js": "admin/js/vendor/select2/i18n/et.32b0b17ba1a9.js", "admin/js/vendor/select2/i18n/sl.js": "admin/js/vendor/select2/i18n/sl.a5e262c643f2.js", "admin/js/vendor/select2/i18n/bs.js": "admin/js/vendor/select2/i18n/bs.debce43cfca2.js", "admin/js/vendor/select2/i18n/fi.js": "admin/js/vendor/select2/i18n/fi.2858f3167855.js", "admin/js/vendor/select2/i18n/hi.js": "admin/js/vendor/select2/i18n/hi.f81e979ec25f.js", "admin/js/vendor/select2/i18n/ja.js": "admin/js/vendor/select2/i18n/ja.442146837f55.js", "admin/js/vendor/select2/i18n/ne.js": "admin/js/vendor/select2/i18n/ne.f61bf00bc3fe.js", "admin/js/vendor/select2/i18n/sk.js": "admin/js/vendor/select2/i18n/sk.34019208b835.js", "admin/js/vendor/select2/i18n/da.js": "admin/js/vendor/select2/i18n/da.6bbc262044b3.js", "admin/js/vendor/select2/i18n/id.js": "admin/js/vendor/select2/i18n/id.322604a430a5.js", "admin/js/vendor/select2/i18n/es.js": "admin/js/vendor/select2/i18n/es.8b21ebdb01ee.js", "admin/js/vendor/select2/i18n/it.js": "admin/js/vendor/select2/i18n/it.110a0fa84968.js", "admin/js/vendor/select2/i18n/hu.js": "admin/js/vendor/select2/i18n/hu.9edad4c24fd0.js", "admin/js/vendor/select2/i18n/bn.js": "admin/js/vendor/select2/i18n/bn.b33721dc9b8a.js", "admin/js/vendor/select2/i18n/ms.js": "admin/js/vendor/select2/i18n/ms.ade6aba46542.js", "admin/js/vendor/select2/i18n/fa.js": "admin/js/vendor/select2/i18n/fa.1738b003dd26.js", "admin/js/vendor/select2/i18n/nb.js": "admin/js/vendor/select2/i18n/nb.e535138ca26b.js", "admin/js/vendor/select2/i18n/az.js": "admin/js/vendor/select2/i18n/az.1804c238d269.js", "admin/js/vendor/select2/i18n/ca.js": "admin/js/vendor/select2/i18n/ca.60f20182ff18.js", "admin/js/vendor/select2/i18n/ro.js": "admin/js/vendor/select2/i18n/ro.ea7e3b822b06.js", "admin/js/vendor/select2/i18n/pt.js": "admin/js/vendor/select2/i18n/pt.5b4ec8cb5b23.js", "admin/js/vendor/select2/i18n/is.js": "admin/js/vendor/select2/i18n/is.a8a13c9122d7.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.f94142512c91.md", "admin/js/vendor/select2/select2.full.js": "admin/js/vendor/select2/select2.full.d379d5235584.js", "admin/js/vendor/select2/select2.full.min.js": "admin/js/vendor/select2/select2.full.min.68e8d8f673b7.js", "admin/js/vendor/jquery/jquery.js": "admin/js/vendor/jquery/jquery.11c05eb286ed.js", "admin/js/vendor/jquery/LICENSE.txt": "admin/js/vendor/jquery/LICENSE.75308107741f.txt", "admin/js/vendor/jquery/jquery.min.js": "admin/js/vendor/jquery/jquery.min.220afd743d9e.js", "admin/css/vendor/select2/select2.min.css": "admin/css/vendor/select2/select2.min.af22a7e2bfec.css", "admin/css/vendor/select2/select2.css": "admin/css/vendor/select2/select2.fd9fe49d3d91.css", "admin/css/vendor/select2/LICENSE-SELECT2.md": "admin/css/vendor/select2/LICENSE-SELECT2.f94142512c91.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.3208b6cc4466.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.a9c6d180860b.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.d2994702ae86.js", "babybuddy/js/graph.js": "babybuddy/js/graph.ebb84296212e.js", "babybuddy/js/vendor.js": "babybuddy/js/vendor.105d8dea2623.js", "babybuddy/css/app.css": "babybuddy/css/app.615d5409dcbf.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/jquery-3.4.1.min.js": "rest_framework/js/jquery-3.4.1.min.220afd743d9e.js", "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/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.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.6d6c2416646e.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/prepopulate.js": "admin/js/prepopulate.2f90da7170ec.js", "admin/js/cancel.js": "admin/js/cancel.a2c3149a1c5e.js", "admin/js/SelectFilter2.js": "admin/js/SelectFilter2.c26733924aea.js", "admin/js/core.js": "admin/js/core.ea39b3bd34c3.js", "admin/css/changelists.css": "admin/css/changelists.cfe316f81936.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.755ce0b07393.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.8874c301e7bc.css", "admin/css/forms.css": "admin/css/forms.9f1ffc442e9a.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", "import_export/action_formats.js": "import_export/action_formats.11c3e817b80a.js", "import_export/import.css": "import_export/import.358144dd8713.css"}, "version": "1.0"} \ No newline at end of file