codex 1.6.18__py3-none-any.whl → 1.7.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of codex might be problematic. Click here for more details.
- codex/choices.py +419 -0
- codex/choices_to_json.py +122 -0
- codex/db.py +134 -0
- codex/exceptions.py +2 -3
- codex/librarian/bookmark/__init__.py +1 -0
- codex/librarian/bookmark/bookmarkd.py +38 -0
- codex/librarian/bookmark/tasks.py +19 -0
- codex/librarian/bookmark/update.py +154 -0
- codex/librarian/covers/coverd.py +3 -4
- codex/librarian/covers/create.py +8 -7
- codex/librarian/covers/path.py +1 -2
- codex/librarian/covers/purge.py +3 -3
- codex/librarian/importer/const.py +7 -1
- codex/librarian/importer/create_fks.py +5 -2
- codex/librarian/importer/importerd.py +17 -12
- codex/librarian/importer/moved.py +44 -13
- codex/librarian/importer/tasks.py +2 -0
- codex/librarian/janitor/cleanup.py +21 -8
- codex/librarian/janitor/integrity.py +371 -0
- codex/librarian/janitor/janitor.py +50 -15
- codex/librarian/janitor/latest_version.py +2 -1
- codex/librarian/janitor/status.py +5 -0
- codex/librarian/janitor/tasks.py +37 -0
- codex/librarian/janitor/update.py +1 -1
- codex/librarian/librariand.py +37 -24
- codex/librarian/search/optimize.py +43 -0
- codex/librarian/search/remove.py +18 -46
- codex/librarian/search/searchd.py +14 -17
- codex/librarian/search/status.py +2 -1
- codex/librarian/search/tasks.py +4 -9
- codex/librarian/search/update.py +223 -301
- codex/librarian/watchdog/emitter.py +21 -19
- codex/librarian/watchdog/event_batcherd.py +0 -1
- codex/librarian/watchdog/events.py +4 -1
- codex/librarian/watchdog/observers.py +2 -1
- codex/migrations/0029_comicfts.py +58 -0
- codex/migrations/0030_nocase_collation_day_month_indexes_status_types.py +202 -0
- codex/models/admin.py +15 -11
- codex/models/base.py +9 -0
- codex/models/bookmark.py +3 -3
- codex/models/comic.py +68 -16
- codex/models/functions.py +60 -2
- codex/models/groups.py +6 -1
- codex/models/library.py +1 -3
- codex/models/paths.py +9 -3
- codex/models/query.py +6 -0
- codex/run.py +11 -9
- codex/serializers/admin/tasks.py +2 -2
- codex/serializers/browser/mixins.py +18 -14
- codex/serializers/browser/page.py +2 -0
- codex/serializers/browser/settings.py +4 -4
- codex/serializers/fields.py +9 -5
- codex/settings/settings.py +16 -17
- codex/signals/django_signals.py +4 -10
- codex/startup.py +7 -39
- codex/static_root/assets/VCheckbox-D_CWEmqR.84f2b49311e8.js +1 -0
- codex/static_root/assets/VCheckbox-D_CWEmqR.84f2b49311e8.js.br +0 -0
- codex/static_root/assets/VCheckbox-D_CWEmqR.84f2b49311e8.js.gz +0 -0
- codex/static_root/assets/VCheckbox-D_CWEmqR.js +1 -0
- codex/static_root/assets/VCheckbox-D_CWEmqR.js.br +0 -0
- codex/static_root/assets/VCheckbox-D_CWEmqR.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-B1BhcFvi.0eaf3c516474.js +1 -0
- codex/static_root/assets/VCheckboxBtn-B1BhcFvi.0eaf3c516474.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-B1BhcFvi.0eaf3c516474.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-B1BhcFvi.js +1 -0
- codex/static_root/assets/VCheckboxBtn-B1BhcFvi.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-B1BhcFvi.js.gz +0 -0
- codex/static_root/assets/VCombobox-CZAW6_3Q.0e2401e819a5.js +1 -0
- codex/static_root/assets/VCombobox-CZAW6_3Q.0e2401e819a5.js.br +0 -0
- codex/static_root/assets/VCombobox-CZAW6_3Q.0e2401e819a5.js.gz +0 -0
- codex/static_root/assets/VCombobox-CZAW6_3Q.js +1 -0
- codex/static_root/assets/VCombobox-CZAW6_3Q.js.br +0 -0
- codex/static_root/assets/VCombobox-CZAW6_3Q.js.gz +0 -0
- codex/static_root/assets/VDialog-CSHgHIlG.a0bcd336cb7b.js +1 -0
- codex/static_root/assets/VDialog-CSHgHIlG.a0bcd336cb7b.js.br +0 -0
- codex/static_root/assets/VDialog-CSHgHIlG.a0bcd336cb7b.js.gz +0 -0
- codex/static_root/assets/VDialog-CSHgHIlG.js +1 -0
- codex/static_root/assets/VDialog-CSHgHIlG.js.br +0 -0
- codex/static_root/assets/VDialog-CSHgHIlG.js.gz +0 -0
- codex/static_root/assets/VDialog-CSvrKKb2.css +1 -0
- codex/static_root/assets/VDialog-CSvrKKb2.css.br +0 -0
- codex/static_root/assets/VDialog-CSvrKKb2.css.gz +0 -0
- codex/static_root/assets/VDialog-CSvrKKb2.fd4d50904b17.css +1 -0
- codex/static_root/assets/VDialog-CSvrKKb2.fd4d50904b17.css.br +0 -0
- codex/static_root/assets/VDialog-CSvrKKb2.fd4d50904b17.css.gz +0 -0
- codex/static_root/assets/VExpansionPanels-CG6MpdMC.e96ae8afad97.js +1 -0
- codex/static_root/assets/VExpansionPanels-CG6MpdMC.e96ae8afad97.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-CG6MpdMC.e96ae8afad97.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-CG6MpdMC.js +1 -0
- codex/static_root/assets/VExpansionPanels-CG6MpdMC.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-CG6MpdMC.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-CAgQxkiU.f26ecb0c3e34.js +1 -0
- codex/static_root/assets/VRadioGroup-CAgQxkiU.f26ecb0c3e34.js.br +0 -0
- codex/static_root/assets/VRadioGroup-CAgQxkiU.f26ecb0c3e34.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-CAgQxkiU.js +1 -0
- codex/static_root/assets/VRadioGroup-CAgQxkiU.js.br +0 -0
- codex/static_root/assets/VRadioGroup-CAgQxkiU.js.gz +0 -0
- codex/static_root/assets/VSelect-C1gez8rl.9b11d2f00faf.js +1 -0
- codex/static_root/assets/VSelect-C1gez8rl.9b11d2f00faf.js.br +0 -0
- codex/static_root/assets/VSelect-C1gez8rl.9b11d2f00faf.js.gz +0 -0
- codex/static_root/assets/VSelect-C1gez8rl.js +1 -0
- codex/static_root/assets/VSelect-C1gez8rl.js.br +0 -0
- codex/static_root/assets/VSelect-C1gez8rl.js.gz +0 -0
- codex/static_root/assets/VSelect-DLu8bpcs.98bdcf35411c.css +1 -0
- codex/static_root/assets/VSelect-DLu8bpcs.98bdcf35411c.css.br +0 -0
- codex/static_root/assets/VSelect-DLu8bpcs.98bdcf35411c.css.gz +0 -0
- codex/static_root/assets/VSelect-DLu8bpcs.css +1 -0
- codex/static_root/assets/VSelect-DLu8bpcs.css.br +0 -0
- codex/static_root/assets/VSelect-DLu8bpcs.css.gz +0 -0
- codex/static_root/assets/VSelectionControl-DBqDlKjK.160beaa1b56c.js +1 -0
- codex/static_root/assets/VSelectionControl-DBqDlKjK.160beaa1b56c.js.br +0 -0
- codex/static_root/assets/VSelectionControl-DBqDlKjK.160beaa1b56c.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-DBqDlKjK.js +1 -0
- codex/static_root/assets/VSelectionControl-DBqDlKjK.js.br +0 -0
- codex/static_root/assets/VSelectionControl-DBqDlKjK.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-BtXPhMOT.830f136ffd41.css +1 -0
- codex/static_root/assets/VSlideGroup-BtXPhMOT.830f136ffd41.css.br +0 -0
- codex/static_root/assets/VSlideGroup-BtXPhMOT.830f136ffd41.css.gz +0 -0
- codex/static_root/assets/VSlideGroup-BtXPhMOT.css +1 -0
- codex/static_root/assets/VSlideGroup-BtXPhMOT.css.br +0 -0
- codex/static_root/assets/VSlideGroup-BtXPhMOT.css.gz +0 -0
- codex/static_root/assets/VSlideGroup-SqR_NAL1.40ba1d838a6e.js +1 -0
- codex/static_root/assets/VSlideGroup-SqR_NAL1.40ba1d838a6e.js.br +0 -0
- codex/static_root/assets/VSlideGroup-SqR_NAL1.40ba1d838a6e.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-SqR_NAL1.js +1 -0
- codex/static_root/assets/VSlideGroup-SqR_NAL1.js.br +0 -0
- codex/static_root/assets/VSlideGroup-SqR_NAL1.js.gz +0 -0
- codex/static_root/assets/VTable-CYC-wMpk.8f15d66044da.js +1 -0
- codex/static_root/assets/VTable-CYC-wMpk.8f15d66044da.js.br +0 -0
- codex/static_root/assets/VTable-CYC-wMpk.8f15d66044da.js.gz +0 -0
- codex/static_root/assets/VTable-CYC-wMpk.js +1 -0
- codex/static_root/assets/VTable-CYC-wMpk.js.br +0 -0
- codex/static_root/assets/VTable-CYC-wMpk.js.gz +0 -0
- codex/static_root/assets/VTextField-BnCEPZIq.b0c32b2c0b14.css +1 -0
- codex/static_root/assets/VTextField-BnCEPZIq.b0c32b2c0b14.css.br +0 -0
- codex/static_root/assets/VTextField-BnCEPZIq.b0c32b2c0b14.css.gz +0 -0
- codex/static_root/assets/VTextField-BnCEPZIq.css +1 -0
- codex/static_root/assets/VTextField-BnCEPZIq.css.br +0 -0
- codex/static_root/assets/VTextField-BnCEPZIq.css.gz +0 -0
- codex/static_root/assets/VTextField-DMRKRbbT.911ac84d8c9d.js +1 -0
- codex/static_root/assets/VTextField-DMRKRbbT.911ac84d8c9d.js.br +0 -0
- codex/static_root/assets/VTextField-DMRKRbbT.911ac84d8c9d.js.gz +0 -0
- codex/static_root/assets/VTextField-DMRKRbbT.js +1 -0
- codex/static_root/assets/VTextField-DMRKRbbT.js.br +0 -0
- codex/static_root/assets/VTextField-DMRKRbbT.js.gz +0 -0
- codex/static_root/assets/VWindowItem-D0P2xNJl.6a10e3f3a153.js +1 -0
- codex/static_root/assets/VWindowItem-D0P2xNJl.6a10e3f3a153.js.br +0 -0
- codex/static_root/assets/VWindowItem-D0P2xNJl.6a10e3f3a153.js.gz +0 -0
- codex/static_root/assets/VWindowItem-D0P2xNJl.js +1 -0
- codex/static_root/assets/VWindowItem-D0P2xNJl.js.br +0 -0
- codex/static_root/assets/VWindowItem-D0P2xNJl.js.gz +0 -0
- codex/static_root/assets/admin-CD90VMen.4c2b6f2a5111.js +1 -0
- codex/static_root/assets/admin-CD90VMen.4c2b6f2a5111.js.br +0 -0
- codex/static_root/assets/admin-CD90VMen.4c2b6f2a5111.js.gz +0 -0
- codex/static_root/assets/admin-CD90VMen.js +1 -0
- codex/static_root/assets/admin-CD90VMen.js.br +0 -0
- codex/static_root/assets/admin-CD90VMen.js.gz +0 -0
- codex/static_root/assets/{admin-CWEjaFr5.7d4523387384.css → admin-DJ7pIXDQ.css} +1 -1
- codex/static_root/assets/admin-DJ7pIXDQ.css.br +0 -0
- codex/static_root/assets/admin-DJ7pIXDQ.css.gz +0 -0
- codex/static_root/assets/{admin-CWEjaFr5.css → admin-DJ7pIXDQ.e2a77af73ef2.css} +1 -1
- codex/static_root/assets/admin-DJ7pIXDQ.e2a77af73ef2.css.br +0 -0
- codex/static_root/assets/admin-DJ7pIXDQ.e2a77af73ef2.css.gz +0 -0
- codex/static_root/assets/admin-menu-B9bzD6hV.c13b7df2ff57.css +1 -0
- codex/static_root/assets/admin-menu-B9bzD6hV.c13b7df2ff57.css.br +0 -0
- codex/static_root/assets/admin-menu-B9bzD6hV.c13b7df2ff57.css.gz +0 -0
- codex/static_root/assets/admin-menu-B9bzD6hV.css +1 -0
- codex/static_root/assets/admin-menu-B9bzD6hV.css.br +0 -0
- codex/static_root/assets/admin-menu-B9bzD6hV.css.gz +0 -0
- codex/static_root/assets/admin-menu-BpEPGKr_.c9f9178c5a82.js +1 -0
- codex/static_root/assets/admin-menu-BpEPGKr_.c9f9178c5a82.js.br +0 -0
- codex/static_root/assets/admin-menu-BpEPGKr_.c9f9178c5a82.js.gz +0 -0
- codex/static_root/assets/admin-menu-BpEPGKr_.js +1 -0
- codex/static_root/assets/admin-menu-BpEPGKr_.js.br +0 -0
- codex/static_root/assets/admin-menu-BpEPGKr_.js.gz +0 -0
- codex/static_root/assets/admin-settings-button-progress-DDF4rY07.4f1158b650ab.js +1 -0
- codex/static_root/assets/admin-settings-button-progress-DDF4rY07.4f1158b650ab.js.br +0 -0
- codex/static_root/assets/admin-settings-button-progress-DDF4rY07.4f1158b650ab.js.gz +0 -0
- codex/static_root/assets/admin-settings-button-progress-DDF4rY07.js +1 -0
- codex/static_root/assets/admin-settings-button-progress-DDF4rY07.js.br +0 -0
- codex/static_root/assets/admin-settings-button-progress-DDF4rY07.js.gz +0 -0
- codex/static_root/assets/admin-settings-button-progress-DUUQfVsZ.2548c49a853e.css +1 -0
- codex/static_root/assets/admin-settings-button-progress-DUUQfVsZ.css +1 -0
- codex/static_root/assets/browser-C0KS3g2E.0bf1c9c6319c.js +1 -0
- codex/static_root/assets/browser-C0KS3g2E.0bf1c9c6319c.js.br +0 -0
- codex/static_root/assets/browser-C0KS3g2E.0bf1c9c6319c.js.gz +0 -0
- codex/static_root/assets/browser-C0KS3g2E.js +1 -0
- codex/static_root/assets/browser-C0KS3g2E.js.br +0 -0
- codex/static_root/assets/browser-C0KS3g2E.js.gz +0 -0
- codex/static_root/assets/browser-JFL2hLjt.21cb2f7335f7.css +1 -0
- codex/static_root/assets/browser-JFL2hLjt.21cb2f7335f7.css.br +0 -0
- codex/static_root/assets/browser-JFL2hLjt.21cb2f7335f7.css.gz +0 -0
- codex/static_root/assets/browser-JFL2hLjt.css +1 -0
- codex/static_root/assets/browser-JFL2hLjt.css.br +0 -0
- codex/static_root/assets/browser-JFL2hLjt.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-DXJalgW4.a9f34729599d.js +1 -0
- codex/static_root/assets/change-password-dialog-DXJalgW4.a9f34729599d.js.br +0 -0
- codex/static_root/assets/change-password-dialog-DXJalgW4.a9f34729599d.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-DXJalgW4.js +1 -0
- codex/static_root/assets/change-password-dialog-DXJalgW4.js.br +0 -0
- codex/static_root/assets/change-password-dialog-DXJalgW4.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-DrIXdKUC.217574b45b02.css +1 -0
- codex/static_root/assets/change-password-dialog-DrIXdKUC.217574b45b02.css.br +0 -0
- codex/static_root/assets/change-password-dialog-DrIXdKUC.217574b45b02.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-DrIXdKUC.css +1 -0
- codex/static_root/assets/change-password-dialog-DrIXdKUC.css.br +0 -0
- codex/static_root/assets/change-password-dialog-DrIXdKUC.css.gz +0 -0
- codex/static_root/assets/confirm-dialog-B7w6z2rf.472011c06253.css +1 -0
- codex/static_root/assets/confirm-dialog-B7w6z2rf.css +1 -0
- codex/static_root/assets/confirm-dialog-CqDEpU9k.e1811488121d.js +1 -0
- codex/static_root/assets/confirm-dialog-CqDEpU9k.e1811488121d.js.br +0 -0
- codex/static_root/assets/confirm-dialog-CqDEpU9k.e1811488121d.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-CqDEpU9k.js +1 -0
- codex/static_root/assets/confirm-dialog-CqDEpU9k.js.br +0 -0
- codex/static_root/assets/confirm-dialog-CqDEpU9k.js.gz +0 -0
- codex/static_root/assets/datetime-column-UxNaJr8b.c06a11531af3.js +1 -0
- codex/static_root/assets/datetime-column-UxNaJr8b.c06a11531af3.js.br +0 -0
- codex/static_root/assets/datetime-column-UxNaJr8b.c06a11531af3.js.gz +0 -0
- codex/static_root/assets/datetime-column-UxNaJr8b.js +1 -0
- codex/static_root/assets/datetime-column-UxNaJr8b.js.br +0 -0
- codex/static_root/assets/datetime-column-UxNaJr8b.js.gz +0 -0
- codex/static_root/assets/filter-DskcqZHA.e707b5a05b4b.js +1 -0
- codex/static_root/assets/filter-DskcqZHA.e707b5a05b4b.js.br +0 -0
- codex/static_root/assets/filter-DskcqZHA.e707b5a05b4b.js.gz +0 -0
- codex/static_root/assets/filter-DskcqZHA.js +1 -0
- codex/static_root/assets/filter-DskcqZHA.js.br +0 -0
- codex/static_root/assets/filter-DskcqZHA.js.gz +0 -0
- codex/static_root/assets/flag-tab-CqWovuBu.4dfc6b251e85.css +1 -0
- codex/static_root/assets/flag-tab-CqWovuBu.4dfc6b251e85.css.br +0 -0
- codex/static_root/assets/flag-tab-CqWovuBu.4dfc6b251e85.css.gz +0 -0
- codex/static_root/assets/flag-tab-CqWovuBu.css +1 -0
- codex/static_root/assets/flag-tab-CqWovuBu.css.br +0 -0
- codex/static_root/assets/flag-tab-CqWovuBu.css.gz +0 -0
- codex/static_root/assets/flag-tab-xBeWEQ0w.582e77d9e885.js +1 -0
- codex/static_root/assets/flag-tab-xBeWEQ0w.582e77d9e885.js.br +0 -0
- codex/static_root/assets/flag-tab-xBeWEQ0w.582e77d9e885.js.gz +0 -0
- codex/static_root/assets/flag-tab-xBeWEQ0w.js +1 -0
- codex/static_root/assets/flag-tab-xBeWEQ0w.js.br +0 -0
- codex/static_root/assets/flag-tab-xBeWEQ0w.js.gz +0 -0
- codex/static_root/assets/group-tab-Czt2x61x.56e2886b1bac.js +1 -0
- codex/static_root/assets/group-tab-Czt2x61x.56e2886b1bac.js.br +0 -0
- codex/static_root/assets/group-tab-Czt2x61x.56e2886b1bac.js.gz +0 -0
- codex/static_root/assets/group-tab-Czt2x61x.js +1 -0
- codex/static_root/assets/group-tab-Czt2x61x.js.br +0 -0
- codex/static_root/assets/group-tab-Czt2x61x.js.gz +0 -0
- codex/static_root/assets/group-tab-DkIN1Heu.948e907b1e6b.css +1 -0
- codex/static_root/assets/group-tab-DkIN1Heu.948e907b1e6b.css.br +0 -0
- codex/static_root/assets/group-tab-DkIN1Heu.948e907b1e6b.css.gz +0 -0
- codex/static_root/assets/group-tab-DkIN1Heu.css +1 -0
- codex/static_root/assets/group-tab-DkIN1Heu.css.br +0 -0
- codex/static_root/assets/group-tab-DkIN1Heu.css.gz +0 -0
- codex/static_root/assets/http-error-NHcwE5e_.d49089e40589.js +1 -0
- codex/static_root/assets/http-error-NHcwE5e_.d49089e40589.js.br +0 -0
- codex/static_root/assets/http-error-NHcwE5e_.d49089e40589.js.gz +0 -0
- codex/static_root/assets/http-error-NHcwE5e_.js +1 -0
- codex/static_root/assets/http-error-NHcwE5e_.js.br +0 -0
- codex/static_root/assets/http-error-NHcwE5e_.js.gz +0 -0
- codex/static_root/assets/index-CL_6g4tJ.523d7b3d350f.css +1 -0
- codex/static_root/assets/index-CL_6g4tJ.523d7b3d350f.css.br +0 -0
- codex/static_root/assets/index-CL_6g4tJ.523d7b3d350f.css.gz +0 -0
- codex/static_root/assets/index-CL_6g4tJ.css +1 -0
- codex/static_root/assets/index-CL_6g4tJ.css.br +0 -0
- codex/static_root/assets/index-CL_6g4tJ.css.gz +0 -0
- codex/static_root/assets/index-DYNNO5kn.24a2d270253a.js +1 -0
- codex/static_root/assets/index-DYNNO5kn.24a2d270253a.js.br +0 -0
- codex/static_root/assets/index-DYNNO5kn.24a2d270253a.js.gz +0 -0
- codex/static_root/assets/index-DYNNO5kn.js +1 -0
- codex/static_root/assets/index-DYNNO5kn.js.br +0 -0
- codex/static_root/assets/index-DYNNO5kn.js.gz +0 -0
- codex/static_root/assets/library-tab-CgIqcjvj.60327dfa8ecb.js +1 -0
- codex/static_root/assets/library-tab-CgIqcjvj.60327dfa8ecb.js.br +0 -0
- codex/static_root/assets/library-tab-CgIqcjvj.60327dfa8ecb.js.gz +0 -0
- codex/static_root/assets/library-tab-CgIqcjvj.js +1 -0
- codex/static_root/assets/library-tab-CgIqcjvj.js.br +0 -0
- codex/static_root/assets/library-tab-CgIqcjvj.js.gz +0 -0
- codex/static_root/assets/{library-tab-Bh7ErAk7.7c44200ee727.css → library-tab-Wew8YOLv.0c1780a6b68e.css} +1 -1
- codex/static_root/assets/library-tab-Wew8YOLv.0c1780a6b68e.css.br +0 -0
- codex/static_root/assets/library-tab-Wew8YOLv.0c1780a6b68e.css.gz +0 -0
- codex/static_root/assets/{library-tab-Bh7ErAk7.css → library-tab-Wew8YOLv.css} +1 -1
- codex/static_root/assets/library-tab-Wew8YOLv.css.br +0 -0
- codex/static_root/assets/library-tab-Wew8YOLv.css.gz +0 -0
- codex/static_root/assets/main-B3EwXQ3Q.14dfc21e272c.js +35 -0
- codex/static_root/assets/main-B3EwXQ3Q.14dfc21e272c.js.br +0 -0
- codex/static_root/assets/main-B3EwXQ3Q.14dfc21e272c.js.gz +0 -0
- codex/static_root/assets/main-B3EwXQ3Q.js +35 -0
- codex/static_root/assets/main-B3EwXQ3Q.js.br +0 -0
- codex/static_root/assets/main-B3EwXQ3Q.js.gz +0 -0
- codex/static_root/assets/pager-full-pdf-YkzUXx0B.f39d84e2380a.js +1 -0
- codex/static_root/assets/pager-full-pdf-YkzUXx0B.f39d84e2380a.js.br +0 -0
- codex/static_root/assets/pager-full-pdf-YkzUXx0B.f39d84e2380a.js.gz +0 -0
- codex/static_root/assets/pager-full-pdf-YkzUXx0B.js +1 -0
- codex/static_root/assets/pager-full-pdf-YkzUXx0B.js.br +0 -0
- codex/static_root/assets/pager-full-pdf-YkzUXx0B.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-CrruiVov.3bf9b795350d.js +1 -0
- codex/static_root/assets/pagination-toolbar-CrruiVov.3bf9b795350d.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-CrruiVov.3bf9b795350d.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-CrruiVov.js +1 -0
- codex/static_root/assets/pagination-toolbar-CrruiVov.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-CrruiVov.js.gz +0 -0
- codex/static_root/assets/{pagination-toolbar-BzruZPpu.css → pagination-toolbar-DGrxp2OD.css} +1 -1
- codex/static_root/assets/pagination-toolbar-DGrxp2OD.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-DGrxp2OD.css.gz +0 -0
- codex/static_root/assets/{pagination-toolbar-BzruZPpu.397ad4e3d029.css → pagination-toolbar-DGrxp2OD.f960a624f04f.css} +1 -1
- codex/static_root/assets/pagination-toolbar-DGrxp2OD.f960a624f04f.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-DGrxp2OD.f960a624f04f.css.gz +0 -0
- codex/static_root/assets/pdf-doc-CG5-AZ2M.b94aac7e3313.css +1 -0
- codex/static_root/assets/pdf-doc-CG5-AZ2M.b94aac7e3313.css.br +1 -0
- codex/static_root/assets/pdf-doc-CG5-AZ2M.b94aac7e3313.css.gz +0 -0
- codex/static_root/assets/pdf-doc-CG5-AZ2M.css +1 -0
- codex/static_root/assets/pdf-doc-CG5-AZ2M.css.br +1 -0
- codex/static_root/assets/pdf-doc-CG5-AZ2M.css.gz +0 -0
- codex/static_root/assets/{pdf-doc-C_RhfgHE.3d82cd502628.js → pdf-doc-ctqZIwOP.7e7b2c815ea4.js} +14 -14
- codex/static_root/assets/pdf-doc-ctqZIwOP.7e7b2c815ea4.js.br +0 -0
- codex/static_root/assets/pdf-doc-ctqZIwOP.7e7b2c815ea4.js.gz +0 -0
- codex/static_root/assets/{pdf-doc-C_RhfgHE.js → pdf-doc-ctqZIwOP.js} +14 -14
- codex/static_root/assets/pdf-doc-ctqZIwOP.js.br +0 -0
- codex/static_root/assets/pdf-doc-ctqZIwOP.js.gz +0 -0
- codex/static_root/assets/reader-DPLhdrJD.268417c618c5.js +2 -0
- codex/static_root/assets/reader-DPLhdrJD.268417c618c5.js.br +0 -0
- codex/static_root/assets/reader-DPLhdrJD.268417c618c5.js.gz +0 -0
- codex/static_root/assets/reader-DPLhdrJD.js +2 -0
- codex/static_root/assets/reader-DPLhdrJD.js.br +0 -0
- codex/static_root/assets/reader-DPLhdrJD.js.gz +0 -0
- codex/static_root/assets/reader-nD70BeEz.06e85e73c391.css +1 -0
- codex/static_root/assets/reader-nD70BeEz.06e85e73c391.css.br +0 -0
- codex/static_root/assets/reader-nD70BeEz.06e85e73c391.css.gz +0 -0
- codex/static_root/assets/reader-nD70BeEz.css +1 -0
- codex/static_root/assets/reader-nD70BeEz.css.br +0 -0
- codex/static_root/assets/reader-nD70BeEz.css.gz +0 -0
- codex/static_root/assets/relation-chips-DOALMcWL.5d3b8100ba03.js +1 -0
- codex/static_root/assets/relation-chips-DOALMcWL.5d3b8100ba03.js.br +0 -0
- codex/static_root/assets/relation-chips-DOALMcWL.5d3b8100ba03.js.gz +0 -0
- codex/static_root/assets/relation-chips-DOALMcWL.js +1 -0
- codex/static_root/assets/relation-chips-DOALMcWL.js.br +0 -0
- codex/static_root/assets/relation-chips-DOALMcWL.js.gz +0 -0
- codex/static_root/assets/settings-drawer-BVj1U_LC.c68369e0c2de.js +2 -0
- codex/static_root/assets/settings-drawer-BVj1U_LC.c68369e0c2de.js.br +0 -0
- codex/static_root/assets/settings-drawer-BVj1U_LC.c68369e0c2de.js.gz +0 -0
- codex/static_root/assets/settings-drawer-BVj1U_LC.js +2 -0
- codex/static_root/assets/settings-drawer-BVj1U_LC.js.br +0 -0
- codex/static_root/assets/settings-drawer-BVj1U_LC.js.gz +0 -0
- codex/static_root/assets/{stats-tab-BXGisn5N.9b7a71e7fe28.css → stats-tab-BAYTqQNg.5f715428c394.css} +1 -1
- codex/static_root/assets/stats-tab-BAYTqQNg.5f715428c394.css.br +0 -0
- codex/static_root/assets/stats-tab-BAYTqQNg.5f715428c394.css.gz +0 -0
- codex/static_root/assets/{stats-tab-BXGisn5N.css → stats-tab-BAYTqQNg.css} +1 -1
- codex/static_root/assets/stats-tab-BAYTqQNg.css.br +0 -0
- codex/static_root/assets/stats-tab-BAYTqQNg.css.gz +0 -0
- codex/static_root/assets/stats-tab-DDLwwwnP.35305258097b.js +1 -0
- codex/static_root/assets/stats-tab-DDLwwwnP.35305258097b.js.br +0 -0
- codex/static_root/assets/stats-tab-DDLwwwnP.35305258097b.js.gz +0 -0
- codex/static_root/assets/stats-tab-DDLwwwnP.js +1 -0
- codex/static_root/assets/stats-tab-DDLwwwnP.js.br +0 -0
- codex/static_root/assets/stats-tab-DDLwwwnP.js.gz +0 -0
- codex/static_root/assets/task-tab--cXi48kg.5dfd6890a1c2.css +1 -0
- codex/static_root/assets/{task-tab-1XiWn9xP.06cb8e1b794d.css.br → task-tab--cXi48kg.5dfd6890a1c2.css.br} +1 -1
- codex/static_root/assets/task-tab--cXi48kg.5dfd6890a1c2.css.gz +0 -0
- codex/static_root/assets/task-tab--cXi48kg.css +1 -0
- codex/static_root/assets/{task-tab-1XiWn9xP.css.br → task-tab--cXi48kg.css.br} +1 -1
- codex/static_root/assets/task-tab--cXi48kg.css.gz +0 -0
- codex/static_root/assets/task-tab-BpP3n2dO.c853eb565200.js +1 -0
- codex/static_root/assets/task-tab-BpP3n2dO.c853eb565200.js.br +0 -0
- codex/static_root/assets/task-tab-BpP3n2dO.c853eb565200.js.gz +0 -0
- codex/static_root/assets/task-tab-BpP3n2dO.js +1 -0
- codex/static_root/assets/task-tab-BpP3n2dO.js.br +0 -0
- codex/static_root/assets/task-tab-BpP3n2dO.js.gz +0 -0
- codex/static_root/assets/transition-3g2arGgl.c6e6f91b7978.js +1 -0
- codex/static_root/assets/transition-3g2arGgl.c6e6f91b7978.js.br +0 -0
- codex/static_root/assets/transition-3g2arGgl.c6e6f91b7978.js.gz +0 -0
- codex/static_root/assets/transition-3g2arGgl.js +1 -0
- codex/static_root/assets/transition-3g2arGgl.js.br +0 -0
- codex/static_root/assets/transition-3g2arGgl.js.gz +0 -0
- codex/static_root/assets/transition-5LRFTPo5.3d726f9bbcb0.css +1 -0
- codex/static_root/assets/transition-5LRFTPo5.3d726f9bbcb0.css.br +4 -0
- codex/static_root/assets/transition-5LRFTPo5.3d726f9bbcb0.css.gz +0 -0
- codex/static_root/assets/transition-5LRFTPo5.css +1 -0
- codex/static_root/assets/transition-5LRFTPo5.css.br +4 -0
- codex/static_root/assets/transition-5LRFTPo5.css.gz +0 -0
- codex/static_root/assets/{unauthorized-muDsv-rC.2166ec8b3a32.css → unauthorized-BjhIc97q.728511c92cd0.css} +1 -1
- codex/static_root/assets/unauthorized-BjhIc97q.728511c92cd0.css.br +0 -0
- codex/static_root/assets/unauthorized-BjhIc97q.728511c92cd0.css.gz +0 -0
- codex/static_root/assets/{unauthorized-muDsv-rC.css → unauthorized-BjhIc97q.css} +1 -1
- codex/static_root/assets/unauthorized-BjhIc97q.css.br +0 -0
- codex/static_root/assets/unauthorized-BjhIc97q.css.gz +0 -0
- codex/static_root/assets/unauthorized-CdumQ1Vf.79d9a61eb572.js +1 -0
- codex/static_root/assets/unauthorized-CdumQ1Vf.79d9a61eb572.js.br +0 -0
- codex/static_root/assets/unauthorized-CdumQ1Vf.79d9a61eb572.js.gz +0 -0
- codex/static_root/assets/unauthorized-CdumQ1Vf.js +1 -0
- codex/static_root/assets/unauthorized-CdumQ1Vf.js.br +0 -0
- codex/static_root/assets/unauthorized-CdumQ1Vf.js.gz +0 -0
- codex/static_root/assets/user-tab-D6oOKZTP.05944b00c700.js +1 -0
- codex/static_root/assets/user-tab-D6oOKZTP.05944b00c700.js.br +0 -0
- codex/static_root/assets/user-tab-D6oOKZTP.05944b00c700.js.gz +0 -0
- codex/static_root/assets/user-tab-D6oOKZTP.js +1 -0
- codex/static_root/assets/user-tab-D6oOKZTP.js.br +0 -0
- codex/static_root/assets/user-tab-D6oOKZTP.js.gz +0 -0
- codex/static_root/manifest.c5f1de88b1ac.json +712 -0
- codex/static_root/manifest.c5f1de88b1ac.json.br +0 -0
- codex/static_root/manifest.c5f1de88b1ac.json.gz +0 -0
- codex/static_root/manifest.json +395 -294
- codex/static_root/manifest.json.br +0 -0
- codex/static_root/manifest.json.gz +0 -0
- codex/static_root/staticfiles.json +1 -1
- codex/status_controller.py +15 -10
- codex/threads.py +1 -1
- codex/urls/api/auth.py +1 -1
- codex/urls/api/browser.py +1 -1
- codex/views/admin/library.py +18 -13
- codex/views/admin/stats.py +23 -16
- codex/views/admin/tasks.py +45 -40
- codex/views/auth.py +50 -74
- codex/views/bookmark.py +16 -153
- codex/views/browser/annotate/__init__.py +1 -0
- codex/views/browser/annotate/bookmark.py +112 -0
- codex/views/browser/annotate/card.py +61 -0
- codex/views/browser/annotate/order.py +247 -0
- codex/views/browser/breadcrumbs.py +90 -11
- codex/views/browser/browser.py +82 -117
- codex/views/browser/choices.py +15 -18
- codex/views/browser/cover.py +18 -24
- codex/views/browser/filters/bookmark.py +18 -19
- codex/views/browser/filters/field.py +8 -3
- codex/views/browser/filters/filter.py +69 -0
- codex/views/browser/filters/group.py +9 -6
- codex/views/browser/filters/search/__init__.py +1 -0
- codex/views/browser/filters/search/aliases.py +81 -0
- codex/views/browser/filters/search/field/__init__.py +1 -0
- codex/views/browser/filters/search/field/column.py +53 -0
- codex/views/browser/filters/search/field/expression.py +177 -0
- codex/views/browser/filters/search/field/filter.py +70 -0
- codex/views/browser/filters/search/field/optimize.py +71 -0
- codex/views/browser/filters/search/field/parse.py +187 -0
- codex/views/browser/filters/search/fts.py +24 -0
- codex/views/browser/filters/search/parse.py +250 -0
- codex/views/browser/group_mtime.py +83 -0
- codex/views/browser/metadata/__init__.py +1 -0
- codex/views/browser/metadata/annotate.py +109 -0
- codex/views/browser/metadata/copy_intersections.py +90 -0
- codex/views/browser/metadata/metadata.py +83 -0
- codex/views/browser/metadata/query_intersections.py +112 -0
- codex/views/browser/mtime.py +2 -10
- codex/views/browser/order_by.py +22 -16
- codex/views/browser/page_in_bounds.py +88 -0
- codex/views/browser/paginate.py +32 -123
- codex/views/browser/params.py +64 -0
- codex/views/browser/title.py +1 -6
- codex/views/browser/validate.py +68 -33
- codex/views/const.py +0 -1
- codex/views/download.py +1 -1
- codex/views/mixins.py +27 -15
- codex/views/opds/const.py +2 -3
- codex/views/opds/urls.py +2 -2
- codex/views/opds/util.py +2 -3
- codex/views/opds/v1/entry/links.py +3 -1
- codex/views/opds/v1/facets.py +65 -12
- codex/views/opds/v1/feed.py +7 -65
- codex/views/opds/v1/links.py +5 -4
- codex/views/opds/v2/feed.py +2 -28
- codex/views/opds/v2/links.py +27 -2
- codex/views/opds/v2/publications.py +5 -6
- codex/views/opds/v2/top_links.py +3 -6
- codex/views/public.py +2 -2
- codex/views/reader/arcs.py +0 -3
- codex/views/reader/books.py +57 -41
- codex/views/reader/page.py +13 -7
- codex/views/reader/{init.py → params.py} +38 -32
- codex/views/reader/reader.py +1 -2
- codex/views/session.py +43 -54
- codex/views/timezone.py +54 -0
- codex/views/version.py +1 -1
- {codex-1.6.18.dist-info → codex-1.7.0.dist-info}/METADATA +15 -10
- {codex-1.6.18.dist-info → codex-1.7.0.dist-info}/RECORD +474 -485
- codex/_vendor/__init__.py +0 -0
- codex/_vendor/django_haystack-3.2.1.dist-info/AUTHORS +0 -127
- codex/_vendor/django_haystack-3.2.1.dist-info/INSTALLER +0 -1
- codex/_vendor/django_haystack-3.2.1.dist-info/LICENSE +0 -31
- codex/_vendor/django_haystack-3.2.1.dist-info/METADATA +0 -98
- codex/_vendor/django_haystack-3.2.1.dist-info/RECORD +0 -97
- codex/_vendor/django_haystack-3.2.1.dist-info/REQUESTED +0 -0
- codex/_vendor/django_haystack-3.2.1.dist-info/WHEEL +0 -5
- codex/_vendor/django_haystack-3.2.1.dist-info/top_level.txt +0 -1
- codex/_vendor/haystack/__init__.py +0 -80
- codex/_vendor/haystack/admin.py +0 -163
- codex/_vendor/haystack/apps.py +0 -31
- codex/_vendor/haystack/backends/__init__.py +0 -1109
- codex/_vendor/haystack/backends/elasticsearch2_backend.py +0 -390
- codex/_vendor/haystack/backends/elasticsearch5_backend.py +0 -483
- codex/_vendor/haystack/backends/elasticsearch7_backend.py +0 -586
- codex/_vendor/haystack/backends/elasticsearch_backend.py +0 -1141
- codex/_vendor/haystack/backends/simple_backend.py +0 -132
- codex/_vendor/haystack/backends/solr_backend.py +0 -991
- codex/_vendor/haystack/backends/whoosh_backend.py +0 -1104
- codex/_vendor/haystack/constants.py +0 -57
- codex/_vendor/haystack/exceptions.py +0 -57
- codex/_vendor/haystack/fields.py +0 -562
- codex/_vendor/haystack/forms.py +0 -135
- codex/_vendor/haystack/generic_views.py +0 -141
- codex/_vendor/haystack/indexes.py +0 -548
- codex/_vendor/haystack/inputs.py +0 -169
- codex/_vendor/haystack/management/__init__.py +0 -0
- codex/_vendor/haystack/management/commands/__init__.py +0 -0
- codex/_vendor/haystack/management/commands/build_solr_schema.py +0 -187
- codex/_vendor/haystack/management/commands/clear_index.py +0 -67
- codex/_vendor/haystack/management/commands/haystack_info.py +0 -22
- codex/_vendor/haystack/management/commands/rebuild_index.py +0 -65
- codex/_vendor/haystack/management/commands/update_index.py +0 -438
- codex/_vendor/haystack/manager.py +0 -105
- codex/_vendor/haystack/models.py +0 -257
- codex/_vendor/haystack/panels.py +0 -89
- codex/_vendor/haystack/query.py +0 -771
- codex/_vendor/haystack/routers.py +0 -14
- codex/_vendor/haystack/signals.py +0 -88
- codex/_vendor/haystack/templates/panels/haystack.html +0 -33
- codex/_vendor/haystack/templates/search_configuration/schema.xml +0 -1056
- codex/_vendor/haystack/templates/search_configuration/solrconfig.xml +0 -1446
- codex/_vendor/haystack/templatetags/__init__.py +0 -0
- codex/_vendor/haystack/templatetags/highlight.py +0 -131
- codex/_vendor/haystack/templatetags/more_like_this.py +0 -119
- codex/_vendor/haystack/urls.py +0 -5
- codex/_vendor/haystack/utils/__init__.py +0 -84
- codex/_vendor/haystack/utils/app_loading.py +0 -34
- codex/_vendor/haystack/utils/geo.py +0 -71
- codex/_vendor/haystack/utils/highlighting.py +0 -165
- codex/_vendor/haystack/utils/loading.py +0 -374
- codex/_vendor/haystack/utils/log.py +0 -21
- codex/_vendor/haystack/version.py +0 -16
- codex/_vendor/haystack/views.py +0 -253
- codex/integrity.py +0 -492
- codex/librarian/search/merge.py +0 -86
- codex/librarian/search/version.py +0 -63
- codex/search/__init__.py +0 -1
- codex/search/backend.py +0 -524
- codex/search/backend_search.py +0 -229
- codex/search/engine.py +0 -33
- codex/search/indexes.py +0 -79
- codex/search/query.py +0 -67
- codex/search/writing.py +0 -180
- codex/serializers/choices.py +0 -196
- codex/static_root/assets/VCheckbox-D_kRyvnz.981ece08698f.js +0 -1
- codex/static_root/assets/VCheckbox-D_kRyvnz.981ece08698f.js.br +0 -0
- codex/static_root/assets/VCheckbox-D_kRyvnz.981ece08698f.js.gz +0 -0
- codex/static_root/assets/VCheckbox-D_kRyvnz.js +0 -1
- codex/static_root/assets/VCheckbox-D_kRyvnz.js.br +0 -0
- codex/static_root/assets/VCheckbox-D_kRyvnz.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-CasNFNDK.3c20f8d4f5d9.js +0 -1
- codex/static_root/assets/VCheckboxBtn-CasNFNDK.3c20f8d4f5d9.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-CasNFNDK.3c20f8d4f5d9.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-CasNFNDK.js +0 -1
- codex/static_root/assets/VCheckboxBtn-CasNFNDK.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-CasNFNDK.js.gz +0 -0
- codex/static_root/assets/VCombobox-BemG8ph3.afde3fec668d.js +0 -1
- codex/static_root/assets/VCombobox-BemG8ph3.afde3fec668d.js.br +0 -0
- codex/static_root/assets/VCombobox-BemG8ph3.afde3fec668d.js.gz +0 -0
- codex/static_root/assets/VCombobox-BemG8ph3.js +0 -1
- codex/static_root/assets/VCombobox-BemG8ph3.js.br +0 -0
- codex/static_root/assets/VCombobox-BemG8ph3.js.gz +0 -0
- codex/static_root/assets/VDialog-38np3TSA.5a0cb7a9e56d.css +0 -1
- codex/static_root/assets/VDialog-38np3TSA.5a0cb7a9e56d.css.br +0 -0
- codex/static_root/assets/VDialog-38np3TSA.5a0cb7a9e56d.css.gz +0 -0
- codex/static_root/assets/VDialog-38np3TSA.css +0 -1
- codex/static_root/assets/VDialog-38np3TSA.css.br +0 -0
- codex/static_root/assets/VDialog-38np3TSA.css.gz +0 -0
- codex/static_root/assets/VDialog-DOm1w6bL.3a8bac3e555f.js +0 -1
- codex/static_root/assets/VDialog-DOm1w6bL.3a8bac3e555f.js.br +0 -0
- codex/static_root/assets/VDialog-DOm1w6bL.3a8bac3e555f.js.gz +0 -0
- codex/static_root/assets/VDialog-DOm1w6bL.js +0 -1
- codex/static_root/assets/VDialog-DOm1w6bL.js.br +0 -0
- codex/static_root/assets/VDialog-DOm1w6bL.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-BIAAQEIk.536cfca15bf5.js +0 -1
- codex/static_root/assets/VExpansionPanels-BIAAQEIk.536cfca15bf5.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-BIAAQEIk.536cfca15bf5.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-BIAAQEIk.js +0 -1
- codex/static_root/assets/VExpansionPanels-BIAAQEIk.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-BIAAQEIk.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-CQd2B2cC.5484da094948.js +0 -1
- codex/static_root/assets/VRadioGroup-CQd2B2cC.5484da094948.js.br +0 -0
- codex/static_root/assets/VRadioGroup-CQd2B2cC.5484da094948.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-CQd2B2cC.js +0 -1
- codex/static_root/assets/VRadioGroup-CQd2B2cC.js.br +0 -0
- codex/static_root/assets/VRadioGroup-CQd2B2cC.js.gz +0 -0
- codex/static_root/assets/VSelect-Ca2bIOso.6613989e4c45.css +0 -1
- codex/static_root/assets/VSelect-Ca2bIOso.6613989e4c45.css.br +0 -0
- codex/static_root/assets/VSelect-Ca2bIOso.6613989e4c45.css.gz +0 -0
- codex/static_root/assets/VSelect-Ca2bIOso.css +0 -1
- codex/static_root/assets/VSelect-Ca2bIOso.css.br +0 -0
- codex/static_root/assets/VSelect-Ca2bIOso.css.gz +0 -0
- codex/static_root/assets/VSelect-DhYHkIlU.fcb6b4997b19.js +0 -1
- codex/static_root/assets/VSelect-DhYHkIlU.fcb6b4997b19.js.br +0 -0
- codex/static_root/assets/VSelect-DhYHkIlU.fcb6b4997b19.js.gz +0 -0
- codex/static_root/assets/VSelect-DhYHkIlU.js +0 -1
- codex/static_root/assets/VSelect-DhYHkIlU.js.br +0 -0
- codex/static_root/assets/VSelect-DhYHkIlU.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-DZ7Z3QaY.753a2564123a.js +0 -1
- codex/static_root/assets/VSelectionControl-DZ7Z3QaY.753a2564123a.js.br +0 -0
- codex/static_root/assets/VSelectionControl-DZ7Z3QaY.753a2564123a.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-DZ7Z3QaY.js +0 -1
- codex/static_root/assets/VSelectionControl-DZ7Z3QaY.js.br +0 -0
- codex/static_root/assets/VSelectionControl-DZ7Z3QaY.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-BfZo3lM5.0ffb08d15ccd.js +0 -1
- codex/static_root/assets/VSlideGroup-BfZo3lM5.0ffb08d15ccd.js.br +0 -0
- codex/static_root/assets/VSlideGroup-BfZo3lM5.0ffb08d15ccd.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-BfZo3lM5.js +0 -1
- codex/static_root/assets/VSlideGroup-BfZo3lM5.js.br +0 -0
- codex/static_root/assets/VSlideGroup-BfZo3lM5.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-Dk_1upHt.2c836070ec75.css +0 -1
- codex/static_root/assets/VSlideGroup-Dk_1upHt.2c836070ec75.css.br +0 -0
- codex/static_root/assets/VSlideGroup-Dk_1upHt.2c836070ec75.css.gz +0 -0
- codex/static_root/assets/VSlideGroup-Dk_1upHt.css +0 -1
- codex/static_root/assets/VSlideGroup-Dk_1upHt.css.br +0 -0
- codex/static_root/assets/VSlideGroup-Dk_1upHt.css.gz +0 -0
- codex/static_root/assets/VTable-xJS8rtC3.456750dc5d3f.js +0 -1
- codex/static_root/assets/VTable-xJS8rtC3.456750dc5d3f.js.br +0 -0
- codex/static_root/assets/VTable-xJS8rtC3.456750dc5d3f.js.gz +0 -0
- codex/static_root/assets/VTable-xJS8rtC3.js +0 -1
- codex/static_root/assets/VTable-xJS8rtC3.js.br +0 -0
- codex/static_root/assets/VTable-xJS8rtC3.js.gz +0 -0
- codex/static_root/assets/VTextField-CWKnATIB.7e07951afd27.js +0 -1
- codex/static_root/assets/VTextField-CWKnATIB.7e07951afd27.js.br +0 -0
- codex/static_root/assets/VTextField-CWKnATIB.7e07951afd27.js.gz +0 -0
- codex/static_root/assets/VTextField-CWKnATIB.js +0 -1
- codex/static_root/assets/VTextField-CWKnATIB.js.br +0 -0
- codex/static_root/assets/VTextField-CWKnATIB.js.gz +0 -0
- codex/static_root/assets/VTextField-Crc3gdNh.39995ccf4d52.css +0 -1
- codex/static_root/assets/VTextField-Crc3gdNh.39995ccf4d52.css.br +0 -0
- codex/static_root/assets/VTextField-Crc3gdNh.39995ccf4d52.css.gz +0 -0
- codex/static_root/assets/VTextField-Crc3gdNh.css +0 -1
- codex/static_root/assets/VTextField-Crc3gdNh.css.br +0 -0
- codex/static_root/assets/VTextField-Crc3gdNh.css.gz +0 -0
- codex/static_root/assets/VWindowItem-COG2FuUz.12a198f11fe7.js +0 -1
- codex/static_root/assets/VWindowItem-COG2FuUz.12a198f11fe7.js.br +0 -0
- codex/static_root/assets/VWindowItem-COG2FuUz.12a198f11fe7.js.gz +0 -0
- codex/static_root/assets/VWindowItem-COG2FuUz.js +0 -1
- codex/static_root/assets/VWindowItem-COG2FuUz.js.br +0 -0
- codex/static_root/assets/VWindowItem-COG2FuUz.js.gz +0 -0
- codex/static_root/assets/admin-CWEjaFr5.7d4523387384.css.br +0 -0
- codex/static_root/assets/admin-CWEjaFr5.7d4523387384.css.gz +0 -0
- codex/static_root/assets/admin-CWEjaFr5.css.br +0 -0
- codex/static_root/assets/admin-CWEjaFr5.css.gz +0 -0
- codex/static_root/assets/admin-Dl2A7cx-.5fbd345dbc05.js +0 -1
- codex/static_root/assets/admin-Dl2A7cx-.5fbd345dbc05.js.br +0 -0
- codex/static_root/assets/admin-Dl2A7cx-.5fbd345dbc05.js.gz +0 -0
- codex/static_root/assets/admin-Dl2A7cx-.js +0 -1
- codex/static_root/assets/admin-Dl2A7cx-.js.br +0 -0
- codex/static_root/assets/admin-Dl2A7cx-.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-Bs2wgKj3.3cb33056e994.css +0 -1
- codex/static_root/assets/admin-drawer-panel-Bs2wgKj3.3cb33056e994.css.br +0 -0
- codex/static_root/assets/admin-drawer-panel-Bs2wgKj3.3cb33056e994.css.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-Bs2wgKj3.css +0 -1
- codex/static_root/assets/admin-drawer-panel-Bs2wgKj3.css.br +0 -0
- codex/static_root/assets/admin-drawer-panel-Bs2wgKj3.css.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-D4CYCd_H.fd8dcc769daf.js +0 -30
- codex/static_root/assets/admin-drawer-panel-D4CYCd_H.fd8dcc769daf.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-D4CYCd_H.fd8dcc769daf.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-D4CYCd_H.js +0 -30
- codex/static_root/assets/admin-drawer-panel-D4CYCd_H.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-D4CYCd_H.js.gz +0 -0
- codex/static_root/assets/browser-Binc3n9H.313722d27ca3.css +0 -1
- codex/static_root/assets/browser-Binc3n9H.313722d27ca3.css.br +0 -0
- codex/static_root/assets/browser-Binc3n9H.313722d27ca3.css.gz +0 -0
- codex/static_root/assets/browser-Binc3n9H.css +0 -1
- codex/static_root/assets/browser-Binc3n9H.css.br +0 -0
- codex/static_root/assets/browser-Binc3n9H.css.gz +0 -0
- codex/static_root/assets/browser-DOhldfGx.43465be961b0.js +0 -1
- codex/static_root/assets/browser-DOhldfGx.43465be961b0.js.br +0 -0
- codex/static_root/assets/browser-DOhldfGx.43465be961b0.js.gz +0 -0
- codex/static_root/assets/browser-DOhldfGx.js +0 -1
- codex/static_root/assets/browser-DOhldfGx.js.br +0 -0
- codex/static_root/assets/browser-DOhldfGx.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-Cebek1-c.aff2975e31f8.css +0 -1
- codex/static_root/assets/change-password-dialog-Cebek1-c.aff2975e31f8.css.br +0 -0
- codex/static_root/assets/change-password-dialog-Cebek1-c.aff2975e31f8.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-Cebek1-c.css +0 -1
- codex/static_root/assets/change-password-dialog-Cebek1-c.css.br +0 -0
- codex/static_root/assets/change-password-dialog-Cebek1-c.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-CrIdNi1F.9451b8d8e301.js +0 -1
- codex/static_root/assets/change-password-dialog-CrIdNi1F.9451b8d8e301.js.br +0 -0
- codex/static_root/assets/change-password-dialog-CrIdNi1F.9451b8d8e301.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-CrIdNi1F.js +0 -1
- codex/static_root/assets/change-password-dialog-CrIdNi1F.js.br +0 -0
- codex/static_root/assets/change-password-dialog-CrIdNi1F.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-B8T3Aamf.5d5b5715840a.js +0 -1
- codex/static_root/assets/confirm-dialog-B8T3Aamf.5d5b5715840a.js.br +0 -0
- codex/static_root/assets/confirm-dialog-B8T3Aamf.5d5b5715840a.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-B8T3Aamf.js +0 -1
- codex/static_root/assets/confirm-dialog-B8T3Aamf.js.br +0 -0
- codex/static_root/assets/confirm-dialog-B8T3Aamf.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-BmhedLCx.7c2103d319d4.css +0 -1
- codex/static_root/assets/confirm-dialog-BmhedLCx.css +0 -1
- codex/static_root/assets/datetime-column-DJjaMFv9.d281fe18446a.js +0 -1
- codex/static_root/assets/datetime-column-DJjaMFv9.d281fe18446a.js.br +0 -0
- codex/static_root/assets/datetime-column-DJjaMFv9.d281fe18446a.js.gz +0 -0
- codex/static_root/assets/datetime-column-DJjaMFv9.js +0 -1
- codex/static_root/assets/datetime-column-DJjaMFv9.js.br +0 -0
- codex/static_root/assets/datetime-column-DJjaMFv9.js.gz +0 -0
- codex/static_root/assets/filter-DMpQdE_u.8d88bbf01ae8.js +0 -1
- codex/static_root/assets/filter-DMpQdE_u.8d88bbf01ae8.js.br +0 -0
- codex/static_root/assets/filter-DMpQdE_u.8d88bbf01ae8.js.gz +0 -0
- codex/static_root/assets/filter-DMpQdE_u.js +0 -1
- codex/static_root/assets/filter-DMpQdE_u.js.br +0 -0
- codex/static_root/assets/filter-DMpQdE_u.js.gz +0 -0
- codex/static_root/assets/flag-tab-C2TvU4CO.7b424d4fedb2.js +0 -1
- codex/static_root/assets/flag-tab-C2TvU4CO.7b424d4fedb2.js.br +0 -0
- codex/static_root/assets/flag-tab-C2TvU4CO.7b424d4fedb2.js.gz +0 -0
- codex/static_root/assets/flag-tab-C2TvU4CO.js +0 -1
- codex/static_root/assets/flag-tab-C2TvU4CO.js.br +0 -0
- codex/static_root/assets/flag-tab-C2TvU4CO.js.gz +0 -0
- codex/static_root/assets/flag-tab-DBqpLKi7.css +0 -1
- codex/static_root/assets/flag-tab-DBqpLKi7.css.br +0 -0
- codex/static_root/assets/flag-tab-DBqpLKi7.css.gz +0 -0
- codex/static_root/assets/flag-tab-DBqpLKi7.dcfef39f541e.css +0 -1
- codex/static_root/assets/flag-tab-DBqpLKi7.dcfef39f541e.css.br +0 -0
- codex/static_root/assets/flag-tab-DBqpLKi7.dcfef39f541e.css.gz +0 -0
- codex/static_root/assets/group-tab-BOX6rJuK.58304d7d9f28.js +0 -1
- codex/static_root/assets/group-tab-BOX6rJuK.58304d7d9f28.js.br +0 -0
- codex/static_root/assets/group-tab-BOX6rJuK.58304d7d9f28.js.gz +0 -0
- codex/static_root/assets/group-tab-BOX6rJuK.js +0 -1
- codex/static_root/assets/group-tab-BOX6rJuK.js.br +0 -0
- codex/static_root/assets/group-tab-BOX6rJuK.js.gz +0 -0
- codex/static_root/assets/group-tab-CBKuS3Iv.7e4746634782.css +0 -1
- codex/static_root/assets/group-tab-CBKuS3Iv.7e4746634782.css.br +0 -0
- codex/static_root/assets/group-tab-CBKuS3Iv.7e4746634782.css.gz +0 -0
- codex/static_root/assets/group-tab-CBKuS3Iv.css +0 -1
- codex/static_root/assets/group-tab-CBKuS3Iv.css.br +0 -0
- codex/static_root/assets/group-tab-CBKuS3Iv.css.gz +0 -0
- codex/static_root/assets/http-error-E90fvnsx.103df54057a6.js +0 -1
- codex/static_root/assets/http-error-E90fvnsx.103df54057a6.js.br +0 -0
- codex/static_root/assets/http-error-E90fvnsx.103df54057a6.js.gz +0 -0
- codex/static_root/assets/http-error-E90fvnsx.js +0 -1
- codex/static_root/assets/http-error-E90fvnsx.js.br +0 -0
- codex/static_root/assets/http-error-E90fvnsx.js.gz +0 -0
- codex/static_root/assets/library-tab-Bh7ErAk7.7c44200ee727.css.br +0 -2
- codex/static_root/assets/library-tab-Bh7ErAk7.7c44200ee727.css.gz +0 -0
- codex/static_root/assets/library-tab-Bh7ErAk7.css.br +0 -2
- codex/static_root/assets/library-tab-Bh7ErAk7.css.gz +0 -0
- codex/static_root/assets/library-tab-DoLAFv6A.e504e9181e22.js +0 -1
- codex/static_root/assets/library-tab-DoLAFv6A.e504e9181e22.js.br +0 -0
- codex/static_root/assets/library-tab-DoLAFv6A.e504e9181e22.js.gz +0 -0
- codex/static_root/assets/library-tab-DoLAFv6A.js +0 -1
- codex/static_root/assets/library-tab-DoLAFv6A.js.br +0 -0
- codex/static_root/assets/library-tab-DoLAFv6A.js.gz +0 -0
- codex/static_root/assets/main-BnyyRHtu.383bd5bdf135.js +0 -6
- codex/static_root/assets/main-BnyyRHtu.383bd5bdf135.js.br +0 -0
- codex/static_root/assets/main-BnyyRHtu.383bd5bdf135.js.gz +0 -0
- codex/static_root/assets/main-BnyyRHtu.js +0 -6
- codex/static_root/assets/main-BnyyRHtu.js.br +0 -0
- codex/static_root/assets/main-BnyyRHtu.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-B-H-BgUh.0485a41335d7.js +0 -1
- codex/static_root/assets/pagination-toolbar-B-H-BgUh.0485a41335d7.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-B-H-BgUh.0485a41335d7.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-B-H-BgUh.js +0 -1
- codex/static_root/assets/pagination-toolbar-B-H-BgUh.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-B-H-BgUh.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-BzruZPpu.397ad4e3d029.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-BzruZPpu.397ad4e3d029.css.gz +0 -0
- codex/static_root/assets/pagination-toolbar-BzruZPpu.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-BzruZPpu.css.gz +0 -0
- codex/static_root/assets/pdf-doc-C_RhfgHE.3d82cd502628.js.br +0 -0
- codex/static_root/assets/pdf-doc-C_RhfgHE.3d82cd502628.js.gz +0 -0
- codex/static_root/assets/pdf-doc-C_RhfgHE.js.br +0 -0
- codex/static_root/assets/pdf-doc-C_RhfgHE.js.gz +0 -0
- codex/static_root/assets/pdf-doc-CkC2e3rI.css +0 -1
- codex/static_root/assets/pdf-doc-CkC2e3rI.css.br +0 -0
- codex/static_root/assets/pdf-doc-CkC2e3rI.css.gz +0 -0
- codex/static_root/assets/pdf-doc-CkC2e3rI.da75c385ebd0.css +0 -1
- codex/static_root/assets/pdf-doc-CkC2e3rI.da75c385ebd0.css.br +0 -0
- codex/static_root/assets/pdf-doc-CkC2e3rI.da75c385ebd0.css.gz +0 -0
- codex/static_root/assets/reader-DkEfQBw-.5e7781a737e6.css +0 -1
- codex/static_root/assets/reader-DkEfQBw-.5e7781a737e6.css.br +0 -0
- codex/static_root/assets/reader-DkEfQBw-.5e7781a737e6.css.gz +0 -0
- codex/static_root/assets/reader-DkEfQBw-.css +0 -1
- codex/static_root/assets/reader-DkEfQBw-.css.br +0 -0
- codex/static_root/assets/reader-DkEfQBw-.css.gz +0 -0
- codex/static_root/assets/reader-K27K1JrT.faa6edbda846.js +0 -2
- codex/static_root/assets/reader-K27K1JrT.faa6edbda846.js.br +0 -0
- codex/static_root/assets/reader-K27K1JrT.faa6edbda846.js.gz +0 -0
- codex/static_root/assets/reader-K27K1JrT.js +0 -2
- codex/static_root/assets/reader-K27K1JrT.js.br +0 -0
- codex/static_root/assets/reader-K27K1JrT.js.gz +0 -0
- codex/static_root/assets/relation-chips-CfHz9Cgt.ce0ab88180d5.js +0 -1
- codex/static_root/assets/relation-chips-CfHz9Cgt.ce0ab88180d5.js.br +0 -0
- codex/static_root/assets/relation-chips-CfHz9Cgt.ce0ab88180d5.js.gz +0 -0
- codex/static_root/assets/relation-chips-CfHz9Cgt.js +0 -1
- codex/static_root/assets/relation-chips-CfHz9Cgt.js.br +0 -0
- codex/static_root/assets/relation-chips-CfHz9Cgt.js.gz +0 -0
- codex/static_root/assets/settings-drawer-CF0z39tG.bb0427409b01.js +0 -2
- codex/static_root/assets/settings-drawer-CF0z39tG.bb0427409b01.js.br +0 -0
- codex/static_root/assets/settings-drawer-CF0z39tG.bb0427409b01.js.gz +0 -0
- codex/static_root/assets/settings-drawer-CF0z39tG.js +0 -2
- codex/static_root/assets/settings-drawer-CF0z39tG.js.br +0 -0
- codex/static_root/assets/settings-drawer-CF0z39tG.js.gz +0 -0
- codex/static_root/assets/stats-tab-BXGisn5N.9b7a71e7fe28.css.br +0 -0
- codex/static_root/assets/stats-tab-BXGisn5N.9b7a71e7fe28.css.gz +0 -0
- codex/static_root/assets/stats-tab-BXGisn5N.css.br +0 -0
- codex/static_root/assets/stats-tab-BXGisn5N.css.gz +0 -0
- codex/static_root/assets/stats-tab-m4jtc5tB.fe5a865d950f.js +0 -1
- codex/static_root/assets/stats-tab-m4jtc5tB.fe5a865d950f.js.br +0 -0
- codex/static_root/assets/stats-tab-m4jtc5tB.fe5a865d950f.js.gz +0 -0
- codex/static_root/assets/stats-tab-m4jtc5tB.js +0 -1
- codex/static_root/assets/stats-tab-m4jtc5tB.js.br +0 -0
- codex/static_root/assets/stats-tab-m4jtc5tB.js.gz +0 -0
- codex/static_root/assets/task-tab-1XiWn9xP.06cb8e1b794d.css +0 -1
- codex/static_root/assets/task-tab-1XiWn9xP.06cb8e1b794d.css.gz +0 -0
- codex/static_root/assets/task-tab-1XiWn9xP.css +0 -1
- codex/static_root/assets/task-tab-1XiWn9xP.css.gz +0 -0
- codex/static_root/assets/task-tab-Bn04U_1c.3b343f42f0a9.js +0 -1
- codex/static_root/assets/task-tab-Bn04U_1c.3b343f42f0a9.js.br +0 -0
- codex/static_root/assets/task-tab-Bn04U_1c.3b343f42f0a9.js.gz +0 -0
- codex/static_root/assets/task-tab-Bn04U_1c.js +0 -1
- codex/static_root/assets/task-tab-Bn04U_1c.js.br +0 -0
- codex/static_root/assets/task-tab-Bn04U_1c.js.gz +0 -0
- codex/static_root/assets/unauthorized-CFFrmehB.25307184f821.js +0 -1
- codex/static_root/assets/unauthorized-CFFrmehB.25307184f821.js.br +0 -0
- codex/static_root/assets/unauthorized-CFFrmehB.25307184f821.js.gz +0 -0
- codex/static_root/assets/unauthorized-CFFrmehB.js +0 -1
- codex/static_root/assets/unauthorized-CFFrmehB.js.br +0 -0
- codex/static_root/assets/unauthorized-CFFrmehB.js.gz +0 -0
- codex/static_root/assets/unauthorized-muDsv-rC.2166ec8b3a32.css.br +0 -0
- codex/static_root/assets/unauthorized-muDsv-rC.2166ec8b3a32.css.gz +0 -0
- codex/static_root/assets/unauthorized-muDsv-rC.css.br +0 -0
- codex/static_root/assets/unauthorized-muDsv-rC.css.gz +0 -0
- codex/static_root/assets/user-tab-Bc0BOX75.96057d32f1e9.js +0 -1
- codex/static_root/assets/user-tab-Bc0BOX75.96057d32f1e9.js.br +0 -0
- codex/static_root/assets/user-tab-Bc0BOX75.96057d32f1e9.js.gz +0 -0
- codex/static_root/assets/user-tab-Bc0BOX75.js +0 -1
- codex/static_root/assets/user-tab-Bc0BOX75.js.br +0 -0
- codex/static_root/assets/user-tab-Bc0BOX75.js.gz +0 -0
- codex/static_root/js/choices-admin.1a20a5648f20.json +0 -1
- codex/static_root/js/choices-admin.1a20a5648f20.json.br +0 -0
- codex/static_root/js/choices-admin.1a20a5648f20.json.gz +0 -0
- codex/static_root/js/choices-admin.json +0 -1
- codex/static_root/js/choices-admin.json.br +0 -0
- codex/static_root/js/choices-admin.json.gz +0 -0
- codex/static_root/js/choices.2f6b0359e1ef.json +0 -1
- codex/static_root/js/choices.2f6b0359e1ef.json.br +0 -0
- codex/static_root/js/choices.2f6b0359e1ef.json.gz +0 -0
- codex/static_root/js/choices.json +0 -1
- codex/static_root/js/choices.json.br +0 -0
- codex/static_root/js/choices.json.gz +0 -0
- codex/static_root/manifest.5127f11299cc.json +0 -611
- codex/static_root/manifest.5127f11299cc.json.br +0 -0
- codex/static_root/manifest.5127f11299cc.json.gz +0 -0
- codex/templates/search/indexes/codex/comic_text.txt +0 -47
- codex/views/browser/annotations.py +0 -296
- codex/views/browser/base.py +0 -140
- codex/views/browser/filters/annotations.py +0 -103
- codex/views/browser/filters/search.py +0 -196
- codex/views/browser/metadata.py +0 -332
- {codex-1.6.18.dist-info → codex-1.7.0.dist-info}/LICENSE +0 -0
- {codex-1.6.18.dist-info → codex-1.7.0.dist-info}/WHEEL +0 -0
- {codex-1.6.18.dist-info → codex-1.7.0.dist-info}/entry_points.txt +0 -0
codex/_vendor/__init__.py
DELETED
|
File without changes
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
Primary Authors:
|
|
2
|
-
|
|
3
|
-
* Daniel Lindsley
|
|
4
|
-
* Matt Croydon (some documentation, sanity checks and the sweet name)
|
|
5
|
-
* Travis Cline (the original SQ implementation, improvements to ModelSearchIndex)
|
|
6
|
-
* David Sauve (notanumber) for the Xapian backend, the simple backend and various patches.
|
|
7
|
-
* Jannis Leidel (jezdez)
|
|
8
|
-
* Chris Adams (acdha)
|
|
9
|
-
* Justin Caratzas (bigjust)
|
|
10
|
-
* Andrew Schoen (andrewschoen)
|
|
11
|
-
* Dan Watson (dcwatson)
|
|
12
|
-
* Matt Woodward (mpwoodward)
|
|
13
|
-
* Alex Vidal (avidal)
|
|
14
|
-
* Zach Smith (zmsmith)
|
|
15
|
-
* Stefan Wehrmeyer (stefanw)
|
|
16
|
-
* George Hickman (ghickman)
|
|
17
|
-
* Ben Spaulding (benspaulding)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
Thanks to
|
|
21
|
-
* Jacob Kaplan-Moss & Joseph Kocherhans for the original implementation of
|
|
22
|
-
djangosearch, of which portions were used, as well as basic API feedback.
|
|
23
|
-
* Christian Metts for designing the logo and building a better site.
|
|
24
|
-
* Nathan Borror for testing and advanced form usage.
|
|
25
|
-
* Malcolm Tredinnick for API feedback.
|
|
26
|
-
* Mediaphormedia for funding the development on More Like This and faceting.
|
|
27
|
-
* Travis Cline for API feedback, Git help and improvements to the reindex command.
|
|
28
|
-
* Brian Rosner for various patches.
|
|
29
|
-
* Richard Boulton for feedback and suggestions.
|
|
30
|
-
* Cyberdelia for feedback and patches.
|
|
31
|
-
* Ask Solem for for patching the setup.py.
|
|
32
|
-
* Ben Spaulding for feedback and documentation patches.
|
|
33
|
-
* smulloni for various patches.
|
|
34
|
-
* JoeGermuska for various patches.
|
|
35
|
-
* SmileyChris for various patches.
|
|
36
|
-
* sk1p for various patches.
|
|
37
|
-
* Ryszard Szopa (ryszard) for various patches.
|
|
38
|
-
* Patryk Zawadzki (patrys) for various patches and feedback.
|
|
39
|
-
* Frank Wiles for documentation patches.
|
|
40
|
-
* Chris Adams (acdha) for various patches.
|
|
41
|
-
* Kyle MacFarlane for various patches.
|
|
42
|
-
* Alex Gaynor (alex) for help with handling deferred models with More Like This.
|
|
43
|
-
* RobertGawron for a patch to the Highlighter.
|
|
44
|
-
* Simon Willison (simonw) for various proposals and patches.
|
|
45
|
-
* Ben Firshman (bfirsh) for faceting improvements and suggestions.
|
|
46
|
-
* Peter Bengtsson for a patch regarding passing a customized site.
|
|
47
|
-
* Sam Bull (osirius) for a patch regarding initial data on SearchForms.
|
|
48
|
-
* slai for a patch regarding Whoosh and fetching all documents of a certain model type.
|
|
49
|
-
* alanwj for a patch regarding Whoosh and empty MultiValueFields.
|
|
50
|
-
* alanzoppa for a patch regarding highlighting.
|
|
51
|
-
* piquadrat for a patch regarding the more_like_this template tag.
|
|
52
|
-
* dedsm for a patch regarding the pickling of SearchResult objects.
|
|
53
|
-
* EmilStenstrom for a patch to the Highlighter.
|
|
54
|
-
* symroe for a patch regarding the more_like_this template tag.
|
|
55
|
-
* ghostrocket for a patch regarding the simple backend.
|
|
56
|
-
* Rob Hudson (robhudson) for improvements to the admin search.
|
|
57
|
-
* apollo13 for simplifying ``SearchForm.__init__``.
|
|
58
|
-
* Carl Meyer (carljm) for a patch regarding character primary keys.
|
|
59
|
-
* oyiptong for a patch regarding pickling.
|
|
60
|
-
* alfredo for a patch to generate epub docs.
|
|
61
|
-
* Luke Hatcher (lukeman) for documentation patches.
|
|
62
|
-
* Trey Hunner (treyhunner) for a Whoosh field boosting patch.
|
|
63
|
-
* Kent Gormat of Retail Catalyst for funding the development of multiple index support.
|
|
64
|
-
* Gidsy for funding the initial geospatial implementation
|
|
65
|
-
* CMGdigital for funding the development on:
|
|
66
|
-
* a multiprocessing-enabled version of ``update_index``.
|
|
67
|
-
* the addition of ``--start/--end`` options in ``update_index``.
|
|
68
|
-
* the ability to specify both apps & models to ``update_index``.
|
|
69
|
-
* A significant portion of the geospatial feature.
|
|
70
|
-
* A significant portion of the input types feature.
|
|
71
|
-
* Aram Dulyan (Aramgutang) for fixing the included admin class to be Django 1.4 compatible.
|
|
72
|
-
* Honza Kral (HonzaKral) for various Elasticsearch tweaks & testing.
|
|
73
|
-
* Alex Vidal (avidal) for a patch allowing developers to override the queryset used for update operations.
|
|
74
|
-
* Igor Támara (ikks) for a patch related to Unicode ``verbose_name_plural``.
|
|
75
|
-
* Dan Helfman (witten) for a patch related to highlighting.
|
|
76
|
-
* Matt DeBoard for refactor of ``SolrSearchBackend.search`` method to allow simpler extension of the class.
|
|
77
|
-
* Rodrigo Guzman (rz) for a fix to query handling in the ``simple`` backend.
|
|
78
|
-
* Martin J. Laubach (mjl) for fixing the logic used when combining querysets
|
|
79
|
-
* Eric Holscher (ericholscher) for a docs fix.
|
|
80
|
-
* Erik Rose (erikrose) for a quick pyelasticsearch-compatibility patch
|
|
81
|
-
* Stefan Wehrmeyer (stefanw) for a simple search filter fix
|
|
82
|
-
* Dan Watson (dcwatson) for various patches.
|
|
83
|
-
* Andrew Schoen (andrewschoen) for the addition of ``HAYSTACK_IDENTIFIER_METHOD``
|
|
84
|
-
* Pablo SEMINARIO (pabluk) for a docs fix, and a fix in the ElasticSearch backend.
|
|
85
|
-
* Eric Thurgood (ethurgood) for a import fix in the Elasticssearch backend.
|
|
86
|
-
* Revolution Systems & The Python Software Foundation for funding a significant portion of the port to Python 3!
|
|
87
|
-
* Artem Kostiuk (postatum) for patch allowing to search for slash character in ElasticSearch since Lucene 4.0.
|
|
88
|
-
* Luis Barrueco (luisbarrueco) for a simple fix regarding updating indexes using multiple backends.
|
|
89
|
-
* Szymon Teżewski (jasisz) for an update to the bounding-box calculation for spatial queries
|
|
90
|
-
* Chris Wilson (qris) and Orlando Fiol (overflow) for an update allowing the use of multiple order_by()
|
|
91
|
-
fields with Whoosh as long as they share a consistent sort direction
|
|
92
|
-
* Steven Skoczen (@skoczen) for an ElasticSearch bug fix
|
|
93
|
-
* @Xaroth for updating the app loader to be compatible with Django 1.7
|
|
94
|
-
* Jaroslav Gorjatsev (jarig) for a bugfix with index_fieldname
|
|
95
|
-
* Dirk Eschler (@deschler) for app loader Django 1.7 compatibility fixes
|
|
96
|
-
* Wictor (wicol) for a patch improving the error message given when model_attr references a non-existent
|
|
97
|
-
field
|
|
98
|
-
* Pierre Dulac (dulaccc) for a patch updating distance filters for ElasticSearch 1.x
|
|
99
|
-
* Andrei Fokau (andreif) for adding support for ``SQ`` in ``SearchQuerySet.narrow()``
|
|
100
|
-
* Phill Tornroth (phill-tornroth) for several patches improving UnifiedIndex and ElasticSearch support
|
|
101
|
-
* Philippe Luickx (philippeluickx) for documenting how to provide backend-specific facet options
|
|
102
|
-
* Felipe Prenholato (@chronossc) for a patch making it easy to exclude documents from indexing using custom logic
|
|
103
|
-
* Alfredo Armanini (@phingage) for a patch fixing compatibility with database API changes in Django 1.8
|
|
104
|
-
* Ben Spaulding (@benspaulding) for many updates for Django 1.8 support
|
|
105
|
-
* Troy Grosfield (@troygrosfield) for fixing the test runner for Django 1.8
|
|
106
|
-
* Ilan Steemers (@Koed00) for fixing Django 1.9 deprecation warnings
|
|
107
|
-
* Ana Carolina (@anacarolinats) and Steve Bussetti (@sbussetti) for adding the ``fuzzy`` operator to
|
|
108
|
-
SearchQuerySet
|
|
109
|
-
* Tadas Dailyda (@skirsdeda) for various patches
|
|
110
|
-
* Craig de Stigter (@craigds) for a patch fixing concurrency issues when building UnifiedIndex
|
|
111
|
-
* Claude Paroz (@claudep) for Django 1.9 support
|
|
112
|
-
* Chris Brooke (@chrisbrooke) for patching around a backwards-incompatible change in ElasticSearch 2
|
|
113
|
-
* Gilad Beeri (@giladbeeri) for adding retries when updating a backend
|
|
114
|
-
* Arjen Verstoep (@terr) for a patch that allows attribute lookups through Django ManyToManyField relationships
|
|
115
|
-
* Tim Babych (@tymofij) for enabling backend-specific parameters in ``.highlight()``
|
|
116
|
-
* Antony Raj (@antonyr) for adding endswith input type and fixing contains input type
|
|
117
|
-
* Morgan Aubert (@ellmetha) for Django 1.10 support
|
|
118
|
-
* João Junior (@joaojunior) and Bruno Marques (@ElSaico) for Elasticsearch 2.x support
|
|
119
|
-
* Alex Tomkins (@tomkins) for various patches
|
|
120
|
-
* Martin Pauly (@mpauly) for Django 2.0 support
|
|
121
|
-
* Ryan Jarvis (@cabalist) for some code cleanup
|
|
122
|
-
* Dulmandakh Sukhbaatar (@dulmandakh) for GitHub Actions support, and flake8, black, isort checks.
|
|
123
|
-
* Deniz Dogan (@denizdogan) for adding support for the ``analyzer`` parameter for the Whoosh backend
|
|
124
|
-
* parruc for basic Whoosh faceting support
|
|
125
|
-
* Jens Kadenbach (audax) for updating and testing Whoosh faceting support
|
|
126
|
-
* Alejandro Sedeño (asedeno) trying the Whoosh faceting thing again
|
|
127
|
-
* Fábio Piovam (fabiopiovam) for date_facet on Solr 6.6+
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
pip
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
Copyright (c) 2009-2013, Daniel Lindsley.
|
|
2
|
-
All rights reserved.
|
|
3
|
-
|
|
4
|
-
Redistribution and use in source and binary forms, with or without modification,
|
|
5
|
-
are permitted provided that the following conditions are met:
|
|
6
|
-
|
|
7
|
-
1. Redistributions of source code must retain the above copyright notice,
|
|
8
|
-
this list of conditions and the following disclaimer.
|
|
9
|
-
|
|
10
|
-
2. Redistributions in binary form must reproduce the above copyright
|
|
11
|
-
notice, this list of conditions and the following disclaimer in the
|
|
12
|
-
documentation and/or other materials provided with the distribution.
|
|
13
|
-
|
|
14
|
-
3. Neither the name of Haystack nor the names of its contributors may be used
|
|
15
|
-
to endorse or promote products derived from this software without
|
|
16
|
-
specific prior written permission.
|
|
17
|
-
|
|
18
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
19
|
-
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
20
|
-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
21
|
-
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
22
|
-
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
23
|
-
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
24
|
-
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
25
|
-
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
26
|
-
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
27
|
-
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
Prior to April 17, 2009, this software was released under the MIT license.
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: django-haystack
|
|
3
|
-
Version: 3.2.1
|
|
4
|
-
Summary: Pluggable search for Django.
|
|
5
|
-
Home-page: http://haystacksearch.org/
|
|
6
|
-
Author: Daniel Lindsley
|
|
7
|
-
Author-email: daniel@toastdriven.com
|
|
8
|
-
Project-URL: Documentation, https://django-haystack.readthedocs.io
|
|
9
|
-
Project-URL: Source, https://github.com/django-haystack/django-haystack
|
|
10
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
11
|
-
Classifier: Environment :: Web Environment
|
|
12
|
-
Classifier: Framework :: Django
|
|
13
|
-
Classifier: Framework :: Django :: 2.2
|
|
14
|
-
Classifier: Framework :: Django :: 3.1
|
|
15
|
-
Classifier: Framework :: Django :: 3.2
|
|
16
|
-
Classifier: Intended Audience :: Developers
|
|
17
|
-
Classifier: License :: OSI Approved :: BSD License
|
|
18
|
-
Classifier: Operating System :: OS Independent
|
|
19
|
-
Classifier: Programming Language :: Python
|
|
20
|
-
Classifier: Programming Language :: Python :: 3
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.6
|
|
22
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
23
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
24
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
25
|
-
Classifier: Topic :: Utilities
|
|
26
|
-
License-File: LICENSE
|
|
27
|
-
License-File: AUTHORS
|
|
28
|
-
Requires-Dist: Django >=2.2
|
|
29
|
-
Provides-Extra: elasticsearch
|
|
30
|
-
Requires-Dist: elasticsearch <8,>=5 ; extra == 'elasticsearch'
|
|
31
|
-
|
|
32
|
-
.. image:: https://github.com/django-haystack/django-haystack/actions/workflows/test.yml/badge.svg
|
|
33
|
-
:target: https://github.com/django-haystack/django-haystack/actions/workflows/test.yml
|
|
34
|
-
.. image:: https://img.shields.io/pypi/v/django-haystack.svg
|
|
35
|
-
:target: https://pypi.python.org/pypi/django-haystack/
|
|
36
|
-
.. image:: https://img.shields.io/pypi/pyversions/django-haystack.svg
|
|
37
|
-
:target: https://pypi.python.org/pypi/django-haystack/
|
|
38
|
-
.. image:: https://img.shields.io/pypi/dm/django-haystack.svg
|
|
39
|
-
:target: https://pypi.python.org/pypi/django-haystack/
|
|
40
|
-
.. image:: https://readthedocs.org/projects/django-haystack/badge/
|
|
41
|
-
:target: https://django-haystack.readthedocs.io/
|
|
42
|
-
.. image:: https://img.shields.io/badge/code%20style-black-000.svg
|
|
43
|
-
:target: https://github.com/psf/black
|
|
44
|
-
.. image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
|
|
45
|
-
:target: https://pycqa.github.io/isort/
|
|
46
|
-
|
|
47
|
-
========
|
|
48
|
-
Haystack
|
|
49
|
-
========
|
|
50
|
-
|
|
51
|
-
:author: Daniel Lindsley
|
|
52
|
-
:date: 2013/07/28
|
|
53
|
-
|
|
54
|
-
Haystack provides modular search for Django. It features a unified, familiar
|
|
55
|
-
API that allows you to plug in different search backends (such as Solr_,
|
|
56
|
-
Elasticsearch_, Whoosh_, Xapian_, etc.) without having to modify your code.
|
|
57
|
-
|
|
58
|
-
.. _Solr: http://lucene.apache.org/solr/
|
|
59
|
-
.. _Elasticsearch: https://www.elastic.co/products/elasticsearch
|
|
60
|
-
.. _Whoosh: https://github.com/mchaput/whoosh/
|
|
61
|
-
.. _Xapian: http://xapian.org/
|
|
62
|
-
|
|
63
|
-
Haystack is BSD licensed, plays nicely with third-party app without needing to
|
|
64
|
-
modify the source and supports advanced features like faceting, More Like This,
|
|
65
|
-
highlighting, spatial search and spelling suggestions.
|
|
66
|
-
|
|
67
|
-
You can find more information at http://haystacksearch.org/.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
Getting Help
|
|
71
|
-
============
|
|
72
|
-
|
|
73
|
-
There is a mailing list (http://groups.google.com/group/django-haystack/)
|
|
74
|
-
available for general discussion and an IRC channel (#haystack on
|
|
75
|
-
irc.freenode.net).
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
Documentation
|
|
79
|
-
=============
|
|
80
|
-
|
|
81
|
-
* Development version: http://docs.haystacksearch.org/
|
|
82
|
-
* v2.8.X: https://django-haystack.readthedocs.io/en/v2.8.1/
|
|
83
|
-
* v2.7.X: https://django-haystack.readthedocs.io/en/v2.7.0/
|
|
84
|
-
* v2.6.X: https://django-haystack.readthedocs.io/en/v2.6.0/
|
|
85
|
-
|
|
86
|
-
See the `changelog <docs/changelog.rst>`_
|
|
87
|
-
|
|
88
|
-
Requirements
|
|
89
|
-
============
|
|
90
|
-
|
|
91
|
-
Haystack has a relatively easily-met set of requirements.
|
|
92
|
-
|
|
93
|
-
* Python 3.6+
|
|
94
|
-
* A supported version of Django: https://www.djangoproject.com/download/#supported-versions
|
|
95
|
-
|
|
96
|
-
Additionally, each backend has its own requirements. You should refer to
|
|
97
|
-
https://django-haystack.readthedocs.io/en/latest/installing_search_engines.html for more
|
|
98
|
-
details.
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
django_haystack-3.2.1.dist-info/AUTHORS,sha256=-qP83VFWUrTglPWF6Evq20NYZFczHBpkvhJzVkDlZas,8312
|
|
2
|
-
django_haystack-3.2.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
|
3
|
-
django_haystack-3.2.1.dist-info/LICENSE,sha256=3Sx8FiBRaVZdKS6RBtnPXyWr5DWBnasBZRS29cfr6yY,1607
|
|
4
|
-
django_haystack-3.2.1.dist-info/METADATA,sha256=zsOhWHg4CiJlx6NreYURaWioi1omH_F6UbfHl9Jt9f4,3779
|
|
5
|
-
django_haystack-3.2.1.dist-info/RECORD,,
|
|
6
|
-
django_haystack-3.2.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
-
django_haystack-3.2.1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
8
|
-
django_haystack-3.2.1.dist-info/top_level.txt,sha256=MzIzV5bHYjAz5eYt06OxWM1qawy39pWK9ZPvm27RKTI,9
|
|
9
|
-
haystack/__init__.py,sha256=qapovFNpOb1Yf0nq8PB_cpB66yKBXsrFR99ZC-iKMOU,2689
|
|
10
|
-
haystack/__pycache__/__init__.cpython-311.pyc,,
|
|
11
|
-
haystack/__pycache__/admin.cpython-311.pyc,,
|
|
12
|
-
haystack/__pycache__/apps.cpython-311.pyc,,
|
|
13
|
-
haystack/__pycache__/constants.cpython-311.pyc,,
|
|
14
|
-
haystack/__pycache__/exceptions.cpython-311.pyc,,
|
|
15
|
-
haystack/__pycache__/fields.cpython-311.pyc,,
|
|
16
|
-
haystack/__pycache__/forms.cpython-311.pyc,,
|
|
17
|
-
haystack/__pycache__/generic_views.cpython-311.pyc,,
|
|
18
|
-
haystack/__pycache__/indexes.cpython-311.pyc,,
|
|
19
|
-
haystack/__pycache__/inputs.cpython-311.pyc,,
|
|
20
|
-
haystack/__pycache__/manager.cpython-311.pyc,,
|
|
21
|
-
haystack/__pycache__/models.cpython-311.pyc,,
|
|
22
|
-
haystack/__pycache__/panels.cpython-311.pyc,,
|
|
23
|
-
haystack/__pycache__/query.cpython-311.pyc,,
|
|
24
|
-
haystack/__pycache__/routers.cpython-311.pyc,,
|
|
25
|
-
haystack/__pycache__/signals.cpython-311.pyc,,
|
|
26
|
-
haystack/__pycache__/urls.cpython-311.pyc,,
|
|
27
|
-
haystack/__pycache__/version.cpython-311.pyc,,
|
|
28
|
-
haystack/__pycache__/views.cpython-311.pyc,,
|
|
29
|
-
haystack/admin.py,sha256=iXH6Dm5K3OcAFZWYkL0katH-2UpDEusJKrtET_CHlpQ,6183
|
|
30
|
-
haystack/apps.py,sha256=BdB4aC-ntDhGa5VwYrMtQ1KOVlZnE9Qkltglv7oSdBA,963
|
|
31
|
-
haystack/backends/__init__.py,sha256=bVqWoh1Oc8kretBjBZlxOEco7Uzg5QLhayYTvhQYJFU,36622
|
|
32
|
-
haystack/backends/__pycache__/__init__.cpython-311.pyc,,
|
|
33
|
-
haystack/backends/__pycache__/elasticsearch2_backend.cpython-311.pyc,,
|
|
34
|
-
haystack/backends/__pycache__/elasticsearch5_backend.cpython-311.pyc,,
|
|
35
|
-
haystack/backends/__pycache__/elasticsearch7_backend.cpython-311.pyc,,
|
|
36
|
-
haystack/backends/__pycache__/elasticsearch_backend.cpython-311.pyc,,
|
|
37
|
-
haystack/backends/__pycache__/simple_backend.cpython-311.pyc,,
|
|
38
|
-
haystack/backends/__pycache__/solr_backend.cpython-311.pyc,,
|
|
39
|
-
haystack/backends/__pycache__/whoosh_backend.cpython-311.pyc,,
|
|
40
|
-
haystack/backends/elasticsearch2_backend.py,sha256=A7of9VL_PIWX2wquPvmc-iuMJI9sK0VtscxGCX6zQ7Q,13882
|
|
41
|
-
haystack/backends/elasticsearch5_backend.py,sha256=vpPoYM3bWJa8CLiCAagogqn7lZNAAPHDr8gpWk6Lnu8,17457
|
|
42
|
-
haystack/backends/elasticsearch7_backend.py,sha256=9XWs35VitrrwSBQbBDShVBGpy1eoTpjg6nGtCs5fDfw,20528
|
|
43
|
-
haystack/backends/elasticsearch_backend.py,sha256=RPfp3W2vFMqA6090FfO0iv5SHE1MGKJYy41EFDEWDwU,39695
|
|
44
|
-
haystack/backends/simple_backend.py,sha256=9BUCecd8pV3DnZX_DTMeVtuSjUz49reqLNm0kxtDvOw,3927
|
|
45
|
-
haystack/backends/solr_backend.py,sha256=JkF5SVNtXoTves6HcKiqyhuTf3G3DGAEAXEs8qNO5D8,35754
|
|
46
|
-
haystack/backends/whoosh_backend.py,sha256=6BcewRoUpSMQOxWEp4c3gKtKs6rpkKqJJXtvhvqxjp4,38346
|
|
47
|
-
haystack/constants.py,sha256=7GzXDQUmvs2vJXfMNhA4KxNC8ZlqcM2zU5Ja6ztK7Ek,1612
|
|
48
|
-
haystack/exceptions.py,sha256=s5v6As8amA_WdBhNooLefsEvP40137Ev73gnwbLoGso,1138
|
|
49
|
-
haystack/fields.py,sha256=6Csn8oCfUyryd64w2gKiP9ZlvdG6XvBpMWF4JkslXpg,15708
|
|
50
|
-
haystack/forms.py,sha256=jkzyhWe5LetMAGSO9T1MOMZEgUZ7pKm84nBW6n0CSKk,3994
|
|
51
|
-
haystack/generic_views.py,sha256=MSB48hnnT2Xk8gjxQmWboxTEevxzqezGIqYyUMgIi10,4035
|
|
52
|
-
haystack/indexes.py,sha256=V8ltof9_twWvCP9f0d45paUZ2J6lXq9ioQm0o9c-nJ4,18702
|
|
53
|
-
haystack/inputs.py,sha256=imA2ScfNfQ391djpvPvw4TZP_Pv2rZUDOnaPTPieNC4,4452
|
|
54
|
-
haystack/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
|
-
haystack/management/__pycache__/__init__.cpython-311.pyc,,
|
|
56
|
-
haystack/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
|
-
haystack/management/commands/__pycache__/__init__.cpython-311.pyc,,
|
|
58
|
-
haystack/management/commands/__pycache__/build_solr_schema.cpython-311.pyc,,
|
|
59
|
-
haystack/management/commands/__pycache__/clear_index.cpython-311.pyc,,
|
|
60
|
-
haystack/management/commands/__pycache__/haystack_info.cpython-311.pyc,,
|
|
61
|
-
haystack/management/commands/__pycache__/rebuild_index.cpython-311.pyc,,
|
|
62
|
-
haystack/management/commands/__pycache__/update_index.cpython-311.pyc,,
|
|
63
|
-
haystack/management/commands/build_solr_schema.py,sha256=oD4XowbDmgizE7djWHnPrIkKNdkuW5yoS9c4ZYZthfw,7236
|
|
64
|
-
haystack/management/commands/clear_index.py,sha256=s-L7yXf5IyRZzXRFQpP7OMZI4IEEwUpoaj4uSOwlefE,2265
|
|
65
|
-
haystack/management/commands/haystack_info.py,sha256=LfN5UeL5OBAd4AQ5zrzbdcsBM3S3R63yPu_XkP140zU,766
|
|
66
|
-
haystack/management/commands/rebuild_index.py,sha256=J-wiZ6AhCuIDmq83-hXnPA16EG2B5wEi22kkvQT8SFE,2177
|
|
67
|
-
haystack/management/commands/update_index.py,sha256=PIvMLJzR16VkEYJPBzDGHTAZgQLN1_OBOWp1vwMIm1s,16129
|
|
68
|
-
haystack/manager.py,sha256=mxIpJDhmLpkK6hMhCpK-FiLyO-hn1Mq4f0inShwe_68,3569
|
|
69
|
-
haystack/models.py,sha256=UjvWBesf2OECuVQ7C_B3wyVz8pC7j6zmBVCKy6PH4T4,8819
|
|
70
|
-
haystack/panels.py,sha256=wtfYNOsGaNTOUMRswaRV8faaE4UKw5eY6mmAavtFt4A,2823
|
|
71
|
-
haystack/query.py,sha256=W58XUNZSI1hzZELUadjPGBHFUrKwPVADfPqdGll557U,26126
|
|
72
|
-
haystack/routers.py,sha256=vCoUf3XhktWW53l67aipQlfkaUVUhrspivWXHyDUeao,272
|
|
73
|
-
haystack/signals.py,sha256=tPELLHsHF1mHA78AYIhn1U3tANWLC4BrfSrayNgPbH8,3054
|
|
74
|
-
haystack/templates/panels/haystack.html,sha256=0dlea0f67ONaBoIVGyi0hepE_Ce0w1h-duVm3V3NcD8,1353
|
|
75
|
-
haystack/templates/search_configuration/schema.xml,sha256=t0LVmKq5nNIuPYbt3030xQWYMV1rd_NRI4rI1hoE_Yc,58455
|
|
76
|
-
haystack/templates/search_configuration/solrconfig.xml,sha256=v5zieZDwjg5gnHNeCikzwK6-8HxtXsB5ZpYXzIdvdLM,57423
|
|
77
|
-
haystack/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
78
|
-
haystack/templatetags/__pycache__/__init__.cpython-311.pyc,,
|
|
79
|
-
haystack/templatetags/__pycache__/highlight.cpython-311.pyc,,
|
|
80
|
-
haystack/templatetags/__pycache__/more_like_this.cpython-311.pyc,,
|
|
81
|
-
haystack/templatetags/highlight.py,sha256=x5asWDgB8HKHTLu14me1G2D1FYg5cWFoQLmiPbePmWY,4320
|
|
82
|
-
haystack/templatetags/more_like_this.py,sha256=3cfA0qpkt5VsMFjsj7sUg7sDEgDw7ODMtkTDu062YjU,3438
|
|
83
|
-
haystack/urls.py,sha256=9X83KVMTiBf-uXW_aXsUONQK14mj_RANcdd4UhnhnH8,132
|
|
84
|
-
haystack/utils/__init__.py,sha256=QpJWvr8J87UBKHJH18sx12TFZ3zIefP66mhH3TSa0g0,2519
|
|
85
|
-
haystack/utils/__pycache__/__init__.cpython-311.pyc,,
|
|
86
|
-
haystack/utils/__pycache__/app_loading.cpython-311.pyc,,
|
|
87
|
-
haystack/utils/__pycache__/geo.cpython-311.pyc,,
|
|
88
|
-
haystack/utils/__pycache__/highlighting.cpython-311.pyc,,
|
|
89
|
-
haystack/utils/__pycache__/loading.cpython-311.pyc,,
|
|
90
|
-
haystack/utils/__pycache__/log.cpython-311.pyc,,
|
|
91
|
-
haystack/utils/app_loading.py,sha256=rbcDNESN78x3HRPVdP5uRR-WkTa5w5lbgucxO1uytaM,1030
|
|
92
|
-
haystack/utils/geo.py,sha256=4OoZp0pvVfcXKy2Q6xk_UxNjqJsCExf5CDZBFunRVhY,2036
|
|
93
|
-
haystack/utils/highlighting.py,sha256=vS2YovJ27qPLQhIOxEmmOwXUqpOG8vCqOiAcK-ZSFXk,5645
|
|
94
|
-
haystack/utils/loading.py,sha256=mh_zttL2W2BHn7vTQB9arHaQSgeMn4CPEcdDFsaDMpI,12818
|
|
95
|
-
haystack/utils/log.py,sha256=qTsLR_vWauLfhZjdgEzqlY3WqhkI4qHvcYVgau9z7yM,468
|
|
96
|
-
haystack/version.py,sha256=70AepeDTySCZqwIgESwm9fNpAAurlRUMCJs8phEMJMM,411
|
|
97
|
-
haystack/views.py,sha256=HYA2-YYtd32l_53ZKv6x7TTX6pdfH6ZulvRe0lamQ2o,6925
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
haystack
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import django
|
|
2
|
-
from django.conf import settings
|
|
3
|
-
from django.core.exceptions import ImproperlyConfigured
|
|
4
|
-
from pkg_resources import DistributionNotFound, get_distribution, parse_version
|
|
5
|
-
|
|
6
|
-
from ..haystack.constants import DEFAULT_ALIAS
|
|
7
|
-
from ..haystack.utils import loading
|
|
8
|
-
|
|
9
|
-
__author__ = "Daniel Lindsley"
|
|
10
|
-
|
|
11
|
-
try:
|
|
12
|
-
pkg_distribution = get_distribution("django-haystack")
|
|
13
|
-
__version__ = pkg_distribution.version
|
|
14
|
-
version_info = pkg_distribution.parsed_version
|
|
15
|
-
except DistributionNotFound:
|
|
16
|
-
__version__ = "0.0.dev0"
|
|
17
|
-
version_info = parse_version(__version__)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if django.VERSION < (3, 2):
|
|
21
|
-
# default_app_config is deprecated since django 3.2.
|
|
22
|
-
default_app_config = "haystack.apps.HaystackConfig"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
# Help people clean up from 1.X.
|
|
26
|
-
if hasattr(settings, "HAYSTACK_SITECONF"):
|
|
27
|
-
raise ImproperlyConfigured(
|
|
28
|
-
"The HAYSTACK_SITECONF setting is no longer used & can be removed."
|
|
29
|
-
)
|
|
30
|
-
if hasattr(settings, "HAYSTACK_SEARCH_ENGINE"):
|
|
31
|
-
raise ImproperlyConfigured(
|
|
32
|
-
"The HAYSTACK_SEARCH_ENGINE setting has been replaced with HAYSTACK_CONNECTIONS."
|
|
33
|
-
)
|
|
34
|
-
if hasattr(settings, "HAYSTACK_ENABLE_REGISTRATIONS"):
|
|
35
|
-
raise ImproperlyConfigured(
|
|
36
|
-
"The HAYSTACK_ENABLE_REGISTRATIONS setting is no longer used & can be removed."
|
|
37
|
-
)
|
|
38
|
-
if hasattr(settings, "HAYSTACK_INCLUDE_SPELLING"):
|
|
39
|
-
raise ImproperlyConfigured(
|
|
40
|
-
"The HAYSTACK_INCLUDE_SPELLING setting is now a per-backend setting"
|
|
41
|
-
" & belongs in HAYSTACK_CONNECTIONS."
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
# Check the 2.X+ bits.
|
|
46
|
-
if not hasattr(settings, "HAYSTACK_CONNECTIONS"):
|
|
47
|
-
raise ImproperlyConfigured("The HAYSTACK_CONNECTIONS setting is required.")
|
|
48
|
-
if DEFAULT_ALIAS not in settings.HAYSTACK_CONNECTIONS:
|
|
49
|
-
raise ImproperlyConfigured(
|
|
50
|
-
"The default alias '%s' must be included in the HAYSTACK_CONNECTIONS setting."
|
|
51
|
-
% DEFAULT_ALIAS
|
|
52
|
-
)
|
|
53
|
-
|
|
54
|
-
# Load the connections.
|
|
55
|
-
connections = loading.ConnectionHandler(settings.HAYSTACK_CONNECTIONS)
|
|
56
|
-
|
|
57
|
-
# Just check HAYSTACK_ROUTERS setting validity, routers will be loaded lazily
|
|
58
|
-
if hasattr(settings, "HAYSTACK_ROUTERS"):
|
|
59
|
-
if not isinstance(settings.HAYSTACK_ROUTERS, (list, tuple)):
|
|
60
|
-
raise ImproperlyConfigured(
|
|
61
|
-
"The HAYSTACK_ROUTERS setting must be either a list or tuple."
|
|
62
|
-
)
|
|
63
|
-
|
|
64
|
-
# Load the router(s).
|
|
65
|
-
connection_router = loading.ConnectionRouter()
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
# Per-request, reset the ghetto query log.
|
|
69
|
-
# Probably not extraordinarily thread-safe but should only matter when
|
|
70
|
-
# DEBUG = True.
|
|
71
|
-
def reset_search_queries(**kwargs):
|
|
72
|
-
for conn in connections.all():
|
|
73
|
-
if conn:
|
|
74
|
-
conn.reset_queries()
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
if settings.DEBUG:
|
|
78
|
-
from django.core import signals as django_signals
|
|
79
|
-
|
|
80
|
-
django_signals.request_started.connect(reset_search_queries)
|
codex/_vendor/haystack/admin.py
DELETED
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
from django.contrib.admin.options import ModelAdmin, csrf_protect_m
|
|
2
|
-
from django.contrib.admin.views.main import SEARCH_VAR, ChangeList
|
|
3
|
-
from django.core.exceptions import PermissionDenied
|
|
4
|
-
from django.core.paginator import InvalidPage, Paginator
|
|
5
|
-
from django.shortcuts import render
|
|
6
|
-
from django.utils.encoding import force_str
|
|
7
|
-
from django.utils.translation import ngettext
|
|
8
|
-
|
|
9
|
-
from ..haystack import connections
|
|
10
|
-
from ..haystack.constants import DEFAULT_ALIAS
|
|
11
|
-
from ..haystack.query import SearchQuerySet
|
|
12
|
-
from ..haystack.utils import get_model_ct_tuple
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class SearchChangeList(ChangeList):
|
|
16
|
-
def __init__(self, **kwargs):
|
|
17
|
-
self.haystack_connection = kwargs.pop("haystack_connection", DEFAULT_ALIAS)
|
|
18
|
-
super().__init__(**kwargs)
|
|
19
|
-
|
|
20
|
-
def get_results(self, request):
|
|
21
|
-
if SEARCH_VAR not in request.GET:
|
|
22
|
-
return super().get_results(request)
|
|
23
|
-
|
|
24
|
-
# Note that pagination is 0-based, not 1-based.
|
|
25
|
-
sqs = (
|
|
26
|
-
SearchQuerySet(self.haystack_connection)
|
|
27
|
-
.models(self.model)
|
|
28
|
-
.auto_query(request.GET[SEARCH_VAR])
|
|
29
|
-
.load_all()
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
paginator = Paginator(sqs, self.list_per_page)
|
|
33
|
-
# Get the number of objects, with admin filters applied.
|
|
34
|
-
result_count = paginator.count
|
|
35
|
-
full_result_count = (
|
|
36
|
-
SearchQuerySet(self.haystack_connection).models(self.model).all().count()
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
can_show_all = result_count <= self.list_max_show_all
|
|
40
|
-
multi_page = result_count > self.list_per_page
|
|
41
|
-
|
|
42
|
-
# Get the list of objects to display on this page.
|
|
43
|
-
try:
|
|
44
|
-
result_list = paginator.page(self.page_num).object_list
|
|
45
|
-
# Grab just the Django models, since that's what everything else is
|
|
46
|
-
# expecting.
|
|
47
|
-
result_list = [result.object for result in result_list]
|
|
48
|
-
except InvalidPage:
|
|
49
|
-
result_list = ()
|
|
50
|
-
|
|
51
|
-
self.result_count = result_count
|
|
52
|
-
self.full_result_count = full_result_count
|
|
53
|
-
self.result_list = result_list
|
|
54
|
-
self.can_show_all = can_show_all
|
|
55
|
-
self.multi_page = multi_page
|
|
56
|
-
self.paginator = paginator
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
class SearchModelAdminMixin:
|
|
60
|
-
# haystack connection to use for searching
|
|
61
|
-
haystack_connection = DEFAULT_ALIAS
|
|
62
|
-
|
|
63
|
-
@csrf_protect_m
|
|
64
|
-
def changelist_view(self, request, extra_context=None):
|
|
65
|
-
if not self.has_change_permission(request, None):
|
|
66
|
-
raise PermissionDenied
|
|
67
|
-
|
|
68
|
-
if SEARCH_VAR not in request.GET:
|
|
69
|
-
# Do the usual song and dance.
|
|
70
|
-
return super().changelist_view(request, extra_context)
|
|
71
|
-
|
|
72
|
-
# Do a search of just this model and populate a Changelist with the
|
|
73
|
-
# returned bits.
|
|
74
|
-
indexed_models = (
|
|
75
|
-
connections[self.haystack_connection]
|
|
76
|
-
.get_unified_index()
|
|
77
|
-
.get_indexed_models()
|
|
78
|
-
)
|
|
79
|
-
|
|
80
|
-
if self.model not in indexed_models:
|
|
81
|
-
# Oops. That model isn't being indexed. Return the usual
|
|
82
|
-
# behavior instead.
|
|
83
|
-
return super().changelist_view(request, extra_context)
|
|
84
|
-
|
|
85
|
-
# So. Much. Boilerplate.
|
|
86
|
-
# Why copy-paste a few lines when you can copy-paste TONS of lines?
|
|
87
|
-
list_display = list(self.list_display)
|
|
88
|
-
|
|
89
|
-
kwargs = {
|
|
90
|
-
"haystack_connection": self.haystack_connection,
|
|
91
|
-
"request": request,
|
|
92
|
-
"model": self.model,
|
|
93
|
-
"list_display": list_display,
|
|
94
|
-
"list_display_links": self.list_display_links,
|
|
95
|
-
"list_filter": self.list_filter,
|
|
96
|
-
"date_hierarchy": self.date_hierarchy,
|
|
97
|
-
"search_fields": self.search_fields,
|
|
98
|
-
"list_select_related": self.list_select_related,
|
|
99
|
-
"list_per_page": self.list_per_page,
|
|
100
|
-
"list_editable": self.list_editable,
|
|
101
|
-
"list_max_show_all": self.list_max_show_all,
|
|
102
|
-
"model_admin": self,
|
|
103
|
-
}
|
|
104
|
-
if hasattr(self, "get_sortable_by"): # Django 2.1+
|
|
105
|
-
kwargs["sortable_by"] = self.get_sortable_by(request)
|
|
106
|
-
changelist = SearchChangeList(**kwargs)
|
|
107
|
-
changelist.formset = None
|
|
108
|
-
media = self.media
|
|
109
|
-
|
|
110
|
-
# Build the action form and populate it with available actions.
|
|
111
|
-
# Check actions to see if any are available on this changelist
|
|
112
|
-
actions = self.get_actions(request)
|
|
113
|
-
if actions:
|
|
114
|
-
action_form = self.action_form(auto_id=None)
|
|
115
|
-
action_form.fields["action"].choices = self.get_action_choices(request)
|
|
116
|
-
else:
|
|
117
|
-
action_form = None
|
|
118
|
-
|
|
119
|
-
selection_note = ngettext(
|
|
120
|
-
"0 of %(count)d selected",
|
|
121
|
-
"of %(count)d selected",
|
|
122
|
-
len(changelist.result_list),
|
|
123
|
-
)
|
|
124
|
-
selection_note_all = ngettext(
|
|
125
|
-
"%(total_count)s selected",
|
|
126
|
-
"All %(total_count)s selected",
|
|
127
|
-
changelist.result_count,
|
|
128
|
-
)
|
|
129
|
-
|
|
130
|
-
context = {
|
|
131
|
-
"module_name": force_str(self.model._meta.verbose_name_plural),
|
|
132
|
-
"selection_note": selection_note % {"count": len(changelist.result_list)},
|
|
133
|
-
"selection_note_all": selection_note_all
|
|
134
|
-
% {"total_count": changelist.result_count},
|
|
135
|
-
"title": changelist.title,
|
|
136
|
-
"is_popup": changelist.is_popup,
|
|
137
|
-
"cl": changelist,
|
|
138
|
-
"media": media,
|
|
139
|
-
"has_add_permission": self.has_add_permission(request),
|
|
140
|
-
"opts": changelist.opts,
|
|
141
|
-
"app_label": self.model._meta.app_label,
|
|
142
|
-
"action_form": action_form,
|
|
143
|
-
"actions_on_top": self.actions_on_top,
|
|
144
|
-
"actions_on_bottom": self.actions_on_bottom,
|
|
145
|
-
"actions_selection_counter": getattr(self, "actions_selection_counter", 0),
|
|
146
|
-
}
|
|
147
|
-
context.update(extra_context or {})
|
|
148
|
-
request.current_app = self.admin_site.name
|
|
149
|
-
app_name, model_name = get_model_ct_tuple(self.model)
|
|
150
|
-
return render(
|
|
151
|
-
request,
|
|
152
|
-
self.change_list_template
|
|
153
|
-
or [
|
|
154
|
-
"admin/%s/%s/change_list.html" % (app_name, model_name),
|
|
155
|
-
"admin/%s/change_list.html" % app_name,
|
|
156
|
-
"admin/change_list.html",
|
|
157
|
-
],
|
|
158
|
-
context,
|
|
159
|
-
)
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
class SearchModelAdmin(SearchModelAdminMixin, ModelAdmin):
|
|
163
|
-
pass
|
codex/_vendor/haystack/apps.py
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
|
|
3
|
-
from django.apps import AppConfig
|
|
4
|
-
from django.conf import settings
|
|
5
|
-
|
|
6
|
-
from ..haystack import connection_router, connections
|
|
7
|
-
from ..haystack.utils import loading
|
|
8
|
-
|
|
9
|
-
class HaystackConfig(AppConfig):
|
|
10
|
-
name = loading.VENDOR_PREFIX + "haystack"
|
|
11
|
-
signal_processor = None
|
|
12
|
-
stream = None
|
|
13
|
-
|
|
14
|
-
def ready(self):
|
|
15
|
-
# Setup default logging.
|
|
16
|
-
log = logging.getLogger("haystack")
|
|
17
|
-
self.stream = logging.StreamHandler()
|
|
18
|
-
self.stream.setLevel(logging.INFO)
|
|
19
|
-
log.addHandler(self.stream)
|
|
20
|
-
|
|
21
|
-
# Setup the signal processor.
|
|
22
|
-
if not self.signal_processor:
|
|
23
|
-
signal_processor_path = getattr(
|
|
24
|
-
settings,
|
|
25
|
-
"HAYSTACK_SIGNAL_PROCESSOR",
|
|
26
|
-
loading.VENDOR_PREFIX + "haystack.signals.BaseSignalProcessor",
|
|
27
|
-
)
|
|
28
|
-
signal_processor_class = loading.import_class(signal_processor_path)
|
|
29
|
-
self.signal_processor = signal_processor_class(
|
|
30
|
-
connections, connection_router
|
|
31
|
-
)
|