codex 1.7.11a0__py3-none-any.whl → 1.7.13__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/choices_to_json.py +1 -1
- codex/choices/reader.py +1 -0
- codex/librarian/bookmark/bookmarkd.py +46 -14
- codex/librarian/bookmark/tasks.py +7 -0
- codex/librarian/bookmark/update.py +1 -22
- codex/librarian/bookmark/user_active.py +37 -0
- codex/migrations/0013_int_issue_count_longer_charfields.py +1 -1
- codex/run.py +1 -1
- codex/serializers/reader.py +1 -0
- codex/serializers/route.py +3 -1
- codex/settings/settings.py +15 -14
- codex/startup.py +1 -2
- codex/static_root/assets/VCheckbox-CmDJN2RH.c0c8660af177.js +1 -0
- codex/static_root/assets/VCheckbox-CmDJN2RH.c0c8660af177.js.br +0 -0
- codex/static_root/assets/VCheckbox-CmDJN2RH.c0c8660af177.js.gz +0 -0
- codex/static_root/assets/VCheckbox-CmDJN2RH.js +1 -0
- codex/static_root/assets/VCheckbox-CmDJN2RH.js.br +0 -0
- codex/static_root/assets/VCheckbox-CmDJN2RH.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-07Vspsxn.377350162ca6.js +1 -0
- codex/static_root/assets/VCheckboxBtn-07Vspsxn.377350162ca6.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-07Vspsxn.377350162ca6.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-07Vspsxn.js +1 -0
- codex/static_root/assets/VCheckboxBtn-07Vspsxn.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-07Vspsxn.js.gz +0 -0
- codex/static_root/assets/VCombobox-CuTDA3lY.b53f8e0b7d58.js +1 -0
- codex/static_root/assets/VCombobox-CuTDA3lY.b53f8e0b7d58.js.br +0 -0
- codex/static_root/assets/VCombobox-CuTDA3lY.b53f8e0b7d58.js.gz +0 -0
- codex/static_root/assets/VCombobox-CuTDA3lY.js +1 -0
- codex/static_root/assets/VCombobox-CuTDA3lY.js.br +0 -0
- codex/static_root/assets/VCombobox-CuTDA3lY.js.gz +0 -0
- codex/static_root/assets/VCombobox-DHFthaP6.942336d23612.css +1 -0
- codex/static_root/assets/VCombobox-DHFthaP6.942336d23612.css.br +0 -0
- codex/static_root/assets/VCombobox-DHFthaP6.942336d23612.css.gz +0 -0
- codex/static_root/assets/VCombobox-DHFthaP6.css +1 -0
- codex/static_root/assets/VCombobox-DHFthaP6.css.br +0 -0
- codex/static_root/assets/VCombobox-DHFthaP6.css.gz +0 -0
- codex/static_root/assets/VDialog-DRj4eBrO.e2ce5d20029b.js +1 -0
- codex/static_root/assets/VDialog-DRj4eBrO.e2ce5d20029b.js.br +0 -0
- codex/static_root/assets/VDialog-DRj4eBrO.e2ce5d20029b.js.gz +0 -0
- codex/static_root/assets/VDialog-DRj4eBrO.js +1 -0
- codex/static_root/assets/VDialog-DRj4eBrO.js.br +0 -0
- codex/static_root/assets/VDialog-DRj4eBrO.js.gz +0 -0
- codex/static_root/assets/VDivider-D1t2hkjV.a9cd2d5b286a.js +1 -0
- codex/static_root/assets/VDivider-D1t2hkjV.a9cd2d5b286a.js.br +0 -0
- codex/static_root/assets/VDivider-D1t2hkjV.a9cd2d5b286a.js.gz +0 -0
- codex/static_root/assets/VDivider-D1t2hkjV.js +1 -0
- codex/static_root/assets/VDivider-D1t2hkjV.js.br +0 -0
- codex/static_root/assets/VDivider-D1t2hkjV.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-B-5dXRRB.b71e928c960a.js +1 -0
- codex/static_root/assets/VExpansionPanels-B-5dXRRB.b71e928c960a.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-B-5dXRRB.b71e928c960a.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-B-5dXRRB.js +1 -0
- codex/static_root/assets/VExpansionPanels-B-5dXRRB.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-B-5dXRRB.js.gz +0 -0
- codex/static_root/assets/VForm-Be9DdO0x.0b54c0d9e7ff.js +1 -0
- codex/static_root/assets/VForm-Be9DdO0x.0b54c0d9e7ff.js.br +0 -0
- codex/static_root/assets/VForm-Be9DdO0x.0b54c0d9e7ff.js.gz +0 -0
- codex/static_root/assets/VForm-Be9DdO0x.js +1 -0
- codex/static_root/assets/VForm-Be9DdO0x.js.br +0 -0
- codex/static_root/assets/VForm-Be9DdO0x.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-_mPqHM3O.41b7c1801cfc.js +1 -0
- codex/static_root/assets/VRadioGroup-_mPqHM3O.41b7c1801cfc.js.br +0 -0
- codex/static_root/assets/VRadioGroup-_mPqHM3O.41b7c1801cfc.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-_mPqHM3O.js +1 -0
- codex/static_root/assets/VRadioGroup-_mPqHM3O.js.br +0 -0
- codex/static_root/assets/VRadioGroup-_mPqHM3O.js.gz +0 -0
- codex/static_root/assets/VSelect-BbT1aJkP.ab9bbb187356.js +1 -0
- codex/static_root/assets/VSelect-BbT1aJkP.ab9bbb187356.js.br +0 -0
- codex/static_root/assets/VSelect-BbT1aJkP.ab9bbb187356.js.gz +0 -0
- codex/static_root/assets/VSelect-BbT1aJkP.js +1 -0
- codex/static_root/assets/VSelect-BbT1aJkP.js.br +0 -0
- codex/static_root/assets/VSelect-BbT1aJkP.js.gz +0 -0
- codex/static_root/assets/{VSelect-CP_CVb8s.6309f7bf17bb.css → VSelect-CKXqRkBF.a8be1e193eba.css} +1 -1
- codex/static_root/assets/VSelect-CKXqRkBF.a8be1e193eba.css.br +0 -0
- codex/static_root/assets/VSelect-CKXqRkBF.a8be1e193eba.css.gz +0 -0
- codex/static_root/assets/{VSelect-CP_CVb8s.css → VSelect-CKXqRkBF.css} +1 -1
- codex/static_root/assets/VSelect-CKXqRkBF.css.br +0 -0
- codex/static_root/assets/VSelect-CKXqRkBF.css.gz +0 -0
- codex/static_root/assets/VSelectionControl-DbdMme4i.c547026ebdce.js +1 -0
- codex/static_root/assets/VSelectionControl-DbdMme4i.c547026ebdce.js.br +0 -0
- codex/static_root/assets/VSelectionControl-DbdMme4i.c547026ebdce.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-DbdMme4i.js +1 -0
- codex/static_root/assets/VSelectionControl-DbdMme4i.js.br +0 -0
- codex/static_root/assets/VSelectionControl-DbdMme4i.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-RqBzwjYi.css +1 -0
- codex/static_root/assets/VSelectionControl-RqBzwjYi.css.br +0 -0
- codex/static_root/assets/VSelectionControl-RqBzwjYi.css.gz +0 -0
- codex/static_root/assets/VSelectionControl-RqBzwjYi.ee7425525e63.css +1 -0
- codex/static_root/assets/VSelectionControl-RqBzwjYi.ee7425525e63.css.br +0 -0
- codex/static_root/assets/VSelectionControl-RqBzwjYi.ee7425525e63.css.gz +0 -0
- codex/static_root/assets/VTable-C7Pj2AU0.9358b74f1ec2.js +1 -0
- codex/static_root/assets/VTable-C7Pj2AU0.9358b74f1ec2.js.br +0 -0
- codex/static_root/assets/VTable-C7Pj2AU0.9358b74f1ec2.js.gz +0 -0
- codex/static_root/assets/VTable-C7Pj2AU0.js +1 -0
- codex/static_root/assets/VTable-C7Pj2AU0.js.br +0 -0
- codex/static_root/assets/VTable-C7Pj2AU0.js.gz +0 -0
- codex/static_root/assets/{VTable-BnxSZ_W5.c36f0a6a30cf.css → VTable-CHRVGI94.0a75643f6486.css} +1 -1
- codex/static_root/assets/VTable-CHRVGI94.0a75643f6486.css.br +0 -0
- codex/static_root/assets/VTable-CHRVGI94.0a75643f6486.css.gz +0 -0
- codex/static_root/assets/{VTable-BnxSZ_W5.css → VTable-CHRVGI94.css} +1 -1
- codex/static_root/assets/VTable-CHRVGI94.css.br +0 -0
- codex/static_root/assets/VTable-CHRVGI94.css.gz +0 -0
- codex/static_root/assets/VWindowItem-B9xi23cd.ee96259ae03d.js +1 -0
- codex/static_root/assets/VWindowItem-B9xi23cd.ee96259ae03d.js.br +0 -0
- codex/static_root/assets/VWindowItem-B9xi23cd.ee96259ae03d.js.gz +0 -0
- codex/static_root/assets/VWindowItem-B9xi23cd.js +1 -0
- codex/static_root/assets/VWindowItem-B9xi23cd.js.br +0 -0
- codex/static_root/assets/VWindowItem-B9xi23cd.js.gz +0 -0
- codex/static_root/assets/{admin-Bxwc8451.b2a8c85c5c82.js → admin-C78J3iIT.e0499821711c.js} +1 -1
- codex/static_root/assets/admin-C78J3iIT.e0499821711c.js.br +0 -0
- codex/static_root/assets/admin-C78J3iIT.e0499821711c.js.gz +0 -0
- codex/static_root/assets/{admin-Bxwc8451.js → admin-C78J3iIT.js} +1 -1
- codex/static_root/assets/admin-C78J3iIT.js.br +0 -0
- codex/static_root/assets/admin-C78J3iIT.js.gz +0 -0
- codex/static_root/assets/admin-DycvhYet.33740bd797c9.js +1 -0
- codex/static_root/assets/admin-DycvhYet.33740bd797c9.js.br +0 -0
- codex/static_root/assets/admin-DycvhYet.33740bd797c9.js.gz +0 -0
- codex/static_root/assets/admin-DycvhYet.js +1 -0
- codex/static_root/assets/admin-DycvhYet.js.br +0 -0
- codex/static_root/assets/admin-DycvhYet.js.gz +0 -0
- codex/static_root/assets/{admin-C3iCIUnm.06cb213f624d.css → admin-klMr_GZK.3784e4f1d624.css} +1 -1
- codex/static_root/assets/admin-klMr_GZK.3784e4f1d624.css.br +0 -0
- codex/static_root/assets/admin-klMr_GZK.3784e4f1d624.css.gz +0 -0
- codex/static_root/assets/{admin-C3iCIUnm.css → admin-klMr_GZK.css} +1 -1
- codex/static_root/assets/admin-klMr_GZK.css.br +0 -0
- codex/static_root/assets/admin-klMr_GZK.css.gz +0 -0
- codex/static_root/assets/admin-menu-g8qk-zrV.945e67b971e8.js +1 -0
- codex/static_root/assets/admin-menu-g8qk-zrV.945e67b971e8.js.br +0 -0
- codex/static_root/assets/admin-menu-g8qk-zrV.945e67b971e8.js.gz +0 -0
- codex/static_root/assets/admin-menu-g8qk-zrV.js +1 -0
- codex/static_root/assets/admin-menu-g8qk-zrV.js.br +0 -0
- codex/static_root/assets/admin-menu-g8qk-zrV.js.gz +0 -0
- codex/static_root/assets/{admin-settings-button-progress-CLrIYn4d.cec2cfd322a1.js → admin-settings-button-progress-CPzM-FJJ.1d6d002ada95.js} +1 -1
- codex/static_root/assets/admin-settings-button-progress-CPzM-FJJ.1d6d002ada95.js.br +0 -0
- codex/static_root/assets/admin-settings-button-progress-CPzM-FJJ.1d6d002ada95.js.gz +0 -0
- codex/static_root/assets/{admin-settings-button-progress-CLrIYn4d.js → admin-settings-button-progress-CPzM-FJJ.js} +1 -1
- codex/static_root/assets/admin-settings-button-progress-CPzM-FJJ.js.br +0 -0
- codex/static_root/assets/admin-settings-button-progress-CPzM-FJJ.js.gz +0 -0
- codex/static_root/assets/browser-DJgssiJu.018d043b36a0.js +1 -0
- codex/static_root/assets/browser-DJgssiJu.018d043b36a0.js.br +0 -0
- codex/static_root/assets/browser-DJgssiJu.018d043b36a0.js.gz +0 -0
- codex/static_root/assets/browser-DJgssiJu.js +1 -0
- codex/static_root/assets/browser-DJgssiJu.js.br +0 -0
- codex/static_root/assets/browser-DJgssiJu.js.gz +0 -0
- codex/static_root/assets/{browser-Bf8JG2CE.3af978c1f766.css → browser-sNm790x9.305a6a4f38fd.css} +1 -1
- codex/static_root/assets/browser-sNm790x9.305a6a4f38fd.css.br +0 -0
- codex/static_root/assets/browser-sNm790x9.305a6a4f38fd.css.gz +0 -0
- codex/static_root/assets/{browser-Bf8JG2CE.css → browser-sNm790x9.css} +1 -1
- codex/static_root/assets/browser-sNm790x9.css.br +0 -0
- codex/static_root/assets/browser-sNm790x9.css.gz +0 -0
- codex/static_root/assets/{change-password-dialog-Bw5_buVm.d199b40591de.js → change-password-dialog-CNWUpsff.2a6249951bb6.js} +1 -1
- codex/static_root/assets/change-password-dialog-CNWUpsff.2a6249951bb6.js.br +0 -0
- codex/static_root/assets/change-password-dialog-CNWUpsff.2a6249951bb6.js.gz +0 -0
- codex/static_root/assets/{change-password-dialog-Bw5_buVm.js → change-password-dialog-CNWUpsff.js} +1 -1
- codex/static_root/assets/change-password-dialog-CNWUpsff.js.br +0 -0
- codex/static_root/assets/change-password-dialog-CNWUpsff.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-B4fmqtXn.d78277f0b265.js +1 -0
- codex/static_root/assets/confirm-dialog-B4fmqtXn.d78277f0b265.js.br +0 -0
- codex/static_root/assets/confirm-dialog-B4fmqtXn.d78277f0b265.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-B4fmqtXn.js +1 -0
- codex/static_root/assets/confirm-dialog-B4fmqtXn.js.br +0 -0
- codex/static_root/assets/confirm-dialog-B4fmqtXn.js.gz +0 -0
- codex/static_root/assets/datetime-column-BC6Dncpu.cdbf0b2cdc9a.js +1 -0
- codex/static_root/assets/datetime-column-BC6Dncpu.cdbf0b2cdc9a.js.br +0 -0
- codex/static_root/assets/datetime-column-BC6Dncpu.cdbf0b2cdc9a.js.gz +0 -0
- codex/static_root/assets/datetime-column-BC6Dncpu.js +1 -0
- codex/static_root/assets/datetime-column-BC6Dncpu.js.br +0 -0
- codex/static_root/assets/datetime-column-BC6Dncpu.js.gz +0 -0
- codex/static_root/assets/filter-wbh_0cB-.a2b2422906d8.js +1 -0
- codex/static_root/assets/filter-wbh_0cB-.a2b2422906d8.js.br +0 -0
- codex/static_root/assets/filter-wbh_0cB-.a2b2422906d8.js.gz +0 -0
- codex/static_root/assets/filter-wbh_0cB-.js +1 -0
- codex/static_root/assets/filter-wbh_0cB-.js.br +0 -0
- codex/static_root/assets/filter-wbh_0cB-.js.gz +0 -0
- codex/static_root/assets/{flag-tab-Bfd3wqbW.eb77780e8a45.js → flag-tab-BhehN8hQ.584e909ecdd6.js} +1 -1
- codex/static_root/assets/flag-tab-BhehN8hQ.584e909ecdd6.js.br +0 -0
- codex/static_root/assets/flag-tab-BhehN8hQ.584e909ecdd6.js.gz +0 -0
- codex/static_root/assets/{flag-tab-Bfd3wqbW.js → flag-tab-BhehN8hQ.js} +1 -1
- codex/static_root/assets/flag-tab-BhehN8hQ.js.br +0 -0
- codex/static_root/assets/flag-tab-BhehN8hQ.js.gz +0 -0
- codex/static_root/assets/forwardRefs-CXZy2GSt.0ea45a864dd0.css +1 -0
- codex/static_root/assets/forwardRefs-CXZy2GSt.0ea45a864dd0.css.br +0 -0
- codex/static_root/assets/forwardRefs-CXZy2GSt.0ea45a864dd0.css.gz +0 -0
- codex/static_root/assets/forwardRefs-CXZy2GSt.css +1 -0
- codex/static_root/assets/forwardRefs-CXZy2GSt.css.br +0 -0
- codex/static_root/assets/forwardRefs-CXZy2GSt.css.gz +0 -0
- codex/static_root/assets/forwardRefs-DG6cgrKs.63214695fc2a.js +1 -0
- codex/static_root/assets/forwardRefs-DG6cgrKs.63214695fc2a.js.br +0 -0
- codex/static_root/assets/forwardRefs-DG6cgrKs.63214695fc2a.js.gz +0 -0
- codex/static_root/assets/forwardRefs-DG6cgrKs.js +1 -0
- codex/static_root/assets/forwardRefs-DG6cgrKs.js.br +0 -0
- codex/static_root/assets/forwardRefs-DG6cgrKs.js.gz +0 -0
- codex/static_root/assets/group-tab-BZExFXC-.e99510b0aa5e.js +1 -0
- codex/static_root/assets/group-tab-BZExFXC-.e99510b0aa5e.js.br +0 -0
- codex/static_root/assets/group-tab-BZExFXC-.e99510b0aa5e.js.gz +0 -0
- codex/static_root/assets/group-tab-BZExFXC-.js +1 -0
- codex/static_root/assets/group-tab-BZExFXC-.js.br +0 -0
- codex/static_root/assets/group-tab-BZExFXC-.js.gz +0 -0
- codex/static_root/assets/group-tab-Bi681uR0.3246ac0f7cec.css +1 -0
- codex/static_root/assets/group-tab-Bi681uR0.3246ac0f7cec.css.br +0 -0
- codex/static_root/assets/group-tab-Bi681uR0.3246ac0f7cec.css.gz +0 -0
- codex/static_root/assets/group-tab-Bi681uR0.css +1 -0
- codex/static_root/assets/group-tab-Bi681uR0.css.br +0 -0
- codex/static_root/assets/group-tab-Bi681uR0.css.gz +0 -0
- codex/static_root/assets/http-error-BHy1v31U.516903532e16.js +1 -0
- codex/static_root/assets/http-error-BHy1v31U.516903532e16.js.br +0 -0
- codex/static_root/assets/http-error-BHy1v31U.516903532e16.js.gz +0 -0
- codex/static_root/assets/http-error-BHy1v31U.js +1 -0
- codex/static_root/assets/http-error-BHy1v31U.js.br +0 -0
- codex/static_root/assets/http-error-BHy1v31U.js.gz +0 -0
- codex/static_root/assets/index-BxnlX5gb.b6443a0b48e3.js +1 -0
- codex/static_root/assets/index-BxnlX5gb.b6443a0b48e3.js.br +0 -0
- codex/static_root/assets/index-BxnlX5gb.b6443a0b48e3.js.gz +0 -0
- codex/static_root/assets/index-BxnlX5gb.js +1 -0
- codex/static_root/assets/index-BxnlX5gb.js.br +0 -0
- codex/static_root/assets/index-BxnlX5gb.js.gz +0 -0
- codex/static_root/assets/index-Czf-fUM7.50a7466d956f.css +1 -0
- codex/static_root/assets/index-Czf-fUM7.50a7466d956f.css.br +3 -0
- codex/static_root/assets/index-Czf-fUM7.50a7466d956f.css.gz +0 -0
- codex/static_root/assets/index-Czf-fUM7.css +1 -0
- codex/static_root/assets/index-Czf-fUM7.css.br +3 -0
- codex/static_root/assets/index-Czf-fUM7.css.gz +0 -0
- codex/static_root/assets/library-tab-Cq-D776f.89f410e10a27.js +1 -0
- codex/static_root/assets/library-tab-Cq-D776f.89f410e10a27.js.br +0 -0
- codex/static_root/assets/library-tab-Cq-D776f.89f410e10a27.js.gz +0 -0
- codex/static_root/assets/library-tab-Cq-D776f.js +1 -0
- codex/static_root/assets/library-tab-Cq-D776f.js.br +0 -0
- codex/static_root/assets/library-tab-Cq-D776f.js.gz +0 -0
- codex/static_root/assets/main-NV7Sm4nK.ef4ca8f0fd9f.js +39 -0
- codex/static_root/assets/main-NV7Sm4nK.ef4ca8f0fd9f.js.br +0 -0
- codex/static_root/assets/main-NV7Sm4nK.ef4ca8f0fd9f.js.gz +0 -0
- codex/static_root/assets/main-NV7Sm4nK.js +39 -0
- codex/static_root/assets/main-NV7Sm4nK.js.br +0 -0
- codex/static_root/assets/main-NV7Sm4nK.js.gz +0 -0
- codex/static_root/assets/{main-K8cER0IH.d529e8b3f52a.css → main-Of3aYkZ7.91c75c4fbaa6.css} +1 -1
- codex/static_root/assets/main-Of3aYkZ7.91c75c4fbaa6.css.br +0 -0
- codex/static_root/assets/{main-K8cER0IH.d529e8b3f52a.css.gz → main-Of3aYkZ7.91c75c4fbaa6.css.gz} +0 -0
- codex/static_root/assets/{main-K8cER0IH.css → main-Of3aYkZ7.css} +1 -1
- codex/static_root/assets/main-Of3aYkZ7.css.br +0 -0
- codex/static_root/assets/{main-K8cER0IH.css.gz → main-Of3aYkZ7.css.gz} +0 -0
- codex/static_root/assets/pager-full-pdf-DOYtfHYl.55ef88bc32dd.js +1 -0
- codex/static_root/assets/pager-full-pdf-DOYtfHYl.55ef88bc32dd.js.br +0 -0
- codex/static_root/assets/pager-full-pdf-DOYtfHYl.55ef88bc32dd.js.gz +0 -0
- codex/static_root/assets/pager-full-pdf-DOYtfHYl.js +1 -0
- codex/static_root/assets/pager-full-pdf-DOYtfHYl.js.br +0 -0
- codex/static_root/assets/pager-full-pdf-DOYtfHYl.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-BpWqCTpI.eae1ff66607a.js +1 -0
- codex/static_root/assets/pagination-toolbar-BpWqCTpI.eae1ff66607a.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-BpWqCTpI.eae1ff66607a.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-BpWqCTpI.js +1 -0
- codex/static_root/assets/pagination-toolbar-BpWqCTpI.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-BpWqCTpI.js.gz +0 -0
- codex/static_root/assets/{pagination-toolbar-CzT9Hc3f.487e647604e2.css → pagination-toolbar-aHRrdz48.2cbd38f9256c.css} +1 -1
- codex/static_root/assets/pagination-toolbar-aHRrdz48.2cbd38f9256c.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-aHRrdz48.2cbd38f9256c.css.gz +0 -0
- codex/static_root/assets/{pagination-toolbar-CzT9Hc3f.css → pagination-toolbar-aHRrdz48.css} +1 -1
- codex/static_root/assets/pagination-toolbar-aHRrdz48.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-aHRrdz48.css.gz +0 -0
- codex/static_root/assets/{pdf-doc-CW06S-ga.e7c567b9d4cd.js → pdf-doc-DAUp5U7y.821d344d6401.js} +1 -1
- codex/static_root/assets/pdf-doc-DAUp5U7y.821d344d6401.js.br +0 -0
- codex/static_root/assets/pdf-doc-DAUp5U7y.821d344d6401.js.gz +0 -0
- codex/static_root/assets/{pdf-doc-CW06S-ga.js → pdf-doc-DAUp5U7y.js} +1 -1
- codex/static_root/assets/pdf-doc-DAUp5U7y.js.br +0 -0
- codex/static_root/assets/pdf-doc-DAUp5U7y.js.gz +0 -0
- codex/static_root/assets/reader-BjIgRfH2.e9fae80f3d09.js +2 -0
- codex/static_root/assets/reader-BjIgRfH2.e9fae80f3d09.js.br +0 -0
- codex/static_root/assets/reader-BjIgRfH2.e9fae80f3d09.js.gz +0 -0
- codex/static_root/assets/reader-BjIgRfH2.js +2 -0
- codex/static_root/assets/reader-BjIgRfH2.js.br +0 -0
- codex/static_root/assets/reader-BjIgRfH2.js.gz +0 -0
- codex/static_root/assets/reader-D7Bx0Vcv.34af07084fcb.css +1 -0
- codex/static_root/assets/reader-D7Bx0Vcv.34af07084fcb.css.br +0 -0
- codex/static_root/assets/reader-D7Bx0Vcv.34af07084fcb.css.gz +0 -0
- codex/static_root/assets/reader-D7Bx0Vcv.css +1 -0
- codex/static_root/assets/reader-D7Bx0Vcv.css.br +0 -0
- codex/static_root/assets/reader-D7Bx0Vcv.css.gz +0 -0
- codex/static_root/assets/relation-chips-Bp-GmsDz.fdd18ac6b6f7.js +1 -0
- codex/static_root/assets/relation-chips-Bp-GmsDz.fdd18ac6b6f7.js.br +0 -0
- codex/static_root/assets/relation-chips-Bp-GmsDz.fdd18ac6b6f7.js.gz +0 -0
- codex/static_root/assets/relation-chips-Bp-GmsDz.js +1 -0
- codex/static_root/assets/relation-chips-Bp-GmsDz.js.br +0 -0
- codex/static_root/assets/relation-chips-Bp-GmsDz.js.gz +0 -0
- codex/static_root/assets/{relation-chips-eQkZvJcT.6b52d3f66aed.css → relation-chips-DvAOMwcd.css} +1 -1
- codex/static_root/assets/relation-chips-DvAOMwcd.css.br +0 -0
- codex/static_root/assets/relation-chips-DvAOMwcd.css.gz +0 -0
- codex/static_root/assets/{relation-chips-eQkZvJcT.css → relation-chips-DvAOMwcd.ebc505834f81.css} +1 -1
- codex/static_root/assets/relation-chips-DvAOMwcd.ebc505834f81.css.br +0 -0
- codex/static_root/assets/relation-chips-DvAOMwcd.ebc505834f81.css.gz +0 -0
- codex/static_root/assets/settings-drawer-ynpXH44c.ee12b51a7b5d.js +2 -0
- codex/static_root/assets/settings-drawer-ynpXH44c.ee12b51a7b5d.js.br +0 -0
- codex/static_root/assets/settings-drawer-ynpXH44c.ee12b51a7b5d.js.gz +0 -0
- codex/static_root/assets/settings-drawer-ynpXH44c.js +2 -0
- codex/static_root/assets/settings-drawer-ynpXH44c.js.br +0 -0
- codex/static_root/assets/settings-drawer-ynpXH44c.js.gz +0 -0
- codex/static_root/assets/{ssrBoot-B6yWBylJ.27fba7483f5d.js → ssrBoot-CTyNesCO.03ec3bf85a27.js} +1 -1
- codex/static_root/assets/ssrBoot-CTyNesCO.03ec3bf85a27.js.br +0 -0
- codex/static_root/assets/ssrBoot-CTyNesCO.03ec3bf85a27.js.gz +0 -0
- codex/static_root/assets/{ssrBoot-B6yWBylJ.js → ssrBoot-CTyNesCO.js} +1 -1
- codex/static_root/assets/ssrBoot-CTyNesCO.js.br +0 -0
- codex/static_root/assets/ssrBoot-CTyNesCO.js.gz +0 -0
- codex/static_root/assets/{stats-tab-B6L711cO.b6a42655cd70.css → stats-tab-CGY8r-es.b06c55bdaeaa.css} +1 -1
- codex/static_root/assets/stats-tab-CGY8r-es.b06c55bdaeaa.css.br +0 -0
- codex/static_root/assets/stats-tab-CGY8r-es.b06c55bdaeaa.css.gz +0 -0
- codex/static_root/assets/{stats-tab-B6L711cO.css → stats-tab-CGY8r-es.css} +1 -1
- codex/static_root/assets/stats-tab-CGY8r-es.css.br +0 -0
- codex/static_root/assets/stats-tab-CGY8r-es.css.gz +0 -0
- codex/static_root/assets/{stats-tab-DC24C65C.58280bd367e1.js → stats-tab-ZfoK3F_k.7565c9bbd336.js} +1 -1
- codex/static_root/assets/stats-tab-ZfoK3F_k.7565c9bbd336.js.br +0 -0
- codex/static_root/assets/stats-tab-ZfoK3F_k.7565c9bbd336.js.gz +0 -0
- codex/static_root/assets/{stats-tab-DC24C65C.js → stats-tab-ZfoK3F_k.js} +1 -1
- codex/static_root/assets/stats-tab-ZfoK3F_k.js.br +0 -0
- codex/static_root/assets/stats-tab-ZfoK3F_k.js.gz +0 -0
- codex/static_root/assets/{task-tab-DI9bXb-m.52aad0736a2b.js → task-tab-DNGSwaO3.273261947a02.js} +1 -1
- codex/static_root/assets/task-tab-DNGSwaO3.273261947a02.js.br +0 -0
- codex/static_root/assets/task-tab-DNGSwaO3.273261947a02.js.gz +0 -0
- codex/static_root/assets/{task-tab-DI9bXb-m.js → task-tab-DNGSwaO3.js} +1 -1
- codex/static_root/assets/task-tab-DNGSwaO3.js.br +0 -0
- codex/static_root/assets/task-tab-DNGSwaO3.js.gz +0 -0
- codex/static_root/assets/unauthorized-DE63n2Pi.b0357009b13d.css +1 -0
- codex/static_root/assets/unauthorized-DE63n2Pi.b0357009b13d.css.br +0 -0
- codex/static_root/assets/unauthorized-DE63n2Pi.b0357009b13d.css.gz +0 -0
- codex/static_root/assets/unauthorized-DE63n2Pi.css +1 -0
- codex/static_root/assets/unauthorized-DE63n2Pi.css.br +0 -0
- codex/static_root/assets/unauthorized-DE63n2Pi.css.gz +0 -0
- codex/static_root/assets/unauthorized-bi5K10vQ.32373df36436.js +1 -0
- codex/static_root/assets/unauthorized-bi5K10vQ.32373df36436.js.br +0 -0
- codex/static_root/assets/unauthorized-bi5K10vQ.32373df36436.js.gz +0 -0
- codex/static_root/assets/unauthorized-bi5K10vQ.js +1 -0
- codex/static_root/assets/unauthorized-bi5K10vQ.js.br +0 -0
- codex/static_root/assets/unauthorized-bi5K10vQ.js.gz +0 -0
- codex/static_root/assets/{user-tab-B7e9oz0-.03fd3875c9e3.js → user-tab-BASy3q9X.3a7f9fc383e1.js} +1 -1
- codex/static_root/assets/user-tab-BASy3q9X.3a7f9fc383e1.js.br +0 -0
- codex/static_root/assets/user-tab-BASy3q9X.3a7f9fc383e1.js.gz +0 -0
- codex/static_root/assets/{user-tab-B7e9oz0-.js → user-tab-BASy3q9X.js} +1 -1
- codex/static_root/assets/user-tab-BASy3q9X.js.br +0 -0
- codex/static_root/assets/user-tab-BASy3q9X.js.gz +0 -0
- codex/static_root/manifest.3057b90c8c8c.json +757 -0
- codex/static_root/manifest.3057b90c8c8c.json.br +0 -0
- codex/static_root/manifest.3057b90c8c8c.json.gz +0 -0
- codex/static_root/manifest.json +348 -348
- codex/static_root/manifest.json.br +0 -0
- codex/static_root/manifest.json.gz +0 -0
- codex/static_root/staticfiles.json +1 -1
- codex/views/browser/bookmark.py +1 -1
- codex/views/browser/breadcrumbs.py +8 -3
- codex/views/browser/browser.py +1 -1
- codex/views/browser/filters/search/parse.py +1 -1
- codex/views/browser/paginate.py +1 -1
- codex/views/const.py +0 -1
- codex/views/download.py +1 -0
- codex/views/frontend.py +3 -1
- codex/views/mixins.py +13 -0
- codex/views/opds/v1/feed.py +4 -3
- codex/views/opds/v2/feed.py +4 -2
- codex/views/reader/books.py +1 -1
- codex/views/util.py +10 -11
- {codex-1.7.11a0.dist-info → codex-1.7.13.dist-info}/METADATA +8 -5
- {codex-1.7.11a0.dist-info → codex-1.7.13.dist-info}/RECORD +361 -360
- {codex-1.7.11a0.dist-info → codex-1.7.13.dist-info}/WHEEL +1 -1
- codex/static_root/assets/VCheckbox-t1haz9-P.38cb3995b2f3.js +0 -1
- codex/static_root/assets/VCheckbox-t1haz9-P.38cb3995b2f3.js.br +0 -0
- codex/static_root/assets/VCheckbox-t1haz9-P.38cb3995b2f3.js.gz +0 -0
- codex/static_root/assets/VCheckbox-t1haz9-P.js +0 -1
- codex/static_root/assets/VCheckbox-t1haz9-P.js.br +0 -0
- codex/static_root/assets/VCheckbox-t1haz9-P.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-1PexCc2F.ac78c4bfe6bd.js +0 -1
- codex/static_root/assets/VCheckboxBtn-1PexCc2F.ac78c4bfe6bd.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-1PexCc2F.ac78c4bfe6bd.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-1PexCc2F.js +0 -1
- codex/static_root/assets/VCheckboxBtn-1PexCc2F.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-1PexCc2F.js.gz +0 -0
- codex/static_root/assets/VCombobox-BQHELb_o.9f25a34994e2.css +0 -1
- codex/static_root/assets/VCombobox-BQHELb_o.9f25a34994e2.css.br +0 -0
- codex/static_root/assets/VCombobox-BQHELb_o.9f25a34994e2.css.gz +0 -0
- codex/static_root/assets/VCombobox-BQHELb_o.css +0 -1
- codex/static_root/assets/VCombobox-BQHELb_o.css.br +0 -0
- codex/static_root/assets/VCombobox-BQHELb_o.css.gz +0 -0
- codex/static_root/assets/VCombobox-DpadV2-4.ea605785117d.js +0 -1
- codex/static_root/assets/VCombobox-DpadV2-4.ea605785117d.js.br +0 -0
- codex/static_root/assets/VCombobox-DpadV2-4.ea605785117d.js.gz +0 -0
- codex/static_root/assets/VCombobox-DpadV2-4.js +0 -1
- codex/static_root/assets/VCombobox-DpadV2-4.js.br +0 -0
- codex/static_root/assets/VCombobox-DpadV2-4.js.gz +0 -0
- codex/static_root/assets/VDialog-BR4MrJeK.a2c876dbfac0.js +0 -1
- codex/static_root/assets/VDialog-BR4MrJeK.a2c876dbfac0.js.br +0 -0
- codex/static_root/assets/VDialog-BR4MrJeK.a2c876dbfac0.js.gz +0 -0
- codex/static_root/assets/VDialog-BR4MrJeK.js +0 -1
- codex/static_root/assets/VDialog-BR4MrJeK.js.br +0 -0
- codex/static_root/assets/VDialog-BR4MrJeK.js.gz +0 -0
- codex/static_root/assets/VDivider-CGYMLgJf.fbcb910c5e2b.js +0 -1
- codex/static_root/assets/VDivider-CGYMLgJf.fbcb910c5e2b.js.br +0 -0
- codex/static_root/assets/VDivider-CGYMLgJf.fbcb910c5e2b.js.gz +0 -0
- codex/static_root/assets/VDivider-CGYMLgJf.js +0 -1
- codex/static_root/assets/VDivider-CGYMLgJf.js.br +0 -0
- codex/static_root/assets/VDivider-CGYMLgJf.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-ape8k2o6.235735bba3cc.js +0 -1
- codex/static_root/assets/VExpansionPanels-ape8k2o6.235735bba3cc.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-ape8k2o6.235735bba3cc.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-ape8k2o6.js +0 -1
- codex/static_root/assets/VExpansionPanels-ape8k2o6.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-ape8k2o6.js.gz +0 -0
- codex/static_root/assets/VForm-ZManiwIB.a4ee873a7650.js +0 -1
- codex/static_root/assets/VForm-ZManiwIB.a4ee873a7650.js.br +0 -0
- codex/static_root/assets/VForm-ZManiwIB.a4ee873a7650.js.gz +0 -0
- codex/static_root/assets/VForm-ZManiwIB.js +0 -1
- codex/static_root/assets/VForm-ZManiwIB.js.br +0 -0
- codex/static_root/assets/VForm-ZManiwIB.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-BqJIH3Pa.22a036a63862.js +0 -1
- codex/static_root/assets/VRadioGroup-BqJIH3Pa.22a036a63862.js.br +0 -0
- codex/static_root/assets/VRadioGroup-BqJIH3Pa.22a036a63862.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-BqJIH3Pa.js +0 -1
- codex/static_root/assets/VRadioGroup-BqJIH3Pa.js.br +0 -0
- codex/static_root/assets/VRadioGroup-BqJIH3Pa.js.gz +0 -0
- codex/static_root/assets/VSelect-Bi5KABMc.1268bafd6469.js +0 -1
- codex/static_root/assets/VSelect-Bi5KABMc.1268bafd6469.js.br +0 -0
- codex/static_root/assets/VSelect-Bi5KABMc.1268bafd6469.js.gz +0 -0
- codex/static_root/assets/VSelect-Bi5KABMc.js +0 -1
- codex/static_root/assets/VSelect-Bi5KABMc.js.br +0 -0
- codex/static_root/assets/VSelect-Bi5KABMc.js.gz +0 -0
- codex/static_root/assets/VSelect-CP_CVb8s.6309f7bf17bb.css.br +0 -0
- codex/static_root/assets/VSelect-CP_CVb8s.6309f7bf17bb.css.gz +0 -0
- codex/static_root/assets/VSelect-CP_CVb8s.css.br +0 -0
- codex/static_root/assets/VSelect-CP_CVb8s.css.gz +0 -0
- codex/static_root/assets/VSelectionControl-CRVWANOr.bac2136c7c25.js +0 -1
- codex/static_root/assets/VSelectionControl-CRVWANOr.bac2136c7c25.js.br +0 -0
- codex/static_root/assets/VSelectionControl-CRVWANOr.bac2136c7c25.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-CRVWANOr.js +0 -1
- codex/static_root/assets/VSelectionControl-CRVWANOr.js.br +0 -0
- codex/static_root/assets/VSelectionControl-CRVWANOr.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-DtEh26JD.css +0 -1
- codex/static_root/assets/VSelectionControl-DtEh26JD.css.br +0 -0
- codex/static_root/assets/VSelectionControl-DtEh26JD.css.gz +0 -0
- codex/static_root/assets/VSelectionControl-DtEh26JD.eec621947209.css +0 -1
- codex/static_root/assets/VSelectionControl-DtEh26JD.eec621947209.css.br +0 -0
- codex/static_root/assets/VSelectionControl-DtEh26JD.eec621947209.css.gz +0 -0
- codex/static_root/assets/VTable-BnxSZ_W5.c36f0a6a30cf.css.br +0 -0
- codex/static_root/assets/VTable-BnxSZ_W5.c36f0a6a30cf.css.gz +0 -0
- codex/static_root/assets/VTable-BnxSZ_W5.css.br +0 -0
- codex/static_root/assets/VTable-BnxSZ_W5.css.gz +0 -0
- codex/static_root/assets/VTable-DWCA1lvG.1562d6d70dbe.js +0 -1
- codex/static_root/assets/VTable-DWCA1lvG.1562d6d70dbe.js.br +0 -0
- codex/static_root/assets/VTable-DWCA1lvG.1562d6d70dbe.js.gz +0 -0
- codex/static_root/assets/VTable-DWCA1lvG.js +0 -1
- codex/static_root/assets/VTable-DWCA1lvG.js.br +0 -0
- codex/static_root/assets/VTable-DWCA1lvG.js.gz +0 -0
- codex/static_root/assets/VWindowItem-DSXaWHkP.89ac2ece629a.js +0 -1
- codex/static_root/assets/VWindowItem-DSXaWHkP.89ac2ece629a.js.br +0 -0
- codex/static_root/assets/VWindowItem-DSXaWHkP.89ac2ece629a.js.gz +0 -0
- codex/static_root/assets/VWindowItem-DSXaWHkP.js +0 -1
- codex/static_root/assets/VWindowItem-DSXaWHkP.js.br +0 -0
- codex/static_root/assets/VWindowItem-DSXaWHkP.js.gz +0 -0
- codex/static_root/assets/admin-Bxwc8451.b2a8c85c5c82.js.br +0 -0
- codex/static_root/assets/admin-Bxwc8451.b2a8c85c5c82.js.gz +0 -0
- codex/static_root/assets/admin-Bxwc8451.js.br +0 -0
- codex/static_root/assets/admin-Bxwc8451.js.gz +0 -0
- codex/static_root/assets/admin-C3iCIUnm.06cb213f624d.css.br +0 -0
- codex/static_root/assets/admin-C3iCIUnm.06cb213f624d.css.gz +0 -0
- codex/static_root/assets/admin-C3iCIUnm.css.br +0 -0
- codex/static_root/assets/admin-C3iCIUnm.css.gz +0 -0
- codex/static_root/assets/admin-C81J8xOG.772d05753583.js +0 -1
- codex/static_root/assets/admin-C81J8xOG.772d05753583.js.br +0 -0
- codex/static_root/assets/admin-C81J8xOG.772d05753583.js.gz +0 -0
- codex/static_root/assets/admin-C81J8xOG.js +0 -1
- codex/static_root/assets/admin-C81J8xOG.js.br +0 -0
- codex/static_root/assets/admin-C81J8xOG.js.gz +0 -0
- codex/static_root/assets/admin-menu-Bts5DypF.83389408d5df.js +0 -1
- codex/static_root/assets/admin-menu-Bts5DypF.83389408d5df.js.br +0 -0
- codex/static_root/assets/admin-menu-Bts5DypF.83389408d5df.js.gz +0 -0
- codex/static_root/assets/admin-menu-Bts5DypF.js +0 -1
- codex/static_root/assets/admin-menu-Bts5DypF.js.br +0 -0
- codex/static_root/assets/admin-menu-Bts5DypF.js.gz +0 -0
- codex/static_root/assets/admin-settings-button-progress-CLrIYn4d.cec2cfd322a1.js.br +0 -0
- codex/static_root/assets/admin-settings-button-progress-CLrIYn4d.cec2cfd322a1.js.gz +0 -0
- codex/static_root/assets/admin-settings-button-progress-CLrIYn4d.js.br +0 -0
- codex/static_root/assets/admin-settings-button-progress-CLrIYn4d.js.gz +0 -0
- codex/static_root/assets/browser-Bf8JG2CE.3af978c1f766.css.br +0 -0
- codex/static_root/assets/browser-Bf8JG2CE.3af978c1f766.css.gz +0 -0
- codex/static_root/assets/browser-Bf8JG2CE.css.br +0 -0
- codex/static_root/assets/browser-Bf8JG2CE.css.gz +0 -0
- codex/static_root/assets/browser-yJ6Noi8Y.624ef6fbd20b.js +0 -1
- codex/static_root/assets/browser-yJ6Noi8Y.624ef6fbd20b.js.br +0 -0
- codex/static_root/assets/browser-yJ6Noi8Y.624ef6fbd20b.js.gz +0 -0
- codex/static_root/assets/browser-yJ6Noi8Y.js +0 -1
- codex/static_root/assets/browser-yJ6Noi8Y.js.br +0 -0
- codex/static_root/assets/browser-yJ6Noi8Y.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-Bw5_buVm.d199b40591de.js.br +0 -0
- codex/static_root/assets/change-password-dialog-Bw5_buVm.d199b40591de.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-Bw5_buVm.js.br +0 -0
- codex/static_root/assets/change-password-dialog-Bw5_buVm.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-CDmsC-9_.cb51658bfb81.js +0 -1
- codex/static_root/assets/confirm-dialog-CDmsC-9_.cb51658bfb81.js.br +0 -0
- codex/static_root/assets/confirm-dialog-CDmsC-9_.cb51658bfb81.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-CDmsC-9_.js +0 -1
- codex/static_root/assets/confirm-dialog-CDmsC-9_.js.br +0 -0
- codex/static_root/assets/confirm-dialog-CDmsC-9_.js.gz +0 -0
- codex/static_root/assets/datetime-column-PBwaoZso.4b7946b97468.js +0 -1
- codex/static_root/assets/datetime-column-PBwaoZso.4b7946b97468.js.br +0 -1
- codex/static_root/assets/datetime-column-PBwaoZso.4b7946b97468.js.gz +0 -0
- codex/static_root/assets/datetime-column-PBwaoZso.js +0 -1
- codex/static_root/assets/datetime-column-PBwaoZso.js.br +0 -1
- codex/static_root/assets/datetime-column-PBwaoZso.js.gz +0 -0
- codex/static_root/assets/filter-D2ELuNq3.2b1c1f24a6b4.js +0 -1
- codex/static_root/assets/filter-D2ELuNq3.2b1c1f24a6b4.js.br +0 -0
- codex/static_root/assets/filter-D2ELuNq3.2b1c1f24a6b4.js.gz +0 -0
- codex/static_root/assets/filter-D2ELuNq3.js +0 -1
- codex/static_root/assets/filter-D2ELuNq3.js.br +0 -0
- codex/static_root/assets/filter-D2ELuNq3.js.gz +0 -0
- codex/static_root/assets/flag-tab-Bfd3wqbW.eb77780e8a45.js.br +0 -0
- codex/static_root/assets/flag-tab-Bfd3wqbW.eb77780e8a45.js.gz +0 -0
- codex/static_root/assets/flag-tab-Bfd3wqbW.js.br +0 -0
- codex/static_root/assets/flag-tab-Bfd3wqbW.js.gz +0 -0
- codex/static_root/assets/forwardRefs-Cvn3Vptr.26250646de8c.js +0 -1
- codex/static_root/assets/forwardRefs-Cvn3Vptr.26250646de8c.js.br +0 -0
- codex/static_root/assets/forwardRefs-Cvn3Vptr.26250646de8c.js.gz +0 -0
- codex/static_root/assets/forwardRefs-Cvn3Vptr.js +0 -1
- codex/static_root/assets/forwardRefs-Cvn3Vptr.js.br +0 -0
- codex/static_root/assets/forwardRefs-Cvn3Vptr.js.gz +0 -0
- codex/static_root/assets/forwardRefs-Dyi06MPF.601ab1fd99b1.css +0 -1
- codex/static_root/assets/forwardRefs-Dyi06MPF.601ab1fd99b1.css.br +0 -0
- codex/static_root/assets/forwardRefs-Dyi06MPF.601ab1fd99b1.css.gz +0 -0
- codex/static_root/assets/forwardRefs-Dyi06MPF.css +0 -1
- codex/static_root/assets/forwardRefs-Dyi06MPF.css.br +0 -0
- codex/static_root/assets/forwardRefs-Dyi06MPF.css.gz +0 -0
- codex/static_root/assets/group-tab-J2MqClVb.ff59e8269756.js +0 -1
- codex/static_root/assets/group-tab-J2MqClVb.ff59e8269756.js.br +0 -0
- codex/static_root/assets/group-tab-J2MqClVb.ff59e8269756.js.gz +0 -0
- codex/static_root/assets/group-tab-J2MqClVb.js +0 -1
- codex/static_root/assets/group-tab-J2MqClVb.js.br +0 -0
- codex/static_root/assets/group-tab-J2MqClVb.js.gz +0 -0
- codex/static_root/assets/group-tab-_vKWzoyd.948e907b1e6b.css +0 -1
- codex/static_root/assets/group-tab-_vKWzoyd.948e907b1e6b.css.br +0 -0
- codex/static_root/assets/group-tab-_vKWzoyd.948e907b1e6b.css.gz +0 -0
- codex/static_root/assets/group-tab-_vKWzoyd.css +0 -1
- codex/static_root/assets/group-tab-_vKWzoyd.css.br +0 -0
- codex/static_root/assets/group-tab-_vKWzoyd.css.gz +0 -0
- codex/static_root/assets/http-error-BYu6Kcz7.9e6d6753260e.js +0 -1
- codex/static_root/assets/http-error-BYu6Kcz7.9e6d6753260e.js.br +0 -0
- codex/static_root/assets/http-error-BYu6Kcz7.9e6d6753260e.js.gz +0 -0
- codex/static_root/assets/http-error-BYu6Kcz7.js +0 -1
- codex/static_root/assets/http-error-BYu6Kcz7.js.br +0 -0
- codex/static_root/assets/http-error-BYu6Kcz7.js.gz +0 -0
- codex/static_root/assets/index-70Ak1yZF.6341f252a26f.js +0 -1
- codex/static_root/assets/index-70Ak1yZF.6341f252a26f.js.br +0 -0
- codex/static_root/assets/index-70Ak1yZF.6341f252a26f.js.gz +0 -0
- codex/static_root/assets/index-70Ak1yZF.js +0 -1
- codex/static_root/assets/index-70Ak1yZF.js.br +0 -0
- codex/static_root/assets/index-70Ak1yZF.js.gz +0 -0
- codex/static_root/assets/index-BHXJTQ4V.523d7b3d350f.css +0 -1
- codex/static_root/assets/index-BHXJTQ4V.523d7b3d350f.css.br +0 -0
- codex/static_root/assets/index-BHXJTQ4V.523d7b3d350f.css.gz +0 -0
- codex/static_root/assets/index-BHXJTQ4V.css +0 -1
- codex/static_root/assets/index-BHXJTQ4V.css.br +0 -0
- codex/static_root/assets/index-BHXJTQ4V.css.gz +0 -0
- codex/static_root/assets/library-tab-B5EpvS2Z.ce7f598b989c.js +0 -1
- codex/static_root/assets/library-tab-B5EpvS2Z.ce7f598b989c.js.br +0 -0
- codex/static_root/assets/library-tab-B5EpvS2Z.ce7f598b989c.js.gz +0 -0
- codex/static_root/assets/library-tab-B5EpvS2Z.js +0 -1
- codex/static_root/assets/library-tab-B5EpvS2Z.js.br +0 -0
- codex/static_root/assets/library-tab-B5EpvS2Z.js.gz +0 -0
- codex/static_root/assets/main-K8cER0IH.css.br +0 -0
- codex/static_root/assets/main-K8cER0IH.d529e8b3f52a.css.br +0 -0
- codex/static_root/assets/main-nb_FhQoD.5279ea775ff6.js +0 -35
- codex/static_root/assets/main-nb_FhQoD.5279ea775ff6.js.br +0 -0
- codex/static_root/assets/main-nb_FhQoD.5279ea775ff6.js.gz +0 -0
- codex/static_root/assets/main-nb_FhQoD.js +0 -35
- codex/static_root/assets/main-nb_FhQoD.js.br +0 -0
- codex/static_root/assets/main-nb_FhQoD.js.gz +0 -0
- codex/static_root/assets/pager-full-pdf-vSb0Gv-4.015647f33ab1.js +0 -1
- codex/static_root/assets/pager-full-pdf-vSb0Gv-4.015647f33ab1.js.br +0 -0
- codex/static_root/assets/pager-full-pdf-vSb0Gv-4.015647f33ab1.js.gz +0 -0
- codex/static_root/assets/pager-full-pdf-vSb0Gv-4.js +0 -1
- codex/static_root/assets/pager-full-pdf-vSb0Gv-4.js.br +0 -0
- codex/static_root/assets/pager-full-pdf-vSb0Gv-4.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-2endB3w1.f94e6a3535e4.js +0 -1
- codex/static_root/assets/pagination-toolbar-2endB3w1.f94e6a3535e4.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-2endB3w1.f94e6a3535e4.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-2endB3w1.js +0 -1
- codex/static_root/assets/pagination-toolbar-2endB3w1.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-2endB3w1.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-CzT9Hc3f.487e647604e2.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-CzT9Hc3f.487e647604e2.css.gz +0 -0
- codex/static_root/assets/pagination-toolbar-CzT9Hc3f.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-CzT9Hc3f.css.gz +0 -0
- codex/static_root/assets/pdf-doc-CW06S-ga.e7c567b9d4cd.js.br +0 -0
- codex/static_root/assets/pdf-doc-CW06S-ga.e7c567b9d4cd.js.gz +0 -0
- codex/static_root/assets/pdf-doc-CW06S-ga.js.br +0 -0
- codex/static_root/assets/pdf-doc-CW06S-ga.js.gz +0 -0
- codex/static_root/assets/reader-DdWNjEED.97c15f661faf.css +0 -1
- codex/static_root/assets/reader-DdWNjEED.97c15f661faf.css.br +0 -0
- codex/static_root/assets/reader-DdWNjEED.97c15f661faf.css.gz +0 -0
- codex/static_root/assets/reader-DdWNjEED.css +0 -1
- codex/static_root/assets/reader-DdWNjEED.css.br +0 -0
- codex/static_root/assets/reader-DdWNjEED.css.gz +0 -0
- codex/static_root/assets/reader-myd-70jV.2a363255ca47.js +0 -2
- codex/static_root/assets/reader-myd-70jV.2a363255ca47.js.br +0 -0
- codex/static_root/assets/reader-myd-70jV.2a363255ca47.js.gz +0 -0
- codex/static_root/assets/reader-myd-70jV.js +0 -2
- codex/static_root/assets/reader-myd-70jV.js.br +0 -0
- codex/static_root/assets/reader-myd-70jV.js.gz +0 -0
- codex/static_root/assets/relation-chips-Bd8Jicbj.35d8fe15b532.js +0 -1
- codex/static_root/assets/relation-chips-Bd8Jicbj.35d8fe15b532.js.br +0 -0
- codex/static_root/assets/relation-chips-Bd8Jicbj.35d8fe15b532.js.gz +0 -0
- codex/static_root/assets/relation-chips-Bd8Jicbj.js +0 -1
- codex/static_root/assets/relation-chips-Bd8Jicbj.js.br +0 -0
- codex/static_root/assets/relation-chips-Bd8Jicbj.js.gz +0 -0
- codex/static_root/assets/relation-chips-eQkZvJcT.6b52d3f66aed.css.br +0 -0
- codex/static_root/assets/relation-chips-eQkZvJcT.6b52d3f66aed.css.gz +0 -0
- codex/static_root/assets/relation-chips-eQkZvJcT.css.br +0 -0
- codex/static_root/assets/relation-chips-eQkZvJcT.css.gz +0 -0
- codex/static_root/assets/settings-drawer-DBftv9u0.afd25184f6d8.js +0 -2
- codex/static_root/assets/settings-drawer-DBftv9u0.afd25184f6d8.js.br +0 -0
- codex/static_root/assets/settings-drawer-DBftv9u0.afd25184f6d8.js.gz +0 -0
- codex/static_root/assets/settings-drawer-DBftv9u0.js +0 -2
- codex/static_root/assets/settings-drawer-DBftv9u0.js.br +0 -0
- codex/static_root/assets/settings-drawer-DBftv9u0.js.gz +0 -0
- codex/static_root/assets/ssrBoot-B6yWBylJ.27fba7483f5d.js.br +0 -0
- codex/static_root/assets/ssrBoot-B6yWBylJ.27fba7483f5d.js.gz +0 -0
- codex/static_root/assets/ssrBoot-B6yWBylJ.js.br +0 -0
- codex/static_root/assets/ssrBoot-B6yWBylJ.js.gz +0 -0
- codex/static_root/assets/stats-tab-B6L711cO.b6a42655cd70.css.br +0 -2
- codex/static_root/assets/stats-tab-B6L711cO.b6a42655cd70.css.gz +0 -0
- codex/static_root/assets/stats-tab-B6L711cO.css.br +0 -2
- codex/static_root/assets/stats-tab-B6L711cO.css.gz +0 -0
- codex/static_root/assets/stats-tab-DC24C65C.58280bd367e1.js.br +0 -0
- codex/static_root/assets/stats-tab-DC24C65C.58280bd367e1.js.gz +0 -0
- codex/static_root/assets/stats-tab-DC24C65C.js.br +0 -0
- codex/static_root/assets/stats-tab-DC24C65C.js.gz +0 -0
- codex/static_root/assets/task-tab-DI9bXb-m.52aad0736a2b.js.br +0 -0
- codex/static_root/assets/task-tab-DI9bXb-m.52aad0736a2b.js.gz +0 -0
- codex/static_root/assets/task-tab-DI9bXb-m.js.br +0 -0
- codex/static_root/assets/task-tab-DI9bXb-m.js.gz +0 -0
- codex/static_root/assets/unauthorized-C0p00au3.983dc96cbe2b.js +0 -1
- codex/static_root/assets/unauthorized-C0p00au3.983dc96cbe2b.js.br +0 -0
- codex/static_root/assets/unauthorized-C0p00au3.983dc96cbe2b.js.gz +0 -0
- codex/static_root/assets/unauthorized-C0p00au3.js +0 -1
- codex/static_root/assets/unauthorized-C0p00au3.js.br +0 -0
- codex/static_root/assets/unauthorized-C0p00au3.js.gz +0 -0
- codex/static_root/assets/unauthorized-CtkV01lw.8668ffe7b306.css +0 -1
- codex/static_root/assets/unauthorized-CtkV01lw.8668ffe7b306.css.br +0 -0
- codex/static_root/assets/unauthorized-CtkV01lw.8668ffe7b306.css.gz +0 -0
- codex/static_root/assets/unauthorized-CtkV01lw.css +0 -1
- codex/static_root/assets/unauthorized-CtkV01lw.css.br +0 -0
- codex/static_root/assets/unauthorized-CtkV01lw.css.gz +0 -0
- codex/static_root/assets/user-tab-B7e9oz0-.03fd3875c9e3.js.br +0 -0
- codex/static_root/assets/user-tab-B7e9oz0-.03fd3875c9e3.js.gz +0 -0
- codex/static_root/assets/user-tab-B7e9oz0-.js.br +0 -0
- codex/static_root/assets/user-tab-B7e9oz0-.js.gz +0 -0
- codex/static_root/manifest.fd580176863a.json +0 -757
- codex/static_root/manifest.fd580176863a.json.br +0 -0
- codex/static_root/manifest.fd580176863a.json.gz +0 -0
- {codex-1.7.11a0.dist-info → codex-1.7.13.dist-info}/LICENSE +0 -0
- {codex-1.7.11a0.dist-info → codex-1.7.13.dist-info}/entry_points.txt +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"paths": {"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", "rest_framework/docs/css/highlight.css": "rest_framework/docs/css/highlight.e0e4d973c6d7.css", "rest_framework/docs/css/base.css": "rest_framework/docs/css/base.e630f8f4990e.css", "rest_framework/docs/css/jquery.json-view.min.css": "rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css", "rest_framework/docs/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "rest_framework/docs/js/jquery.json-view.min.js": "rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js", "rest_framework/docs/js/api.js": "rest_framework/docs/js/api.18a5ba8a1bd8.js", "rest_framework/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/img/glyphicons-halflings-white.png": "rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png", "rest_framework/img/glyphicons-halflings.png": "rest_framework/img/glyphicons-halflings.90233c9067e9.png", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.f17d4516b026.css", "rest_framework/css/bootstrap.min.css.map": "rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map", "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.ee4ee6acf9eb.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css", "rest_framework/css/default.css": "rest_framework/css/default.789dfb5732d7.css", "rest_framework/css/bootstrap-theme.min.css.map": "rest_framework/css/bootstrap-theme.min.css.51806092cc05.map", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/js/default.js": "rest_framework/js/default.5b08897dbdc3.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.455080a7b2ce.js", "rest_framework/js/ajax-form.js": "rest_framework/js/ajax-form.4e1cdcb7acab.js", "rest_framework/js/coreapi-0.1.1.js": "rest_framework/js/coreapi-0.1.1.8851fb9336c9.js", "rest_framework/js/load-ajax-form.js": "rest_framework/js/load-ajax-form.8cdb3a9f3466.js", "rest_framework/js/jquery-3.7.1.min.js": "rest_framework/js/jquery-3.7.1.min.2c872dbe60f4.js", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.js", "rest_framework/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.js", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/glyphicons-halflings-regular.woff2": "rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2", "rest_framework/fonts/fontawesome-webfont.ttf": "rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf", "img/logo-maskable-180.webp": "img/logo-maskable-180.c58d966aa64e.webp", "img/imprint.svg": "img/imprint.7c2adebb76d6.svg", "img/publisher.svg": "img/publisher.82d378fcd601.svg", "img/missing-cover.svg": "img/missing-cover.ddb038cc2c56.svg", "img/series.svg": "img/series.ec8a889b8f95.svg", "img/volume.svg": "img/volume.814e4c79461a.svg", "img/missing-cover-165.webp": "img/missing-cover-165.0743171f2148.webp", "img/logo-maskable.svg": "img/logo-maskable.8f7de7f1c6a8.svg", "img/story-arc.svg": "img/story-arc.ca10014355ef.svg", "img/logo.svg": "img/logo.0f5344a028ca.svg", "img/logo-32.webp": "img/logo-32.5688944495bf.webp", "img/folder.svg": "img/folder.f28936a3701d.svg", "pwa/offline.html": "pwa/offline.7bfaf9f94bf9.html", "assets/copy-to-clipboard-DoUvDJVx.js": "assets/copy-to-clipboard-DoUvDJVx.bec27f144aca.js", "assets/change-password-dialog-Bw5_buVm.js": "assets/change-password-dialog-Bw5_buVm.d199b40591de.js", "assets/VCombobox-DpadV2-4.js": "assets/VCombobox-DpadV2-4.ea605785117d.js", "assets/http-error-BYu6Kcz7.js": "assets/http-error-BYu6Kcz7.9e6d6753260e.js", "assets/pdf-doc-DxqOo2k2.css": "assets/pdf-doc-DxqOo2k2.42496ffbf35b.css", "assets/VExpansionPanels-ape8k2o6.js": "assets/VExpansionPanels-ape8k2o6.235735bba3cc.js", "assets/VWindowItem-DSXaWHkP.js": "assets/VWindowItem-DSXaWHkP.89ac2ece629a.js", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/VRadioGroup-BqJIH3Pa.js": "assets/VRadioGroup-BqJIH3Pa.22a036a63862.js", "assets/VDialog-DYkXmPin.css": "assets/VDialog-DYkXmPin.3991696c6a81.css", "assets/VForm-DxBt30-N.css": "assets/VForm-DxBt30-N.138c0b89b6fc.css", "assets/pagination-toolbar-CzT9Hc3f.css": "assets/pagination-toolbar-CzT9Hc3f.487e647604e2.css", "assets/VSelectionControl-DtEh26JD.css": "assets/VSelectionControl-DtEh26JD.eec621947209.css", "assets/VCombobox-BQHELb_o.css": "assets/VCombobox-BQHELb_o.9f25a34994e2.css", "assets/filter-D2ELuNq3.js": "assets/filter-D2ELuNq3.2b1c1f24a6b4.js", "assets/http-error-CODU7jcH.css": "assets/http-error-CODU7jcH.8c13689ae574.css", "assets/task-tab-CW4DQ3KN.css": "assets/task-tab-CW4DQ3KN.81812f9208e5.css", "assets/group-tab-_vKWzoyd.css": "assets/group-tab-_vKWzoyd.948e907b1e6b.css", "assets/datetime-column-BavtvLnf.css": "assets/datetime-column-BavtvLnf.1f3bf499e063.css", "assets/change-password-dialog-DL8UMjmX.css": "assets/change-password-dialog-DL8UMjmX.526f97e577e7.css", "assets/materialdesignicons-webfont-B7mPwVP_.ttf": "assets/materialdesignicons-webfont-B7mPwVP_.6e435534bd35.ttf", "assets/forwardRefs-Dyi06MPF.css": "assets/forwardRefs-Dyi06MPF.601ab1fd99b1.css", "assets/browser-yJ6Noi8Y.js": "assets/browser-yJ6Noi8Y.624ef6fbd20b.js", "assets/library-tab-B5EpvS2Z.js": "assets/library-tab-B5EpvS2Z.ce7f598b989c.js", "assets/VCheckboxBtn-1PexCc2F.js": "assets/VCheckboxBtn-1PexCc2F.ac78c4bfe6bd.js", "assets/VCheckbox-t1haz9-P.js": "assets/VCheckbox-t1haz9-P.38cb3995b2f3.js", "assets/stats-tab-DC24C65C.js": "assets/stats-tab-DC24C65C.58280bd367e1.js", "assets/user-tab-B7e9oz0-.js": "assets/user-tab-B7e9oz0-.03fd3875c9e3.js", "assets/task-tab-DI9bXb-m.js": "assets/task-tab-DI9bXb-m.52aad0736a2b.js", "assets/relation-chips-eQkZvJcT.css": "assets/relation-chips-eQkZvJcT.6b52d3f66aed.css", "assets/group-tab-J2MqClVb.js": "assets/group-tab-J2MqClVb.ff59e8269756.js", "assets/reader-myd-70jV.js": "assets/reader-myd-70jV.2a363255ca47.js", "assets/pdf-doc-CW06S-ga.js": "assets/pdf-doc-CW06S-ga.e7c567b9d4cd.js", "assets/VRadioGroup-Cp9mZ7cb.css": "assets/VRadioGroup-Cp9mZ7cb.8e3741381961.css", "assets/unauthorized-CtkV01lw.css": "assets/unauthorized-CtkV01lw.8668ffe7b306.css", "assets/confirm-dialog-BI5kQLy_.css": "assets/confirm-dialog-BI5kQLy_.1b5309ad95ec.css", "assets/browser-Bf8JG2CE.css": "assets/browser-Bf8JG2CE.3af978c1f766.css", "assets/library-tab-DLpvMqPW.css": "assets/library-tab-DLpvMqPW.2989f610950b.css", "assets/VDivider-DU47sRrT.css": "assets/VDivider-DU47sRrT.3d2e17799e5c.css", "assets/VSelect-Bi5KABMc.js": "assets/VSelect-Bi5KABMc.1268bafd6469.js", "assets/admin-settings-button-progress-XVi7SeHr.css": "assets/admin-settings-button-progress-XVi7SeHr.435dc945daf1.css", "assets/pagination-toolbar-2endB3w1.js": "assets/pagination-toolbar-2endB3w1.f94e6a3535e4.js", "assets/index-BHXJTQ4V.css": "assets/index-BHXJTQ4V.523d7b3d350f.css", "assets/VDialog-BR4MrJeK.js": "assets/VDialog-BR4MrJeK.a2c876dbfac0.js", "assets/ssrBoot-B6yWBylJ.js": "assets/ssrBoot-B6yWBylJ.27fba7483f5d.js", "assets/admin-settings-button-progress-CLrIYn4d.js": "assets/admin-settings-button-progress-CLrIYn4d.cec2cfd322a1.js", "assets/VTable-BnxSZ_W5.css": "assets/VTable-BnxSZ_W5.c36f0a6a30cf.css", "assets/pager-full-pdf-vSb0Gv-4.js": "assets/pager-full-pdf-vSb0Gv-4.015647f33ab1.js", "assets/admin-menu-Bts5DypF.js": "assets/admin-menu-Bts5DypF.83389408d5df.js", "assets/main-K8cER0IH.css": "assets/main-K8cER0IH.d529e8b3f52a.css", "assets/admin-menu-CKlcsy9S.css": "assets/admin-menu-CKlcsy9S.41b2cf82b873.css", "assets/flag-tab-CESc_7Pq.css": "assets/flag-tab-CESc_7Pq.2260edfa4c38.css", "assets/relation-chips-Bd8Jicbj.js": "assets/relation-chips-Bd8Jicbj.35d8fe15b532.js", "assets/VExpansionPanels-RsCANmDP.css": "assets/VExpansionPanels-RsCANmDP.5b17872981df.css", "assets/main-nb_FhQoD.js": "assets/main-nb_FhQoD.5279ea775ff6.js", "assets/VTable-DWCA1lvG.js": "assets/VTable-DWCA1lvG.1562d6d70dbe.js", "assets/settings-drawer-DBftv9u0.js": "assets/settings-drawer-DBftv9u0.afd25184f6d8.js", "assets/forwardRefs-Cvn3Vptr.js": "assets/forwardRefs-Cvn3Vptr.26250646de8c.js", "assets/settings-drawer-WyG6HLH-.css": "assets/settings-drawer-WyG6HLH-.fe251f6d0a75.css", "assets/VSelectionControl-CRVWANOr.js": "assets/VSelectionControl-CRVWANOr.bac2136c7c25.js", "assets/admin-Bxwc8451.js": "assets/admin-Bxwc8451.b2a8c85c5c82.js", "assets/admin-C3iCIUnm.css": "assets/admin-C3iCIUnm.06cb213f624d.css", "assets/VWindowItem-CWBhiE_Y.css": "assets/VWindowItem-CWBhiE_Y.f7fb19752bf3.css", "assets/reader-DdWNjEED.css": "assets/reader-DdWNjEED.97c15f661faf.css", "assets/VCheckbox-CvH8ekHL.css": "assets/VCheckbox-CvH8ekHL.016ed8d222c4.css", "assets/datetime-column-PBwaoZso.js": "assets/datetime-column-PBwaoZso.4b7946b97468.js", "assets/stats-tab-B6L711cO.css": "assets/stats-tab-B6L711cO.b6a42655cd70.css", "assets/VForm-ZManiwIB.js": "assets/VForm-ZManiwIB.a4ee873a7650.js", "assets/admin-C81J8xOG.js": "assets/admin-C81J8xOG.772d05753583.js", "assets/unauthorized-C0p00au3.js": "assets/unauthorized-C0p00au3.983dc96cbe2b.js", "assets/index-70Ak1yZF.js": "assets/index-70Ak1yZF.6341f252a26f.js", "assets/flag-tab-Bfd3wqbW.js": "assets/flag-tab-Bfd3wqbW.eb77780e8a45.js", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/VSelect-CP_CVb8s.css": "assets/VSelect-CP_CVb8s.6309f7bf17bb.css", "assets/VDivider-CGYMLgJf.js": "assets/VDivider-CGYMLgJf.fbcb910c5e2b.js", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "assets/confirm-dialog-CDmsC-9_.js": "assets/confirm-dialog-CDmsC-9_.cb51658bfb81.js", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.fd580176863a.json"}, "version": "1.1", "hash": "100be693344d"}
|
|
1
|
+
{"paths": {"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", "rest_framework/docs/css/highlight.css": "rest_framework/docs/css/highlight.e0e4d973c6d7.css", "rest_framework/docs/css/base.css": "rest_framework/docs/css/base.e630f8f4990e.css", "rest_framework/docs/css/jquery.json-view.min.css": "rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css", "rest_framework/docs/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "rest_framework/docs/js/jquery.json-view.min.js": "rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js", "rest_framework/docs/js/api.js": "rest_framework/docs/js/api.18a5ba8a1bd8.js", "rest_framework/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/img/glyphicons-halflings-white.png": "rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png", "rest_framework/img/glyphicons-halflings.png": "rest_framework/img/glyphicons-halflings.90233c9067e9.png", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.f17d4516b026.css", "rest_framework/css/bootstrap.min.css.map": "rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map", "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.ee4ee6acf9eb.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css", "rest_framework/css/default.css": "rest_framework/css/default.789dfb5732d7.css", "rest_framework/css/bootstrap-theme.min.css.map": "rest_framework/css/bootstrap-theme.min.css.51806092cc05.map", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/js/default.js": "rest_framework/js/default.5b08897dbdc3.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.455080a7b2ce.js", "rest_framework/js/ajax-form.js": "rest_framework/js/ajax-form.4e1cdcb7acab.js", "rest_framework/js/coreapi-0.1.1.js": "rest_framework/js/coreapi-0.1.1.8851fb9336c9.js", "rest_framework/js/load-ajax-form.js": "rest_framework/js/load-ajax-form.8cdb3a9f3466.js", "rest_framework/js/jquery-3.7.1.min.js": "rest_framework/js/jquery-3.7.1.min.2c872dbe60f4.js", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.js", "rest_framework/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.js", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/glyphicons-halflings-regular.woff2": "rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2", "rest_framework/fonts/fontawesome-webfont.ttf": "rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf", "img/logo-maskable-180.webp": "img/logo-maskable-180.c58d966aa64e.webp", "img/imprint.svg": "img/imprint.7c2adebb76d6.svg", "img/publisher.svg": "img/publisher.82d378fcd601.svg", "img/missing-cover.svg": "img/missing-cover.ddb038cc2c56.svg", "img/series.svg": "img/series.ec8a889b8f95.svg", "img/volume.svg": "img/volume.814e4c79461a.svg", "img/missing-cover-165.webp": "img/missing-cover-165.0743171f2148.webp", "img/logo-maskable.svg": "img/logo-maskable.8f7de7f1c6a8.svg", "img/story-arc.svg": "img/story-arc.ca10014355ef.svg", "img/logo.svg": "img/logo.0f5344a028ca.svg", "img/logo-32.webp": "img/logo-32.5688944495bf.webp", "img/folder.svg": "img/folder.f28936a3701d.svg", "pwa/offline.html": "pwa/offline.7bfaf9f94bf9.html", "assets/copy-to-clipboard-DoUvDJVx.js": "assets/copy-to-clipboard-DoUvDJVx.bec27f144aca.js", "assets/index-BxnlX5gb.js": "assets/index-BxnlX5gb.b6443a0b48e3.js", "assets/VWindowItem-B9xi23cd.js": "assets/VWindowItem-B9xi23cd.ee96259ae03d.js", "assets/pdf-doc-DxqOo2k2.css": "assets/pdf-doc-DxqOo2k2.42496ffbf35b.css", "assets/admin-klMr_GZK.css": "assets/admin-klMr_GZK.3784e4f1d624.css", "assets/VSelectionControl-DbdMme4i.js": "assets/VSelectionControl-DbdMme4i.c547026ebdce.js", "assets/VForm-Be9DdO0x.js": "assets/VForm-Be9DdO0x.0b54c0d9e7ff.js", "assets/flag-tab-BhehN8hQ.js": "assets/flag-tab-BhehN8hQ.584e909ecdd6.js", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/VDialog-DYkXmPin.css": "assets/VDialog-DYkXmPin.3991696c6a81.css", "assets/change-password-dialog-CNWUpsff.js": "assets/change-password-dialog-CNWUpsff.2a6249951bb6.js", "assets/VForm-DxBt30-N.css": "assets/VForm-DxBt30-N.138c0b89b6fc.css", "assets/pagination-toolbar-aHRrdz48.css": "assets/pagination-toolbar-aHRrdz48.2cbd38f9256c.css", "assets/filter-wbh_0cB-.js": "assets/filter-wbh_0cB-.a2b2422906d8.js", "assets/library-tab-Cq-D776f.js": "assets/library-tab-Cq-D776f.89f410e10a27.js", "assets/group-tab-Bi681uR0.css": "assets/group-tab-Bi681uR0.3246ac0f7cec.css", "assets/http-error-CODU7jcH.css": "assets/http-error-CODU7jcH.8c13689ae574.css", "assets/browser-sNm790x9.css": "assets/browser-sNm790x9.305a6a4f38fd.css", "assets/http-error-BHy1v31U.js": "assets/http-error-BHy1v31U.516903532e16.js", "assets/task-tab-CW4DQ3KN.css": "assets/task-tab-CW4DQ3KN.81812f9208e5.css", "assets/datetime-column-BavtvLnf.css": "assets/datetime-column-BavtvLnf.1f3bf499e063.css", "assets/main-NV7Sm4nK.js": "assets/main-NV7Sm4nK.ef4ca8f0fd9f.js", "assets/VRadioGroup-_mPqHM3O.js": "assets/VRadioGroup-_mPqHM3O.41b7c1801cfc.js", "assets/change-password-dialog-DL8UMjmX.css": "assets/change-password-dialog-DL8UMjmX.526f97e577e7.css", "assets/materialdesignicons-webfont-B7mPwVP_.ttf": "assets/materialdesignicons-webfont-B7mPwVP_.6e435534bd35.ttf", "assets/VTable-CHRVGI94.css": "assets/VTable-CHRVGI94.0a75643f6486.css", "assets/VExpansionPanels-B-5dXRRB.js": "assets/VExpansionPanels-B-5dXRRB.b71e928c960a.js", "assets/reader-BjIgRfH2.js": "assets/reader-BjIgRfH2.e9fae80f3d09.js", "assets/VSelect-BbT1aJkP.js": "assets/VSelect-BbT1aJkP.ab9bbb187356.js", "assets/index-Czf-fUM7.css": "assets/index-Czf-fUM7.50a7466d956f.css", "assets/datetime-column-BC6Dncpu.js": "assets/datetime-column-BC6Dncpu.cdbf0b2cdc9a.js", "assets/forwardRefs-CXZy2GSt.css": "assets/forwardRefs-CXZy2GSt.0ea45a864dd0.css", "assets/ssrBoot-CTyNesCO.js": "assets/ssrBoot-CTyNesCO.03ec3bf85a27.js", "assets/pagination-toolbar-BpWqCTpI.js": "assets/pagination-toolbar-BpWqCTpI.eae1ff66607a.js", "assets/admin-settings-button-progress-CPzM-FJJ.js": "assets/admin-settings-button-progress-CPzM-FJJ.1d6d002ada95.js", "assets/VRadioGroup-Cp9mZ7cb.css": "assets/VRadioGroup-Cp9mZ7cb.8e3741381961.css", "assets/VDialog-DRj4eBrO.js": "assets/VDialog-DRj4eBrO.e2ce5d20029b.js", "assets/confirm-dialog-BI5kQLy_.css": "assets/confirm-dialog-BI5kQLy_.1b5309ad95ec.css", "assets/unauthorized-bi5K10vQ.js": "assets/unauthorized-bi5K10vQ.32373df36436.js", "assets/library-tab-DLpvMqPW.css": "assets/library-tab-DLpvMqPW.2989f610950b.css", "assets/admin-C78J3iIT.js": "assets/admin-C78J3iIT.e0499821711c.js", "assets/VDivider-DU47sRrT.css": "assets/VDivider-DU47sRrT.3d2e17799e5c.css", "assets/forwardRefs-DG6cgrKs.js": "assets/forwardRefs-DG6cgrKs.63214695fc2a.js", "assets/admin-settings-button-progress-XVi7SeHr.css": "assets/admin-settings-button-progress-XVi7SeHr.435dc945daf1.css", "assets/browser-DJgssiJu.js": "assets/browser-DJgssiJu.018d043b36a0.js", "assets/user-tab-BASy3q9X.js": "assets/user-tab-BASy3q9X.3a7f9fc383e1.js", "assets/VSelectionControl-RqBzwjYi.css": "assets/VSelectionControl-RqBzwjYi.ee7425525e63.css", "assets/admin-menu-CKlcsy9S.css": "assets/admin-menu-CKlcsy9S.41b2cf82b873.css", "assets/VCheckboxBtn-07Vspsxn.js": "assets/VCheckboxBtn-07Vspsxn.377350162ca6.js", "assets/flag-tab-CESc_7Pq.css": "assets/flag-tab-CESc_7Pq.2260edfa4c38.css", "assets/VExpansionPanels-RsCANmDP.css": "assets/VExpansionPanels-RsCANmDP.5b17872981df.css", "assets/settings-drawer-ynpXH44c.js": "assets/settings-drawer-ynpXH44c.ee12b51a7b5d.js", "assets/VCombobox-CuTDA3lY.js": "assets/VCombobox-CuTDA3lY.b53f8e0b7d58.js", "assets/pager-full-pdf-DOYtfHYl.js": "assets/pager-full-pdf-DOYtfHYl.55ef88bc32dd.js", "assets/VTable-C7Pj2AU0.js": "assets/VTable-C7Pj2AU0.9358b74f1ec2.js", "assets/VCombobox-DHFthaP6.css": "assets/VCombobox-DHFthaP6.942336d23612.css", "assets/stats-tab-CGY8r-es.css": "assets/stats-tab-CGY8r-es.b06c55bdaeaa.css", "assets/confirm-dialog-B4fmqtXn.js": "assets/confirm-dialog-B4fmqtXn.d78277f0b265.js", "assets/settings-drawer-WyG6HLH-.css": "assets/settings-drawer-WyG6HLH-.fe251f6d0a75.css", "assets/reader-D7Bx0Vcv.css": "assets/reader-D7Bx0Vcv.34af07084fcb.css", "assets/VWindowItem-CWBhiE_Y.css": "assets/VWindowItem-CWBhiE_Y.f7fb19752bf3.css", "assets/VCheckbox-CvH8ekHL.css": "assets/VCheckbox-CvH8ekHL.016ed8d222c4.css", "assets/unauthorized-DE63n2Pi.css": "assets/unauthorized-DE63n2Pi.b0357009b13d.css", "assets/task-tab-DNGSwaO3.js": "assets/task-tab-DNGSwaO3.273261947a02.js", "assets/VSelect-CKXqRkBF.css": "assets/VSelect-CKXqRkBF.a8be1e193eba.css", "assets/admin-menu-g8qk-zrV.js": "assets/admin-menu-g8qk-zrV.945e67b971e8.js", "assets/relation-chips-Bp-GmsDz.js": "assets/relation-chips-Bp-GmsDz.fdd18ac6b6f7.js", "assets/VDivider-D1t2hkjV.js": "assets/VDivider-D1t2hkjV.a9cd2d5b286a.js", "assets/group-tab-BZExFXC-.js": "assets/group-tab-BZExFXC-.e99510b0aa5e.js", "assets/stats-tab-ZfoK3F_k.js": "assets/stats-tab-ZfoK3F_k.7565c9bbd336.js", "assets/admin-DycvhYet.js": "assets/admin-DycvhYet.33740bd797c9.js", "assets/pdf-doc-DAUp5U7y.js": "assets/pdf-doc-DAUp5U7y.821d344d6401.js", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/relation-chips-DvAOMwcd.css": "assets/relation-chips-DvAOMwcd.ebc505834f81.css", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "assets/VCheckbox-CmDJN2RH.js": "assets/VCheckbox-CmDJN2RH.c0c8660af177.js", "assets/main-Of3aYkZ7.css": "assets/main-Of3aYkZ7.91c75c4fbaa6.css", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.3057b90c8c8c.json"}, "version": "1.1", "hash": "4a113430ec0c"}
|
codex/views/browser/bookmark.py
CHANGED
|
@@ -51,5 +51,5 @@ class BookmarkView(BookmarkUpdate, BookmarkAuthMixin, BrowserFilterView):
|
|
|
51
51
|
auth_filter = self.get_bookmark_auth_filter()
|
|
52
52
|
comic_qs = self._get_comic_query()
|
|
53
53
|
|
|
54
|
-
self.update_bookmarks(auth_filter, comic_qs, updates
|
|
54
|
+
self.update_bookmarks(auth_filter, comic_qs, updates)
|
|
55
55
|
return Response()
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""Browser breadcrumbs calculations."""
|
|
2
2
|
|
|
3
3
|
from contextlib import suppress
|
|
4
|
+
from dataclasses import asdict
|
|
4
5
|
from types import MappingProxyType
|
|
5
6
|
from typing import TYPE_CHECKING
|
|
6
7
|
|
|
@@ -23,6 +24,8 @@ from codex.views.const import (
|
|
|
23
24
|
from codex.views.util import Route
|
|
24
25
|
|
|
25
26
|
if TYPE_CHECKING:
|
|
27
|
+
from collections.abc import Mapping
|
|
28
|
+
|
|
26
29
|
from codex.models.groups import Folder
|
|
27
30
|
|
|
28
31
|
LOG = get_logger(__name__)
|
|
@@ -89,11 +92,13 @@ class BrowserBreadcrumbsView(BrowserPaginateView):
|
|
|
89
92
|
group_query = model.objects.none()
|
|
90
93
|
group_instance: BrowserGroupModel | None = group_query.first()
|
|
91
94
|
self._group_instance = group_instance
|
|
92
|
-
return self._group_instance #
|
|
95
|
+
return self._group_instance # pyright: ignore[reportReturnType]
|
|
93
96
|
|
|
94
97
|
def _init_breadcrumbs(self, valid_groups):
|
|
95
98
|
"""Load breadcrumbs and determine if they should be searched for a graft."""
|
|
96
|
-
breadcrumbs:
|
|
99
|
+
breadcrumbs: tuple[Mapping[str, str | tuple[int, ...] | int], ...] = tuple(
|
|
100
|
+
self.params.get("breadcrumbs", ())
|
|
101
|
+
)
|
|
97
102
|
old_breadcrumbs = [Route(**crumb) for crumb in breadcrumbs]
|
|
98
103
|
invalid = not old_breadcrumbs or old_breadcrumbs[-1].group not in valid_groups
|
|
99
104
|
if invalid:
|
|
@@ -103,7 +108,7 @@ class BrowserBreadcrumbsView(BrowserPaginateView):
|
|
|
103
108
|
def _breadcrumbs_save(self, breadcrumbs):
|
|
104
109
|
"""Save the breadcrumbs to params."""
|
|
105
110
|
params = dict(self.params)
|
|
106
|
-
params["breadcrumbs"] = tuple(crumb
|
|
111
|
+
params["breadcrumbs"] = tuple(asdict(crumb) for crumb in breadcrumbs)
|
|
107
112
|
# The only place I rewrite params
|
|
108
113
|
self._params = MappingProxyType(params)
|
|
109
114
|
|
codex/views/browser/browser.py
CHANGED
|
@@ -16,11 +16,11 @@ from codex.models import (
|
|
|
16
16
|
Library,
|
|
17
17
|
)
|
|
18
18
|
from codex.serializers.browser.page import BrowserPageSerializer
|
|
19
|
+
from codex.settings.settings import MAX_OBJ_PER_PAGE
|
|
19
20
|
from codex.views.browser.title import BrowserTitleView
|
|
20
21
|
from codex.views.const import (
|
|
21
22
|
COMIC_GROUP,
|
|
22
23
|
FOLDER_GROUP,
|
|
23
|
-
MAX_OBJ_PER_PAGE,
|
|
24
24
|
STORY_ARC_GROUP,
|
|
25
25
|
)
|
|
26
26
|
|
|
@@ -8,9 +8,9 @@ from django.db.models.query import Q
|
|
|
8
8
|
from codex.logger.logger import get_logger
|
|
9
9
|
from codex.models import AdminFlag
|
|
10
10
|
from codex.models.comic import ComicFTS
|
|
11
|
+
from codex.settings.settings import MAX_OBJ_PER_PAGE
|
|
11
12
|
from codex.views.browser.filters.search.aliases import ALIAS_FIELD_MAP
|
|
12
13
|
from codex.views.browser.filters.search.fts import BrowserFTSFilter
|
|
13
|
-
from codex.views.const import MAX_OBJ_PER_PAGE
|
|
14
14
|
|
|
15
15
|
LOG = get_logger(__name__)
|
|
16
16
|
_FTS_COLUMNS = frozenset(
|
codex/views/browser/paginate.py
CHANGED
|
@@ -5,8 +5,8 @@ from math import ceil
|
|
|
5
5
|
from django.core.paginator import EmptyPage, Paginator
|
|
6
6
|
|
|
7
7
|
from codex.logger.logger import get_logger
|
|
8
|
+
from codex.settings.settings import MAX_OBJ_PER_PAGE
|
|
8
9
|
from codex.views.browser.page_in_bounds import BrowserPageInBoundsView
|
|
9
|
-
from codex.views.const import MAX_OBJ_PER_PAGE
|
|
10
10
|
|
|
11
11
|
LOG = get_logger(__name__)
|
|
12
12
|
|
codex/views/const.py
CHANGED
|
@@ -147,7 +147,6 @@ CONFIG_MODELS = (
|
|
|
147
147
|
Group,
|
|
148
148
|
Session,
|
|
149
149
|
)
|
|
150
|
-
MAX_OBJ_PER_PAGE = 100
|
|
151
150
|
GROUP_MTIME_MODEL_MAP = MappingProxyType({"r": Publisher, "a": StoryArc, "f": Folder})
|
|
152
151
|
EPOCH_START = datetime.fromtimestamp(0, tz=timezone.utc)
|
|
153
152
|
ONE_INTEGERFIELD = Value(1, PositiveSmallIntegerField())
|
codex/views/download.py
CHANGED
codex/views/frontend.py
CHANGED
|
@@ -8,10 +8,11 @@ from rest_framework.response import Response
|
|
|
8
8
|
|
|
9
9
|
from codex.models.admin import AdminFlag
|
|
10
10
|
from codex.serializers.route import RouteSerializer
|
|
11
|
+
from codex.views.mixins import UserActiveViewMixin
|
|
11
12
|
from codex.views.session import SessionView
|
|
12
13
|
|
|
13
14
|
|
|
14
|
-
class IndexView(SessionView):
|
|
15
|
+
class IndexView(SessionView, UserActiveViewMixin):
|
|
15
16
|
"""The main app."""
|
|
16
17
|
|
|
17
18
|
SESSION_KEY = SessionView.BROWSER_SESSION_KEY
|
|
@@ -40,4 +41,5 @@ class IndexView(SessionView):
|
|
|
40
41
|
"last_route": self._get_last_route(),
|
|
41
42
|
"title": self._get_title(),
|
|
42
43
|
}
|
|
44
|
+
self.mark_user_active()
|
|
43
45
|
return Response(extra_context)
|
codex/views/mixins.py
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"""Cross view annotation methods."""
|
|
2
2
|
|
|
3
3
|
from django.db.models.expressions import F
|
|
4
|
+
from rest_framework.views import APIView
|
|
4
5
|
|
|
6
|
+
from codex.librarian.bookmark.tasks import UserActiveTask
|
|
7
|
+
from codex.librarian.mp_queue import LIBRARIAN_QUEUE
|
|
5
8
|
from codex.logger.logger import get_logger
|
|
6
9
|
from codex.models.comic import Comic, Imprint, Volume
|
|
7
10
|
from codex.views.browser.filters.filter import BrowserFilterView
|
|
@@ -75,3 +78,13 @@ class SharedAnnotationsMixin(BrowserFilterView):
|
|
|
75
78
|
elif qs.model is Imprint:
|
|
76
79
|
group_names["publisher_name"] = F("publisher__name")
|
|
77
80
|
return qs.annotate(**group_names)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
class UserActiveViewMixin(APIView):
|
|
84
|
+
"""View that records user activity."""
|
|
85
|
+
|
|
86
|
+
def mark_user_active(self):
|
|
87
|
+
"""Get the app index page."""
|
|
88
|
+
if self.request.user and self.request.user.pk:
|
|
89
|
+
task = UserActiveTask(pk=self.request.user.pk)
|
|
90
|
+
LIBRARIAN_QUEUE.put(task)
|
codex/views/opds/v1/feed.py
CHANGED
|
@@ -13,8 +13,8 @@ from codex.serializers.browser.settings import OPDSSettingsSerializer
|
|
|
13
13
|
from codex.serializers.opds.v1 import (
|
|
14
14
|
OPDS1TemplateSerializer,
|
|
15
15
|
)
|
|
16
|
-
from codex.settings.settings import FALSY
|
|
17
|
-
from codex.views.
|
|
16
|
+
from codex.settings.settings import FALSY, MAX_OBJ_PER_PAGE
|
|
17
|
+
from codex.views.mixins import UserActiveViewMixin
|
|
18
18
|
from codex.views.opds.auth import OPDSTemplateView
|
|
19
19
|
from codex.views.opds.const import BLANK_TITLE
|
|
20
20
|
from codex.views.opds.v1.entry.data import OPDS1EntryData
|
|
@@ -39,7 +39,7 @@ class OpdsNs:
|
|
|
39
39
|
ACQUISITION = "http://opds-spec.org/2010/acquisition"
|
|
40
40
|
|
|
41
41
|
|
|
42
|
-
class OPDS1FeedView(OPDS1LinksView, OPDSTemplateView):
|
|
42
|
+
class OPDS1FeedView(OPDS1LinksView, OPDSTemplateView, UserActiveViewMixin):
|
|
43
43
|
"""OPDS 1 Feed."""
|
|
44
44
|
|
|
45
45
|
template_name = "opds_v1/index.xml"
|
|
@@ -168,4 +168,5 @@ class OPDS1FeedView(OPDS1LinksView, OPDSTemplateView):
|
|
|
168
168
|
def get(self, *_args, **_kwargs):
|
|
169
169
|
"""Get the feed."""
|
|
170
170
|
serializer = self.get_serializer(self)
|
|
171
|
+
self.mark_user_active()
|
|
171
172
|
return Response(serializer.data, content_type=self.content_type)
|
codex/views/opds/v2/feed.py
CHANGED
|
@@ -9,7 +9,8 @@ from codex.logger.logger import get_logger
|
|
|
9
9
|
from codex.models import AdminFlag
|
|
10
10
|
from codex.serializers.browser.settings import OPDSSettingsSerializer
|
|
11
11
|
from codex.serializers.opds.v2.feed import OPDS2FeedSerializer
|
|
12
|
-
from codex.
|
|
12
|
+
from codex.settings.settings import MAX_OBJ_PER_PAGE
|
|
13
|
+
from codex.views.mixins import UserActiveViewMixin
|
|
13
14
|
from codex.views.opds.auth import OPDSAuthMixin
|
|
14
15
|
from codex.views.opds.const import BLANK_TITLE
|
|
15
16
|
from codex.views.opds.v2.const import (
|
|
@@ -27,7 +28,7 @@ from codex.views.opds.v2.publications import OPDS2PublicationView
|
|
|
27
28
|
LOG = get_logger(__name__)
|
|
28
29
|
|
|
29
30
|
|
|
30
|
-
class OPDS2FeedView(OPDSAuthMixin, OPDS2PublicationView):
|
|
31
|
+
class OPDS2FeedView(OPDSAuthMixin, OPDS2PublicationView, UserActiveViewMixin):
|
|
31
32
|
"""OPDS 2.0 Feed."""
|
|
32
33
|
|
|
33
34
|
DEFAULT_ROUTE = MappingProxyType(
|
|
@@ -216,4 +217,5 @@ class OPDS2FeedView(OPDSAuthMixin, OPDS2PublicationView):
|
|
|
216
217
|
"""Get the feed."""
|
|
217
218
|
obj = self.get_object()
|
|
218
219
|
serializer = self.get_serializer(obj)
|
|
220
|
+
self.mark_user_active()
|
|
219
221
|
return Response(serializer.data)
|
codex/views/reader/books.py
CHANGED
|
@@ -34,7 +34,7 @@ _COMIC_FIELDS = (
|
|
|
34
34
|
)
|
|
35
35
|
|
|
36
36
|
|
|
37
|
-
class ReaderBooksView(SharedAnnotationsMixin, BookmarkAuthMixin
|
|
37
|
+
class ReaderBooksView(ReaderParamsView, SharedAnnotationsMixin, BookmarkAuthMixin):
|
|
38
38
|
"""Get Books methods."""
|
|
39
39
|
|
|
40
40
|
def _get_reader_arc_pks(
|
codex/views/util.py
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import json
|
|
4
4
|
from collections.abc import Mapping
|
|
5
5
|
from contextlib import suppress
|
|
6
|
-
from dataclasses import
|
|
6
|
+
from dataclasses import dataclass
|
|
7
7
|
from json.decoder import JSONDecodeError
|
|
8
8
|
from typing import Any
|
|
9
9
|
from urllib.parse import unquote_plus
|
|
@@ -15,8 +15,8 @@ from djangorestframework_camel_case.util import underscoreize
|
|
|
15
15
|
DEFAULT_CHUNK_SIZE = 64 * 1024 # 64 Kb
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
@dataclass
|
|
19
|
-
class Route
|
|
18
|
+
@dataclass
|
|
19
|
+
class Route:
|
|
20
20
|
"""Breadcrumb, like a route."""
|
|
21
21
|
|
|
22
22
|
group: str
|
|
@@ -24,14 +24,15 @@ class Route(dict):
|
|
|
24
24
|
page: int = 1
|
|
25
25
|
name: str = ""
|
|
26
26
|
|
|
27
|
+
def __hash__(self):
|
|
28
|
+
"""Breadcrumb hash."""
|
|
29
|
+
pk_parts = tuple(sorted(set(self.pks)))
|
|
30
|
+
parts = (self.group, pk_parts, self.page)
|
|
31
|
+
return hash(parts)
|
|
32
|
+
|
|
27
33
|
def __eq__(self, cmp):
|
|
28
34
|
"""Breadcrumb equality."""
|
|
29
|
-
return (
|
|
30
|
-
bool(cmp is not None)
|
|
31
|
-
and (self.group == cmp.group)
|
|
32
|
-
and (set(self.pks) == set(cmp.pks))
|
|
33
|
-
and (self.page == cmp.page)
|
|
34
|
-
)
|
|
35
|
+
return cmp and hash(self) == hash(cmp)
|
|
35
36
|
|
|
36
37
|
def __and__(self, cmp):
|
|
37
38
|
"""Breadcrumb intersection."""
|
|
@@ -41,8 +42,6 @@ class Route(dict):
|
|
|
41
42
|
and (self.pks == cmp.pks or (set(self.pks) & set(cmp.pks)))
|
|
42
43
|
)
|
|
43
44
|
|
|
44
|
-
dict = asdict
|
|
45
|
-
|
|
46
45
|
|
|
47
46
|
def reparse_json_query_params(query_params, keys) -> dict[str, Any]:
|
|
48
47
|
"""Reparse JSON encoded query_params."""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: codex
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.13
|
|
4
4
|
Summary: A comic archive web server.
|
|
5
5
|
License: GPL-3.0-only
|
|
6
6
|
Keywords: comic,cbz,cbr,cbt,pdf
|
|
@@ -39,7 +39,7 @@ Requires-Dist: django-vite (>=3.0.1,<4.0.0)
|
|
|
39
39
|
Requires-Dist: djangorestframework (>=3.15.1,<4.0.0)
|
|
40
40
|
Requires-Dist: djangorestframework-camel-case (>=1.4.2,<2.0.0)
|
|
41
41
|
Requires-Dist: drf-spectacular (>=0.28.0,<0.29.0)
|
|
42
|
-
Requires-Dist: fnvhash (>=0.1,<0.
|
|
42
|
+
Requires-Dist: fnvhash (>=0.2.1,<0.3.0)
|
|
43
43
|
Requires-Dist: humanfriendly (>=10.0,<11.0)
|
|
44
44
|
Requires-Dist: humanize (>=4.0.0,<5.0.0)
|
|
45
45
|
Requires-Dist: hypercorn[h3] (>=0.17.3,<0.18.0)
|
|
@@ -146,7 +146,7 @@ before installing Codex.
|
|
|
146
146
|
...and Ubuntu, Mint, MX, Window Subsystem for Linux, and others.
|
|
147
147
|
|
|
148
148
|
```sh
|
|
149
|
-
apt install build-essential libimagequant0 libjpeg-turbo8 libopenjp2-7 libssl libyaml-0-2 libtiff6 libwebp7 python3-dev python3-pip
|
|
149
|
+
apt install build-essential libimagequant0 libjpeg-turbo8 libopenjp2-7 libssl libyaml-0-2 libtiff6 libwebp7 python3-dev python3-pip sqlite3 unrar zlib1g
|
|
150
150
|
```
|
|
151
151
|
|
|
152
152
|
Versions of packages like libjpeg, libssl, libtiff may differ between flavors
|
|
@@ -161,7 +161,7 @@ apt-cache search libjpeg-turbo
|
|
|
161
161
|
###### <a href="alpine">Alpine</a> Dependencies
|
|
162
162
|
|
|
163
163
|
```sh
|
|
164
|
-
apk add bsd-compat-headers build-base jpeg-dev libffi-dev libwebp
|
|
164
|
+
apk add bsd-compat-headers build-base jpeg-dev libffi-dev libwebp openssl-dev sqlite yaml-dev zlib-dev
|
|
165
165
|
```
|
|
166
166
|
|
|
167
167
|
##### Install unrar Runtime Dependency on non-debian Linux
|
|
@@ -188,7 +188,7 @@ natively on the Windows Subsystem for Linux.
|
|
|
188
188
|
Installation instructions are in the <a href="/WINDOWS.md">Native Windows
|
|
189
189
|
Dependencies Installation Document</a>.
|
|
190
190
|
|
|
191
|
-
#### Installing Codex on ARM (AARCH64) with Python 3.13
|
|
191
|
+
#### Installing Codex on Linux on ARM (AARCH64) with Python 3.13
|
|
192
192
|
|
|
193
193
|
Pymupdf has no pre-built wheels for AARCH64 so pip must build it and the build
|
|
194
194
|
fails on Python 3.13 without this environment variable set:
|
|
@@ -197,6 +197,9 @@ fails on Python 3.13 without this environment variable set:
|
|
|
197
197
|
PYMUPDF_SETUP_PY_LIMITED_API=0 pip install codex
|
|
198
198
|
```
|
|
199
199
|
|
|
200
|
+
You will also have to have the `build-essential` and `python3-dev` or equivalent
|
|
201
|
+
packages installed on on your Linux.
|
|
202
|
+
|
|
200
203
|
#### <a href="#run">Run</a> Codex Natively
|
|
201
204
|
|
|
202
205
|
Once you have installed codex, the codex binary should be on your path. To start
|