codex 1.7.7__py3-none-any.whl → 1.7.8__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/librarian/importer/create_comics.py +4 -4
- codex/librarian/importer/importerd.py +1 -2
- codex/librarian/importer/init.py +1 -2
- codex/librarian/importer/link_comics.py +13 -4
- codex/librarian/importer/link_covers.py +2 -2
- codex/librarian/importer/query_covers.py +2 -1
- codex/librarian/search/update.py +14 -6
- codex/migrations/0032_alter_librarianstatus_preactive.py +19 -0
- codex/models/admin.py +2 -2
- codex/serializers/models/admin.py +1 -1
- codex/static_root/assets/VCheckbox-CjaELt3q.0925364b6bec.js +1 -0
- codex/static_root/assets/VCheckbox-CjaELt3q.0925364b6bec.js.br +0 -0
- codex/static_root/assets/VCheckbox-CjaELt3q.0925364b6bec.js.gz +0 -0
- codex/static_root/assets/VCheckbox-CjaELt3q.js +1 -0
- codex/static_root/assets/VCheckbox-CjaELt3q.js.br +0 -0
- codex/static_root/assets/VCheckbox-CjaELt3q.js.gz +0 -0
- codex/static_root/assets/{VCheckboxBtn-DUIOks3V.c14c841b2965.js → VCheckboxBtn-g_zD3ENY.d62959cb3925.js} +1 -1
- codex/static_root/assets/VCheckboxBtn-g_zD3ENY.d62959cb3925.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-g_zD3ENY.d62959cb3925.js.gz +0 -0
- codex/static_root/assets/{VCheckboxBtn-DUIOks3V.js → VCheckboxBtn-g_zD3ENY.js} +1 -1
- codex/static_root/assets/VCheckboxBtn-g_zD3ENY.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-g_zD3ENY.js.gz +0 -0
- codex/static_root/assets/{VCombobox-Gz9N06nz.668b85a54990.js → VCombobox-Dc8-R3XH.7227e119708a.js} +1 -1
- codex/static_root/assets/VCombobox-Dc8-R3XH.7227e119708a.js.br +0 -0
- codex/static_root/assets/VCombobox-Dc8-R3XH.7227e119708a.js.gz +0 -0
- codex/static_root/assets/{VCombobox-Gz9N06nz.js → VCombobox-Dc8-R3XH.js} +1 -1
- codex/static_root/assets/VCombobox-Dc8-R3XH.js.br +0 -0
- codex/static_root/assets/VCombobox-Dc8-R3XH.js.gz +0 -0
- codex/static_root/assets/{VDialog-BDaX1tXA.c61bfde6cb2a.css → VDialog-BQWGxOC0.557592e1297d.css} +1 -1
- codex/static_root/assets/VDialog-BQWGxOC0.557592e1297d.css.br +0 -0
- codex/static_root/assets/VDialog-BQWGxOC0.557592e1297d.css.gz +0 -0
- codex/static_root/assets/{VDialog-BDaX1tXA.css → VDialog-BQWGxOC0.css} +1 -1
- codex/static_root/assets/VDialog-BQWGxOC0.css.br +0 -0
- codex/static_root/assets/VDialog-BQWGxOC0.css.gz +0 -0
- codex/static_root/assets/{VDialog-JYjcWZ0u.91bd96a0d870.js → VDialog-D52uED8h.a1a291f6e59a.js} +1 -1
- codex/static_root/assets/VDialog-D52uED8h.a1a291f6e59a.js.br +0 -0
- codex/static_root/assets/VDialog-D52uED8h.a1a291f6e59a.js.gz +0 -0
- codex/static_root/assets/{VDialog-JYjcWZ0u.js → VDialog-D52uED8h.js} +1 -1
- codex/static_root/assets/VDialog-D52uED8h.js.br +0 -0
- codex/static_root/assets/VDialog-D52uED8h.js.gz +0 -0
- codex/static_root/assets/{VDivider-Coot1SE9.c585b1971696.js → VDivider-CmDbXOzg.ba51d79a7b54.js} +1 -1
- codex/static_root/assets/VDivider-CmDbXOzg.ba51d79a7b54.js.br +0 -0
- codex/static_root/assets/VDivider-CmDbXOzg.ba51d79a7b54.js.gz +0 -0
- codex/static_root/assets/{VDivider-Coot1SE9.js → VDivider-CmDbXOzg.js} +1 -1
- codex/static_root/assets/VDivider-CmDbXOzg.js.br +0 -0
- codex/static_root/assets/VDivider-CmDbXOzg.js.gz +0 -0
- codex/static_root/assets/{VExpansionPanels-DSaZZJ_i.c5bf69cefe7c.js → VExpansionPanels-04UV7-LI.fdbf3db241f7.js} +1 -1
- codex/static_root/assets/VExpansionPanels-04UV7-LI.fdbf3db241f7.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-04UV7-LI.fdbf3db241f7.js.gz +0 -0
- codex/static_root/assets/{VExpansionPanels-DSaZZJ_i.js → VExpansionPanels-04UV7-LI.js} +1 -1
- codex/static_root/assets/VExpansionPanels-04UV7-LI.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-04UV7-LI.js.gz +0 -0
- codex/static_root/assets/{VForm-CsURMe0X.e8dbbd6714c7.js → VForm-5YJLC8Oz.8395c2ab2083.js} +1 -1
- codex/static_root/assets/VForm-5YJLC8Oz.8395c2ab2083.js.br +0 -0
- codex/static_root/assets/VForm-5YJLC8Oz.8395c2ab2083.js.gz +0 -0
- codex/static_root/assets/{VForm-CsURMe0X.js → VForm-5YJLC8Oz.js} +1 -1
- codex/static_root/assets/VForm-5YJLC8Oz.js.br +0 -0
- codex/static_root/assets/VForm-5YJLC8Oz.js.gz +0 -0
- codex/static_root/assets/{VRadioGroup-BfMW9v1C.b6c552d3ebd9.js → VRadioGroup-BGzjNnq9.8e056c39f9d7.js} +1 -1
- codex/static_root/assets/VRadioGroup-BGzjNnq9.8e056c39f9d7.js.br +0 -0
- codex/static_root/assets/VRadioGroup-BGzjNnq9.8e056c39f9d7.js.gz +0 -0
- codex/static_root/assets/{VRadioGroup-BfMW9v1C.js → VRadioGroup-BGzjNnq9.js} +1 -1
- codex/static_root/assets/VRadioGroup-BGzjNnq9.js.br +0 -0
- codex/static_root/assets/VRadioGroup-BGzjNnq9.js.gz +0 -0
- codex/static_root/assets/VSelect-JGx0H8YY.0435331f9e4a.js +1 -0
- codex/static_root/assets/VSelect-JGx0H8YY.0435331f9e4a.js.br +0 -0
- codex/static_root/assets/VSelect-JGx0H8YY.0435331f9e4a.js.gz +0 -0
- codex/static_root/assets/VSelect-JGx0H8YY.js +1 -0
- codex/static_root/assets/VSelect-JGx0H8YY.js.br +0 -0
- codex/static_root/assets/VSelect-JGx0H8YY.js.gz +0 -0
- codex/static_root/assets/{VSelectionControl-C-U8aPN3.ee2ff0451f30.js → VSelectionControl-CrqDqLVW.f07454449915.js} +1 -1
- codex/static_root/assets/VSelectionControl-CrqDqLVW.f07454449915.js.br +0 -0
- codex/static_root/assets/VSelectionControl-CrqDqLVW.f07454449915.js.gz +0 -0
- codex/static_root/assets/{VSelectionControl-C-U8aPN3.js → VSelectionControl-CrqDqLVW.js} +1 -1
- codex/static_root/assets/VSelectionControl-CrqDqLVW.js.br +0 -0
- codex/static_root/assets/VSelectionControl-CrqDqLVW.js.gz +0 -0
- codex/static_root/assets/{VTable-CApWgl_Z.73e5dc6daac2.js → VTable-Do_SF0VB.273110ae8ad2.js} +1 -1
- codex/static_root/assets/VTable-Do_SF0VB.273110ae8ad2.js.br +0 -0
- codex/static_root/assets/VTable-Do_SF0VB.273110ae8ad2.js.gz +0 -0
- codex/static_root/assets/{VTable-CApWgl_Z.js → VTable-Do_SF0VB.js} +1 -1
- codex/static_root/assets/VTable-Do_SF0VB.js.br +0 -0
- codex/static_root/assets/VTable-Do_SF0VB.js.gz +0 -0
- codex/static_root/assets/{VWindowItem-BkKshOEy.a5227da9ba5b.js → VWindowItem-9OdAFzIK.958c8b636fba.js} +1 -1
- codex/static_root/assets/VWindowItem-9OdAFzIK.958c8b636fba.js.br +0 -0
- codex/static_root/assets/VWindowItem-9OdAFzIK.958c8b636fba.js.gz +0 -0
- codex/static_root/assets/{VWindowItem-BkKshOEy.js → VWindowItem-9OdAFzIK.js} +1 -1
- codex/static_root/assets/VWindowItem-9OdAFzIK.js.br +0 -0
- codex/static_root/assets/VWindowItem-9OdAFzIK.js.gz +0 -0
- codex/static_root/assets/{admin-Dl90w4xx.a9772c680e4a.js → admin-B67kr23y.1c946cd48499.js} +1 -1
- codex/static_root/assets/admin-B67kr23y.1c946cd48499.js.br +0 -0
- codex/static_root/assets/admin-B67kr23y.1c946cd48499.js.gz +0 -0
- codex/static_root/assets/{admin-Dl90w4xx.js → admin-B67kr23y.js} +1 -1
- codex/static_root/assets/admin-B67kr23y.js.br +0 -0
- codex/static_root/assets/admin-B67kr23y.js.gz +0 -0
- codex/static_root/assets/{admin-kog1vr1-.68109a677a58.js → admin-BbUIqP58.c21b2d9f9955.js} +1 -1
- codex/static_root/assets/admin-BbUIqP58.c21b2d9f9955.js.br +0 -0
- codex/static_root/assets/admin-BbUIqP58.c21b2d9f9955.js.gz +0 -0
- codex/static_root/assets/{admin-kog1vr1-.js → admin-BbUIqP58.js} +1 -1
- codex/static_root/assets/admin-BbUIqP58.js.br +0 -0
- codex/static_root/assets/admin-BbUIqP58.js.gz +0 -0
- codex/static_root/assets/admin-menu-CKlcsy9S.41b2cf82b873.css +1 -0
- codex/static_root/assets/admin-menu-CKlcsy9S.41b2cf82b873.css.br +0 -0
- codex/static_root/assets/admin-menu-CKlcsy9S.41b2cf82b873.css.gz +0 -0
- codex/static_root/assets/admin-menu-CKlcsy9S.css +1 -0
- codex/static_root/assets/admin-menu-CKlcsy9S.css.br +0 -0
- codex/static_root/assets/admin-menu-CKlcsy9S.css.gz +0 -0
- codex/static_root/assets/admin-menu-bqKOZRfB.c5b5dd89379e.js +1 -0
- codex/static_root/assets/admin-menu-bqKOZRfB.c5b5dd89379e.js.br +0 -0
- codex/static_root/assets/admin-menu-bqKOZRfB.c5b5dd89379e.js.gz +0 -0
- codex/static_root/assets/admin-menu-bqKOZRfB.js +1 -0
- codex/static_root/assets/admin-menu-bqKOZRfB.js.br +0 -0
- codex/static_root/assets/admin-menu-bqKOZRfB.js.gz +0 -0
- codex/static_root/assets/{admin-settings-button-progress-Dflyj3Tj.ee985c7f4955.js → admin-settings-button-progress-DOCpX5C6.649affe5eab0.js} +1 -1
- codex/static_root/assets/admin-settings-button-progress-DOCpX5C6.649affe5eab0.js.br +0 -0
- codex/static_root/assets/admin-settings-button-progress-DOCpX5C6.649affe5eab0.js.gz +0 -0
- codex/static_root/assets/{admin-settings-button-progress-Dflyj3Tj.js → admin-settings-button-progress-DOCpX5C6.js} +1 -1
- codex/static_root/assets/admin-settings-button-progress-DOCpX5C6.js.br +0 -0
- codex/static_root/assets/admin-settings-button-progress-DOCpX5C6.js.gz +0 -0
- codex/static_root/assets/{browser-gQKq4cjC.3225a1a29760.css → browser-CECBMxOy.a750213334d5.css} +1 -1
- codex/static_root/assets/browser-CECBMxOy.a750213334d5.css.br +0 -0
- codex/static_root/assets/browser-CECBMxOy.a750213334d5.css.gz +0 -0
- codex/static_root/assets/{browser-gQKq4cjC.css → browser-CECBMxOy.css} +1 -1
- codex/static_root/assets/browser-CECBMxOy.css.br +0 -0
- codex/static_root/assets/browser-CECBMxOy.css.gz +0 -0
- codex/static_root/assets/browser-DIqlqqdu.a4d5140b1550.js +1 -0
- codex/static_root/assets/browser-DIqlqqdu.a4d5140b1550.js.br +0 -0
- codex/static_root/assets/browser-DIqlqqdu.a4d5140b1550.js.gz +0 -0
- codex/static_root/assets/browser-DIqlqqdu.js +1 -0
- codex/static_root/assets/browser-DIqlqqdu.js.br +0 -0
- codex/static_root/assets/browser-DIqlqqdu.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-DL8UMjmX.526f97e577e7.css +1 -0
- codex/static_root/assets/change-password-dialog-DL8UMjmX.526f97e577e7.css.br +0 -0
- codex/static_root/assets/change-password-dialog-DL8UMjmX.526f97e577e7.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-DL8UMjmX.css +1 -0
- codex/static_root/assets/change-password-dialog-DL8UMjmX.css.br +0 -0
- codex/static_root/assets/change-password-dialog-DL8UMjmX.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-sLOp6TLK.2aec13897e09.js +1 -0
- codex/static_root/assets/change-password-dialog-sLOp6TLK.2aec13897e09.js.br +0 -0
- codex/static_root/assets/change-password-dialog-sLOp6TLK.2aec13897e09.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-sLOp6TLK.js +1 -0
- codex/static_root/assets/change-password-dialog-sLOp6TLK.js.br +0 -0
- codex/static_root/assets/change-password-dialog-sLOp6TLK.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-BI5kQLy_.1b5309ad95ec.css +1 -0
- codex/static_root/assets/confirm-dialog-BI5kQLy_.1b5309ad95ec.css.br +0 -0
- codex/static_root/assets/confirm-dialog-BI5kQLy_.css +1 -0
- codex/static_root/assets/confirm-dialog-BI5kQLy_.css.br +0 -0
- codex/static_root/assets/confirm-dialog-oZvPeyCw.c51b29ccf135.js +1 -0
- codex/static_root/assets/confirm-dialog-oZvPeyCw.c51b29ccf135.js.br +0 -0
- codex/static_root/assets/confirm-dialog-oZvPeyCw.c51b29ccf135.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-oZvPeyCw.js +1 -0
- codex/static_root/assets/confirm-dialog-oZvPeyCw.js.br +0 -0
- codex/static_root/assets/confirm-dialog-oZvPeyCw.js.gz +0 -0
- codex/static_root/assets/{datetime-column-BLY3DVgs.eb4c74d7d40b.js → datetime-column-BsXsbUDe.c4f8db1077f2.js} +1 -1
- codex/static_root/assets/datetime-column-BsXsbUDe.c4f8db1077f2.js.br +2 -0
- codex/static_root/assets/datetime-column-BsXsbUDe.c4f8db1077f2.js.gz +0 -0
- codex/static_root/assets/{datetime-column-BLY3DVgs.js → datetime-column-BsXsbUDe.js} +1 -1
- codex/static_root/assets/datetime-column-BsXsbUDe.js.br +2 -0
- codex/static_root/assets/datetime-column-BsXsbUDe.js.gz +0 -0
- codex/static_root/assets/filter-BXwXIw0u.9ff6ae3033f0.js +1 -0
- codex/static_root/assets/filter-BXwXIw0u.9ff6ae3033f0.js.br +0 -0
- codex/static_root/assets/filter-BXwXIw0u.9ff6ae3033f0.js.gz +0 -0
- codex/static_root/assets/filter-BXwXIw0u.js +1 -0
- codex/static_root/assets/filter-BXwXIw0u.js.br +0 -0
- codex/static_root/assets/filter-BXwXIw0u.js.gz +0 -0
- codex/static_root/assets/flag-tab-CESc_7Pq.2260edfa4c38.css +1 -0
- codex/static_root/assets/flag-tab-CESc_7Pq.2260edfa4c38.css.br +1 -0
- codex/static_root/assets/flag-tab-CESc_7Pq.2260edfa4c38.css.gz +0 -0
- codex/static_root/assets/flag-tab-CESc_7Pq.css +1 -0
- codex/static_root/assets/flag-tab-CESc_7Pq.css.br +1 -0
- codex/static_root/assets/flag-tab-CESc_7Pq.css.gz +0 -0
- codex/static_root/assets/{flag-tab-D-QmPLuT.44070d940376.js → flag-tab-CaLBkxiN.ff37f7dc5aff.js} +1 -1
- codex/static_root/assets/flag-tab-CaLBkxiN.ff37f7dc5aff.js.br +0 -0
- codex/static_root/assets/flag-tab-CaLBkxiN.ff37f7dc5aff.js.gz +0 -0
- codex/static_root/assets/{flag-tab-D-QmPLuT.js → flag-tab-CaLBkxiN.js} +1 -1
- codex/static_root/assets/flag-tab-CaLBkxiN.js.br +0 -0
- codex/static_root/assets/flag-tab-CaLBkxiN.js.gz +0 -0
- codex/static_root/assets/{forwardRefs-Dab8mCr8.7b7432c76353.js → forwardRefs-CqAlwRH5.f429e5d46645.js} +1 -1
- codex/static_root/assets/forwardRefs-CqAlwRH5.f429e5d46645.js.br +0 -0
- codex/static_root/assets/forwardRefs-CqAlwRH5.f429e5d46645.js.gz +0 -0
- codex/static_root/assets/{forwardRefs-Dab8mCr8.js → forwardRefs-CqAlwRH5.js} +1 -1
- codex/static_root/assets/forwardRefs-CqAlwRH5.js.br +0 -0
- codex/static_root/assets/forwardRefs-CqAlwRH5.js.gz +0 -0
- codex/static_root/assets/{group-tab-CIU-U5vV.1b0046144f3d.js → group-tab-CwgBkm2O.977524c346bb.js} +1 -1
- codex/static_root/assets/group-tab-CwgBkm2O.977524c346bb.js.br +0 -0
- codex/static_root/assets/group-tab-CwgBkm2O.977524c346bb.js.gz +0 -0
- codex/static_root/assets/{group-tab-CIU-U5vV.js → group-tab-CwgBkm2O.js} +1 -1
- codex/static_root/assets/group-tab-CwgBkm2O.js.br +0 -0
- codex/static_root/assets/group-tab-CwgBkm2O.js.gz +0 -0
- codex/static_root/assets/{http-error-DC-8e3vW.7b7ee0f57ed8.js → http-error-1EUD0mgB.429e5751770c.js} +1 -1
- codex/static_root/assets/http-error-1EUD0mgB.429e5751770c.js.br +0 -0
- codex/static_root/assets/http-error-1EUD0mgB.429e5751770c.js.gz +0 -0
- codex/static_root/assets/{http-error-DC-8e3vW.js → http-error-1EUD0mgB.js} +1 -1
- codex/static_root/assets/http-error-1EUD0mgB.js.br +0 -0
- codex/static_root/assets/http-error-1EUD0mgB.js.gz +0 -0
- codex/static_root/assets/{index-GAPixOVo.228bbe0a7550.js → index-BXX_CFtA.4b5db6d40019.js} +1 -1
- codex/static_root/assets/index-BXX_CFtA.4b5db6d40019.js.br +0 -0
- codex/static_root/assets/index-BXX_CFtA.4b5db6d40019.js.gz +0 -0
- codex/static_root/assets/{index-GAPixOVo.js → index-BXX_CFtA.js} +1 -1
- codex/static_root/assets/index-BXX_CFtA.js.br +0 -0
- codex/static_root/assets/index-BXX_CFtA.js.gz +0 -0
- codex/static_root/assets/library-tab-DfefgeJ9.2216ab51fb3d.js +1 -0
- codex/static_root/assets/library-tab-DfefgeJ9.2216ab51fb3d.js.br +0 -0
- codex/static_root/assets/library-tab-DfefgeJ9.2216ab51fb3d.js.gz +0 -0
- codex/static_root/assets/library-tab-DfefgeJ9.js +1 -0
- codex/static_root/assets/library-tab-DfefgeJ9.js.br +0 -0
- codex/static_root/assets/library-tab-DfefgeJ9.js.gz +0 -0
- codex/static_root/assets/{library-tab-CgsXOX_r.75baedb7e976.css → library-tab-thTonyXr.58b745660d42.css} +1 -1
- codex/static_root/assets/library-tab-thTonyXr.58b745660d42.css.br +0 -0
- codex/static_root/assets/library-tab-thTonyXr.58b745660d42.css.gz +0 -0
- codex/static_root/assets/{library-tab-CgsXOX_r.css → library-tab-thTonyXr.css} +1 -1
- codex/static_root/assets/library-tab-thTonyXr.css.br +0 -0
- codex/static_root/assets/library-tab-thTonyXr.css.gz +0 -0
- codex/static_root/assets/main-DTZJMtFc.9b5801c1c4f4.js +35 -0
- codex/static_root/assets/main-DTZJMtFc.9b5801c1c4f4.js.br +0 -0
- codex/static_root/assets/main-DTZJMtFc.9b5801c1c4f4.js.gz +0 -0
- codex/static_root/assets/main-DTZJMtFc.js +35 -0
- codex/static_root/assets/main-DTZJMtFc.js.br +0 -0
- codex/static_root/assets/main-DTZJMtFc.js.gz +0 -0
- codex/static_root/assets/pager-full-pdf-BcSKaf8m.381858040c3d.js +1 -0
- codex/static_root/assets/pager-full-pdf-BcSKaf8m.381858040c3d.js.br +0 -0
- codex/static_root/assets/pager-full-pdf-BcSKaf8m.381858040c3d.js.gz +0 -0
- codex/static_root/assets/pager-full-pdf-BcSKaf8m.js +1 -0
- codex/static_root/assets/pager-full-pdf-BcSKaf8m.js.br +0 -0
- codex/static_root/assets/pager-full-pdf-BcSKaf8m.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-C_xCbB_P.d49e3dbda04b.js +1 -0
- codex/static_root/assets/pagination-toolbar-C_xCbB_P.d49e3dbda04b.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-C_xCbB_P.d49e3dbda04b.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-C_xCbB_P.js +1 -0
- codex/static_root/assets/pagination-toolbar-C_xCbB_P.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-C_xCbB_P.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-CqsoppQf.css +1 -0
- codex/static_root/assets/pagination-toolbar-CqsoppQf.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-CqsoppQf.css.gz +0 -0
- codex/static_root/assets/pagination-toolbar-CqsoppQf.e58a5a1d3566.css +1 -0
- codex/static_root/assets/pagination-toolbar-CqsoppQf.e58a5a1d3566.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-CqsoppQf.e58a5a1d3566.css.gz +0 -0
- codex/static_root/assets/{pdf-doc-oUfOBdSn.75136d8eed5f.js → pdf-doc-Gq3sFXgk.bf0d8439f2ff.js} +14 -14
- codex/static_root/assets/pdf-doc-Gq3sFXgk.bf0d8439f2ff.js.br +0 -0
- codex/static_root/assets/pdf-doc-Gq3sFXgk.bf0d8439f2ff.js.gz +0 -0
- codex/static_root/assets/{pdf-doc-oUfOBdSn.js → pdf-doc-Gq3sFXgk.js} +14 -14
- codex/static_root/assets/pdf-doc-Gq3sFXgk.js.br +0 -0
- codex/static_root/assets/pdf-doc-Gq3sFXgk.js.gz +0 -0
- codex/static_root/assets/{reader-D_3ruSqa.2ed32f08e906.css → reader-Bcw698_5.b73e2757553f.css} +1 -1
- codex/static_root/assets/reader-Bcw698_5.b73e2757553f.css.br +0 -0
- codex/static_root/assets/reader-Bcw698_5.b73e2757553f.css.gz +0 -0
- codex/static_root/assets/{reader-D_3ruSqa.css → reader-Bcw698_5.css} +1 -1
- codex/static_root/assets/reader-Bcw698_5.css.br +0 -0
- codex/static_root/assets/reader-Bcw698_5.css.gz +0 -0
- codex/static_root/assets/reader-CMIzQ69v.af8a81ee4933.js +2 -0
- codex/static_root/assets/reader-CMIzQ69v.af8a81ee4933.js.br +0 -0
- codex/static_root/assets/reader-CMIzQ69v.af8a81ee4933.js.gz +0 -0
- codex/static_root/assets/reader-CMIzQ69v.js +2 -0
- codex/static_root/assets/reader-CMIzQ69v.js.br +0 -0
- codex/static_root/assets/reader-CMIzQ69v.js.gz +0 -0
- codex/static_root/assets/{relation-chips-DpbzrZxT.01269a188e01.css → relation-chips-CifZPloM.css} +1 -1
- codex/static_root/assets/relation-chips-CifZPloM.css.br +0 -0
- codex/static_root/assets/relation-chips-CifZPloM.css.gz +0 -0
- codex/static_root/assets/{relation-chips-DpbzrZxT.css → relation-chips-CifZPloM.e1f40ac9ae8b.css} +1 -1
- codex/static_root/assets/relation-chips-CifZPloM.e1f40ac9ae8b.css.br +0 -0
- codex/static_root/assets/relation-chips-CifZPloM.e1f40ac9ae8b.css.gz +0 -0
- codex/static_root/assets/{relation-chips-Cy6kOLs0.ba209da98775.js → relation-chips-DogFotgq.ff6358c92f7b.js} +1 -1
- codex/static_root/assets/relation-chips-DogFotgq.ff6358c92f7b.js.br +0 -0
- codex/static_root/assets/relation-chips-DogFotgq.ff6358c92f7b.js.gz +0 -0
- codex/static_root/assets/{relation-chips-Cy6kOLs0.js → relation-chips-DogFotgq.js} +1 -1
- codex/static_root/assets/relation-chips-DogFotgq.js.br +0 -0
- codex/static_root/assets/relation-chips-DogFotgq.js.gz +0 -0
- codex/static_root/assets/settings-drawer-Bgy-v53G.e38619bb3a21.js +2 -0
- codex/static_root/assets/settings-drawer-Bgy-v53G.e38619bb3a21.js.br +0 -0
- codex/static_root/assets/settings-drawer-Bgy-v53G.e38619bb3a21.js.gz +0 -0
- codex/static_root/assets/settings-drawer-Bgy-v53G.js +2 -0
- codex/static_root/assets/settings-drawer-Bgy-v53G.js.br +0 -0
- codex/static_root/assets/settings-drawer-Bgy-v53G.js.gz +0 -0
- codex/static_root/assets/{settings-drawer-DMSsWF8c.75a6ea969e71.css → settings-drawer-Bl-6rF9E.7ace6186c209.css} +1 -1
- codex/static_root/assets/settings-drawer-Bl-6rF9E.7ace6186c209.css.br +0 -0
- codex/static_root/assets/settings-drawer-Bl-6rF9E.7ace6186c209.css.gz +0 -0
- codex/static_root/assets/{settings-drawer-DMSsWF8c.css → settings-drawer-Bl-6rF9E.css} +1 -1
- codex/static_root/assets/settings-drawer-Bl-6rF9E.css.br +0 -0
- codex/static_root/assets/settings-drawer-Bl-6rF9E.css.gz +0 -0
- codex/static_root/assets/{ssrBoot-F-kio-Y3.250480c1569f.js → ssrBoot-BBD0SpTn.0e2d87430f10.js} +1 -1
- codex/static_root/assets/ssrBoot-BBD0SpTn.0e2d87430f10.js.br +0 -0
- codex/static_root/assets/ssrBoot-BBD0SpTn.0e2d87430f10.js.gz +0 -0
- codex/static_root/assets/{ssrBoot-F-kio-Y3.js → ssrBoot-BBD0SpTn.js} +1 -1
- codex/static_root/assets/ssrBoot-BBD0SpTn.js.br +0 -0
- codex/static_root/assets/ssrBoot-BBD0SpTn.js.gz +0 -0
- codex/static_root/assets/{stats-tab-WvF2acoZ.9fdb0106124d.css → stats-tab-B6L711cO.b6a42655cd70.css} +1 -1
- codex/static_root/assets/stats-tab-B6L711cO.b6a42655cd70.css.br +2 -0
- codex/static_root/assets/stats-tab-B6L711cO.b6a42655cd70.css.gz +0 -0
- codex/static_root/assets/{stats-tab-WvF2acoZ.css → stats-tab-B6L711cO.css} +1 -1
- codex/static_root/assets/stats-tab-B6L711cO.css.br +2 -0
- codex/static_root/assets/stats-tab-B6L711cO.css.gz +0 -0
- codex/static_root/assets/stats-tab-GO5hZBwz.3d99d408f27f.js +1 -0
- codex/static_root/assets/stats-tab-GO5hZBwz.3d99d408f27f.js.br +0 -0
- codex/static_root/assets/stats-tab-GO5hZBwz.3d99d408f27f.js.gz +0 -0
- codex/static_root/assets/stats-tab-GO5hZBwz.js +1 -0
- codex/static_root/assets/stats-tab-GO5hZBwz.js.br +0 -0
- codex/static_root/assets/stats-tab-GO5hZBwz.js.gz +0 -0
- codex/static_root/assets/{task-tab-DDb-IDw3.c646eb5b169c.js → task-tab-BXfkWbVA.f5ab0fcf38a2.js} +1 -1
- codex/static_root/assets/task-tab-BXfkWbVA.f5ab0fcf38a2.js.br +0 -0
- codex/static_root/assets/task-tab-BXfkWbVA.f5ab0fcf38a2.js.gz +0 -0
- codex/static_root/assets/{task-tab-DDb-IDw3.js → task-tab-BXfkWbVA.js} +1 -1
- codex/static_root/assets/task-tab-BXfkWbVA.js.br +0 -0
- codex/static_root/assets/task-tab-BXfkWbVA.js.gz +0 -0
- codex/static_root/assets/{unauthorized-CsSak07X.c5536d9dae75.css → unauthorized-CtkV01lw.8668ffe7b306.css} +1 -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-CsSak07X.css → unauthorized-CtkV01lw.css} +1 -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/unauthorized-DJAN2cQL.754b87c5b6e3.js +1 -0
- codex/static_root/assets/unauthorized-DJAN2cQL.754b87c5b6e3.js.br +0 -0
- codex/static_root/assets/unauthorized-DJAN2cQL.754b87c5b6e3.js.gz +0 -0
- codex/static_root/assets/unauthorized-DJAN2cQL.js +1 -0
- codex/static_root/assets/unauthorized-DJAN2cQL.js.br +0 -0
- codex/static_root/assets/unauthorized-DJAN2cQL.js.gz +0 -0
- codex/static_root/assets/{user-tab-C-_g4ZN2.b74c5c237a19.js → user-tab-DWHTLASk.0b9861fb37e5.js} +1 -1
- codex/static_root/assets/user-tab-DWHTLASk.0b9861fb37e5.js.br +0 -0
- codex/static_root/assets/user-tab-DWHTLASk.0b9861fb37e5.js.gz +0 -0
- codex/static_root/assets/{user-tab-C-_g4ZN2.js → user-tab-DWHTLASk.js} +1 -1
- codex/static_root/assets/user-tab-DWHTLASk.js.br +0 -0
- codex/static_root/assets/user-tab-DWHTLASk.js.gz +0 -0
- codex/static_root/{manifest.a36b86d4fb81.json → manifest.8aca4eda8739.json} +291 -289
- codex/static_root/manifest.8aca4eda8739.json.br +0 -0
- codex/static_root/manifest.8aca4eda8739.json.gz +0 -0
- codex/static_root/manifest.json +291 -289
- 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 +27 -32
- codex/views/admin/tasks.py +4 -3
- codex/views/browser/filters/group.py +1 -1
- codex/views/browser/metadata/annotate.py +13 -14
- codex/views/browser/metadata/copy_intersections.py +9 -17
- codex/views/browser/metadata/query_intersections.py +0 -2
- {codex-1.7.7.dist-info → codex-1.7.8.dist-info}/METADATA +1 -1
- {codex-1.7.7.dist-info → codex-1.7.8.dist-info}/RECORD +338 -337
- codex/static_root/assets/VCheckbox-Dsd2BsZ5.7c41fb3e8ba4.js +0 -1
- codex/static_root/assets/VCheckbox-Dsd2BsZ5.7c41fb3e8ba4.js.br +0 -0
- codex/static_root/assets/VCheckbox-Dsd2BsZ5.7c41fb3e8ba4.js.gz +0 -0
- codex/static_root/assets/VCheckbox-Dsd2BsZ5.js +0 -1
- codex/static_root/assets/VCheckbox-Dsd2BsZ5.js.br +0 -0
- codex/static_root/assets/VCheckbox-Dsd2BsZ5.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-DUIOks3V.c14c841b2965.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-DUIOks3V.c14c841b2965.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-DUIOks3V.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-DUIOks3V.js.gz +0 -0
- codex/static_root/assets/VCombobox-Gz9N06nz.668b85a54990.js.br +0 -0
- codex/static_root/assets/VCombobox-Gz9N06nz.668b85a54990.js.gz +0 -0
- codex/static_root/assets/VCombobox-Gz9N06nz.js.br +0 -0
- codex/static_root/assets/VCombobox-Gz9N06nz.js.gz +0 -0
- codex/static_root/assets/VDialog-BDaX1tXA.c61bfde6cb2a.css.br +0 -0
- codex/static_root/assets/VDialog-BDaX1tXA.c61bfde6cb2a.css.gz +0 -0
- codex/static_root/assets/VDialog-BDaX1tXA.css.br +0 -0
- codex/static_root/assets/VDialog-BDaX1tXA.css.gz +0 -0
- codex/static_root/assets/VDialog-JYjcWZ0u.91bd96a0d870.js.br +0 -0
- codex/static_root/assets/VDialog-JYjcWZ0u.91bd96a0d870.js.gz +0 -0
- codex/static_root/assets/VDialog-JYjcWZ0u.js.br +0 -0
- codex/static_root/assets/VDialog-JYjcWZ0u.js.gz +0 -0
- codex/static_root/assets/VDivider-Coot1SE9.c585b1971696.js.br +0 -0
- codex/static_root/assets/VDivider-Coot1SE9.c585b1971696.js.gz +0 -0
- codex/static_root/assets/VDivider-Coot1SE9.js.br +0 -0
- codex/static_root/assets/VDivider-Coot1SE9.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-DSaZZJ_i.c5bf69cefe7c.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-DSaZZJ_i.c5bf69cefe7c.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-DSaZZJ_i.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-DSaZZJ_i.js.gz +0 -0
- codex/static_root/assets/VForm-CsURMe0X.e8dbbd6714c7.js.br +0 -0
- codex/static_root/assets/VForm-CsURMe0X.e8dbbd6714c7.js.gz +0 -0
- codex/static_root/assets/VForm-CsURMe0X.js.br +0 -0
- codex/static_root/assets/VForm-CsURMe0X.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-BfMW9v1C.b6c552d3ebd9.js.br +0 -0
- codex/static_root/assets/VRadioGroup-BfMW9v1C.b6c552d3ebd9.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-BfMW9v1C.js.br +0 -0
- codex/static_root/assets/VRadioGroup-BfMW9v1C.js.gz +0 -0
- codex/static_root/assets/VSelect-DF_7_wrq.50eb35ef8034.js +0 -1
- codex/static_root/assets/VSelect-DF_7_wrq.50eb35ef8034.js.br +0 -0
- codex/static_root/assets/VSelect-DF_7_wrq.50eb35ef8034.js.gz +0 -0
- codex/static_root/assets/VSelect-DF_7_wrq.js +0 -1
- codex/static_root/assets/VSelect-DF_7_wrq.js.br +0 -0
- codex/static_root/assets/VSelect-DF_7_wrq.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-C-U8aPN3.ee2ff0451f30.js.br +0 -0
- codex/static_root/assets/VSelectionControl-C-U8aPN3.ee2ff0451f30.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-C-U8aPN3.js.br +0 -0
- codex/static_root/assets/VSelectionControl-C-U8aPN3.js.gz +0 -0
- codex/static_root/assets/VTable-CApWgl_Z.73e5dc6daac2.js.br +0 -0
- codex/static_root/assets/VTable-CApWgl_Z.73e5dc6daac2.js.gz +0 -0
- codex/static_root/assets/VTable-CApWgl_Z.js.br +0 -0
- codex/static_root/assets/VTable-CApWgl_Z.js.gz +0 -0
- codex/static_root/assets/VWindowItem-BkKshOEy.a5227da9ba5b.js.br +0 -0
- codex/static_root/assets/VWindowItem-BkKshOEy.a5227da9ba5b.js.gz +0 -0
- codex/static_root/assets/VWindowItem-BkKshOEy.js.br +0 -0
- codex/static_root/assets/VWindowItem-BkKshOEy.js.gz +0 -0
- codex/static_root/assets/admin-Dl90w4xx.a9772c680e4a.js.br +0 -0
- codex/static_root/assets/admin-Dl90w4xx.a9772c680e4a.js.gz +0 -0
- codex/static_root/assets/admin-Dl90w4xx.js.br +0 -0
- codex/static_root/assets/admin-Dl90w4xx.js.gz +0 -0
- codex/static_root/assets/admin-kog1vr1-.68109a677a58.js.br +0 -0
- codex/static_root/assets/admin-kog1vr1-.68109a677a58.js.gz +0 -0
- codex/static_root/assets/admin-kog1vr1-.js.br +0 -0
- codex/static_root/assets/admin-kog1vr1-.js.gz +0 -0
- codex/static_root/assets/admin-menu-B3iXsOyy.c13b7df2ff57.css +0 -1
- codex/static_root/assets/admin-menu-B3iXsOyy.c13b7df2ff57.css.br +0 -0
- codex/static_root/assets/admin-menu-B3iXsOyy.c13b7df2ff57.css.gz +0 -0
- codex/static_root/assets/admin-menu-B3iXsOyy.css +0 -1
- codex/static_root/assets/admin-menu-B3iXsOyy.css.br +0 -0
- codex/static_root/assets/admin-menu-B3iXsOyy.css.gz +0 -0
- codex/static_root/assets/admin-menu-B5Tu5d7c.a958d8ce60e8.js +0 -1
- codex/static_root/assets/admin-menu-B5Tu5d7c.a958d8ce60e8.js.br +0 -0
- codex/static_root/assets/admin-menu-B5Tu5d7c.a958d8ce60e8.js.gz +0 -0
- codex/static_root/assets/admin-menu-B5Tu5d7c.js +0 -1
- codex/static_root/assets/admin-menu-B5Tu5d7c.js.br +0 -0
- codex/static_root/assets/admin-menu-B5Tu5d7c.js.gz +0 -0
- codex/static_root/assets/admin-settings-button-progress-Dflyj3Tj.ee985c7f4955.js.br +0 -0
- codex/static_root/assets/admin-settings-button-progress-Dflyj3Tj.ee985c7f4955.js.gz +0 -0
- codex/static_root/assets/admin-settings-button-progress-Dflyj3Tj.js.br +0 -0
- codex/static_root/assets/admin-settings-button-progress-Dflyj3Tj.js.gz +0 -0
- codex/static_root/assets/browser-Dn9VeG9o.41160f5f3581.js +0 -1
- codex/static_root/assets/browser-Dn9VeG9o.41160f5f3581.js.br +0 -0
- codex/static_root/assets/browser-Dn9VeG9o.41160f5f3581.js.gz +0 -0
- codex/static_root/assets/browser-Dn9VeG9o.js +0 -1
- codex/static_root/assets/browser-Dn9VeG9o.js.br +0 -0
- codex/static_root/assets/browser-Dn9VeG9o.js.gz +0 -0
- codex/static_root/assets/browser-gQKq4cjC.3225a1a29760.css.br +0 -0
- codex/static_root/assets/browser-gQKq4cjC.3225a1a29760.css.gz +0 -0
- codex/static_root/assets/browser-gQKq4cjC.css.br +0 -0
- codex/static_root/assets/browser-gQKq4cjC.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-D0ymWcl_.a30e68c6e303.css +0 -1
- codex/static_root/assets/change-password-dialog-D0ymWcl_.a30e68c6e303.css.br +0 -0
- codex/static_root/assets/change-password-dialog-D0ymWcl_.a30e68c6e303.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-D0ymWcl_.css +0 -1
- codex/static_root/assets/change-password-dialog-D0ymWcl_.css.br +0 -0
- codex/static_root/assets/change-password-dialog-D0ymWcl_.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-bLA6nGQc.19de45f2d34d.js +0 -1
- codex/static_root/assets/change-password-dialog-bLA6nGQc.19de45f2d34d.js.br +0 -0
- codex/static_root/assets/change-password-dialog-bLA6nGQc.19de45f2d34d.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-bLA6nGQc.js +0 -1
- codex/static_root/assets/change-password-dialog-bLA6nGQc.js.br +0 -0
- codex/static_root/assets/change-password-dialog-bLA6nGQc.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-B1ABbGMU.9b5915b112c0.css +0 -1
- codex/static_root/assets/confirm-dialog-B1ABbGMU.9b5915b112c0.css.br +0 -0
- codex/static_root/assets/confirm-dialog-B1ABbGMU.css +0 -1
- codex/static_root/assets/confirm-dialog-B1ABbGMU.css.br +0 -0
- codex/static_root/assets/confirm-dialog-DP3s37VG.bc0812da4a41.js +0 -1
- codex/static_root/assets/confirm-dialog-DP3s37VG.bc0812da4a41.js.br +0 -0
- codex/static_root/assets/confirm-dialog-DP3s37VG.bc0812da4a41.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-DP3s37VG.js +0 -1
- codex/static_root/assets/confirm-dialog-DP3s37VG.js.br +0 -0
- codex/static_root/assets/confirm-dialog-DP3s37VG.js.gz +0 -0
- codex/static_root/assets/datetime-column-BLY3DVgs.eb4c74d7d40b.js.br +0 -0
- codex/static_root/assets/datetime-column-BLY3DVgs.eb4c74d7d40b.js.gz +0 -0
- codex/static_root/assets/datetime-column-BLY3DVgs.js.br +0 -0
- codex/static_root/assets/datetime-column-BLY3DVgs.js.gz +0 -0
- codex/static_root/assets/filter-D_J5NTMN.19d3621572c3.js +0 -1
- codex/static_root/assets/filter-D_J5NTMN.19d3621572c3.js.br +0 -0
- codex/static_root/assets/filter-D_J5NTMN.19d3621572c3.js.gz +0 -0
- codex/static_root/assets/filter-D_J5NTMN.js +0 -1
- codex/static_root/assets/filter-D_J5NTMN.js.br +0 -0
- codex/static_root/assets/filter-D_J5NTMN.js.gz +0 -0
- codex/static_root/assets/flag-tab-D-QmPLuT.44070d940376.js.br +0 -0
- codex/static_root/assets/flag-tab-D-QmPLuT.44070d940376.js.gz +0 -0
- codex/static_root/assets/flag-tab-D-QmPLuT.js.br +0 -0
- codex/static_root/assets/flag-tab-D-QmPLuT.js.gz +0 -0
- codex/static_root/assets/flag-tab-D2MYXCHk.0f57e109c01b.css +0 -1
- codex/static_root/assets/flag-tab-D2MYXCHk.0f57e109c01b.css.br +0 -0
- codex/static_root/assets/flag-tab-D2MYXCHk.0f57e109c01b.css.gz +0 -0
- codex/static_root/assets/flag-tab-D2MYXCHk.css +0 -1
- codex/static_root/assets/flag-tab-D2MYXCHk.css.br +0 -0
- codex/static_root/assets/flag-tab-D2MYXCHk.css.gz +0 -0
- codex/static_root/assets/forwardRefs-Dab8mCr8.7b7432c76353.js.br +0 -0
- codex/static_root/assets/forwardRefs-Dab8mCr8.7b7432c76353.js.gz +0 -0
- codex/static_root/assets/forwardRefs-Dab8mCr8.js.br +0 -0
- codex/static_root/assets/forwardRefs-Dab8mCr8.js.gz +0 -0
- codex/static_root/assets/group-tab-CIU-U5vV.1b0046144f3d.js.br +0 -0
- codex/static_root/assets/group-tab-CIU-U5vV.1b0046144f3d.js.gz +0 -0
- codex/static_root/assets/group-tab-CIU-U5vV.js.br +0 -0
- codex/static_root/assets/group-tab-CIU-U5vV.js.gz +0 -0
- codex/static_root/assets/http-error-DC-8e3vW.7b7ee0f57ed8.js.br +0 -0
- codex/static_root/assets/http-error-DC-8e3vW.7b7ee0f57ed8.js.gz +0 -0
- codex/static_root/assets/http-error-DC-8e3vW.js.br +0 -0
- codex/static_root/assets/http-error-DC-8e3vW.js.gz +0 -0
- codex/static_root/assets/index-GAPixOVo.228bbe0a7550.js.br +0 -0
- codex/static_root/assets/index-GAPixOVo.228bbe0a7550.js.gz +0 -0
- codex/static_root/assets/index-GAPixOVo.js.br +0 -0
- codex/static_root/assets/index-GAPixOVo.js.gz +0 -0
- codex/static_root/assets/library-tab-CgsXOX_r.75baedb7e976.css.br +0 -0
- codex/static_root/assets/library-tab-CgsXOX_r.75baedb7e976.css.gz +0 -0
- codex/static_root/assets/library-tab-CgsXOX_r.css.br +0 -0
- codex/static_root/assets/library-tab-CgsXOX_r.css.gz +0 -0
- codex/static_root/assets/library-tab-DErITV3q.c6b99695a024.js +0 -1
- codex/static_root/assets/library-tab-DErITV3q.c6b99695a024.js.br +0 -0
- codex/static_root/assets/library-tab-DErITV3q.c6b99695a024.js.gz +0 -0
- codex/static_root/assets/library-tab-DErITV3q.js +0 -1
- codex/static_root/assets/library-tab-DErITV3q.js.br +0 -0
- codex/static_root/assets/library-tab-DErITV3q.js.gz +0 -0
- codex/static_root/assets/main-CqJrEeXs.1f4589cf31cf.js +0 -35
- codex/static_root/assets/main-CqJrEeXs.1f4589cf31cf.js.br +0 -0
- codex/static_root/assets/main-CqJrEeXs.1f4589cf31cf.js.gz +0 -0
- codex/static_root/assets/main-CqJrEeXs.js +0 -35
- codex/static_root/assets/main-CqJrEeXs.js.br +0 -0
- codex/static_root/assets/main-CqJrEeXs.js.gz +0 -0
- codex/static_root/assets/pager-full-pdf-Dp4zwooA.5bb892a48840.js +0 -1
- codex/static_root/assets/pager-full-pdf-Dp4zwooA.5bb892a48840.js.br +0 -0
- codex/static_root/assets/pager-full-pdf-Dp4zwooA.5bb892a48840.js.gz +0 -0
- codex/static_root/assets/pager-full-pdf-Dp4zwooA.js +0 -1
- codex/static_root/assets/pager-full-pdf-Dp4zwooA.js.br +0 -0
- codex/static_root/assets/pager-full-pdf-Dp4zwooA.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-CvX4XUda.css +0 -1
- codex/static_root/assets/pagination-toolbar-CvX4XUda.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-CvX4XUda.css.gz +0 -0
- codex/static_root/assets/pagination-toolbar-CvX4XUda.ff9de32b532c.css +0 -1
- codex/static_root/assets/pagination-toolbar-CvX4XUda.ff9de32b532c.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-CvX4XUda.ff9de32b532c.css.gz +0 -0
- codex/static_root/assets/pagination-toolbar-Duga1Fnw.73b0b8438281.js +0 -1
- codex/static_root/assets/pagination-toolbar-Duga1Fnw.73b0b8438281.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-Duga1Fnw.73b0b8438281.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-Duga1Fnw.js +0 -1
- codex/static_root/assets/pagination-toolbar-Duga1Fnw.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-Duga1Fnw.js.gz +0 -0
- codex/static_root/assets/pdf-doc-oUfOBdSn.75136d8eed5f.js.br +0 -0
- codex/static_root/assets/pdf-doc-oUfOBdSn.75136d8eed5f.js.gz +0 -0
- codex/static_root/assets/pdf-doc-oUfOBdSn.js.br +0 -0
- codex/static_root/assets/pdf-doc-oUfOBdSn.js.gz +0 -0
- codex/static_root/assets/reader-C2NlMEoN.5b153c060e98.js +0 -2
- codex/static_root/assets/reader-C2NlMEoN.5b153c060e98.js.br +0 -0
- codex/static_root/assets/reader-C2NlMEoN.5b153c060e98.js.gz +0 -0
- codex/static_root/assets/reader-C2NlMEoN.js +0 -2
- codex/static_root/assets/reader-C2NlMEoN.js.br +0 -0
- codex/static_root/assets/reader-C2NlMEoN.js.gz +0 -0
- codex/static_root/assets/reader-D_3ruSqa.2ed32f08e906.css.br +0 -0
- codex/static_root/assets/reader-D_3ruSqa.2ed32f08e906.css.gz +0 -0
- codex/static_root/assets/reader-D_3ruSqa.css.br +0 -0
- codex/static_root/assets/reader-D_3ruSqa.css.gz +0 -0
- codex/static_root/assets/relation-chips-Cy6kOLs0.ba209da98775.js.br +0 -0
- codex/static_root/assets/relation-chips-Cy6kOLs0.ba209da98775.js.gz +0 -0
- codex/static_root/assets/relation-chips-Cy6kOLs0.js.br +0 -0
- codex/static_root/assets/relation-chips-Cy6kOLs0.js.gz +0 -0
- codex/static_root/assets/relation-chips-DpbzrZxT.01269a188e01.css.br +0 -0
- codex/static_root/assets/relation-chips-DpbzrZxT.01269a188e01.css.gz +0 -0
- codex/static_root/assets/relation-chips-DpbzrZxT.css.br +0 -0
- codex/static_root/assets/relation-chips-DpbzrZxT.css.gz +0 -0
- codex/static_root/assets/settings-drawer-DMSsWF8c.75a6ea969e71.css.br +0 -0
- codex/static_root/assets/settings-drawer-DMSsWF8c.75a6ea969e71.css.gz +0 -0
- codex/static_root/assets/settings-drawer-DMSsWF8c.css.br +0 -0
- codex/static_root/assets/settings-drawer-DMSsWF8c.css.gz +0 -0
- codex/static_root/assets/settings-drawer-Dg9ZpGZH.87f4c8788dc7.js +0 -2
- codex/static_root/assets/settings-drawer-Dg9ZpGZH.87f4c8788dc7.js.br +0 -0
- codex/static_root/assets/settings-drawer-Dg9ZpGZH.87f4c8788dc7.js.gz +0 -0
- codex/static_root/assets/settings-drawer-Dg9ZpGZH.js +0 -2
- codex/static_root/assets/settings-drawer-Dg9ZpGZH.js.br +0 -0
- codex/static_root/assets/settings-drawer-Dg9ZpGZH.js.gz +0 -0
- codex/static_root/assets/ssrBoot-F-kio-Y3.250480c1569f.js.br +0 -0
- codex/static_root/assets/ssrBoot-F-kio-Y3.250480c1569f.js.gz +0 -0
- codex/static_root/assets/ssrBoot-F-kio-Y3.js.br +0 -0
- codex/static_root/assets/ssrBoot-F-kio-Y3.js.gz +0 -0
- codex/static_root/assets/stats-tab-BAV89h6B.ea756cc7c5df.js +0 -1
- codex/static_root/assets/stats-tab-BAV89h6B.ea756cc7c5df.js.br +0 -0
- codex/static_root/assets/stats-tab-BAV89h6B.ea756cc7c5df.js.gz +0 -0
- codex/static_root/assets/stats-tab-BAV89h6B.js +0 -1
- codex/static_root/assets/stats-tab-BAV89h6B.js.br +0 -0
- codex/static_root/assets/stats-tab-BAV89h6B.js.gz +0 -0
- codex/static_root/assets/stats-tab-WvF2acoZ.9fdb0106124d.css.br +0 -0
- codex/static_root/assets/stats-tab-WvF2acoZ.9fdb0106124d.css.gz +0 -0
- codex/static_root/assets/stats-tab-WvF2acoZ.css.br +0 -0
- codex/static_root/assets/stats-tab-WvF2acoZ.css.gz +0 -0
- codex/static_root/assets/task-tab-DDb-IDw3.c646eb5b169c.js.br +0 -0
- codex/static_root/assets/task-tab-DDb-IDw3.c646eb5b169c.js.gz +0 -0
- codex/static_root/assets/task-tab-DDb-IDw3.js.br +0 -0
- codex/static_root/assets/task-tab-DDb-IDw3.js.gz +0 -0
- codex/static_root/assets/unauthorized-CsSak07X.c5536d9dae75.css.br +0 -0
- codex/static_root/assets/unauthorized-CsSak07X.c5536d9dae75.css.gz +0 -0
- codex/static_root/assets/unauthorized-CsSak07X.css.br +0 -0
- codex/static_root/assets/unauthorized-CsSak07X.css.gz +0 -0
- codex/static_root/assets/unauthorized-D_ZoMvmO.2b6fe3730dd1.js +0 -1
- codex/static_root/assets/unauthorized-D_ZoMvmO.2b6fe3730dd1.js.br +0 -0
- codex/static_root/assets/unauthorized-D_ZoMvmO.2b6fe3730dd1.js.gz +0 -0
- codex/static_root/assets/unauthorized-D_ZoMvmO.js +0 -1
- codex/static_root/assets/unauthorized-D_ZoMvmO.js.br +0 -0
- codex/static_root/assets/unauthorized-D_ZoMvmO.js.gz +0 -0
- codex/static_root/assets/user-tab-C-_g4ZN2.b74c5c237a19.js.br +0 -0
- codex/static_root/assets/user-tab-C-_g4ZN2.b74c5c237a19.js.gz +0 -0
- codex/static_root/assets/user-tab-C-_g4ZN2.js.br +0 -0
- codex/static_root/assets/user-tab-C-_g4ZN2.js.gz +0 -0
- codex/static_root/manifest.a36b86d4fb81.json.br +0 -0
- codex/static_root/manifest.a36b86d4fb81.json.gz +0 -0
- {codex-1.7.7.dist-info → codex-1.7.8.dist-info}/LICENSE +0 -0
- {codex-1.7.7.dist-info → codex-1.7.8.dist-info}/WHEEL +0 -0
- {codex-1.7.7.dist-info → codex-1.7.8.dist-info}/entry_points.txt +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"paths": {"rest_framework/docs/img/favicon.ico": "rest_framework/docs/img/favicon.5195b4d0f3eb.ico", "rest_framework/docs/img/grid.png": "rest_framework/docs/img/grid.a4b938cf382b.png", "rest_framework/docs/css/jquery.json-view.min.css": "rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css", "rest_framework/docs/css/highlight.css": "rest_framework/docs/css/highlight.e0e4d973c6d7.css", "rest_framework/docs/css/base.css": "rest_framework/docs/css/base.e630f8f4990e.css", "rest_framework/docs/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "rest_framework/docs/js/api.js": "rest_framework/docs/js/api.18a5ba8a1bd8.js", "rest_framework/docs/js/jquery.json-view.min.js": "rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/fonts/fontawesome-webfont.ttf": "rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/fonts/glyphicons-halflings-regular.woff2": "rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2", "rest_framework/img/glyphicons-halflings.png": "rest_framework/img/glyphicons-halflings.90233c9067e9.png", "rest_framework/img/glyphicons-halflings-white.png": "rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png", "rest_framework/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.f17d4516b026.css", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css", "rest_framework/css/font-awesome-4.0.3.css": "rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css", "rest_framework/css/bootstrap-tweaks.css": "rest_framework/css/bootstrap-tweaks.ee4ee6acf9eb.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/bootstrap.min.css.map": "rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map", "rest_framework/js/ajax-form.js": "rest_framework/js/ajax-form.4e1cdcb7acab.js", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.js", "rest_framework/js/default.js": "rest_framework/js/default.5b08897dbdc3.js", "rest_framework/js/load-ajax-form.js": "rest_framework/js/load-ajax-form.8cdb3a9f3466.js", "rest_framework/js/coreapi-0.1.1.js": "rest_framework/js/coreapi-0.1.1.8851fb9336c9.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.455080a7b2ce.js", "rest_framework/js/jquery-3.7.1.min.js": "rest_framework/js/jquery-3.7.1.min.2c872dbe60f4.js", "rest_framework/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.js", "img/story-arc.svg": "img/story-arc.ca10014355ef.svg", "img/logo-maskable.svg": "img/logo-maskable.8f7de7f1c6a8.svg", "img/folder.svg": "img/folder.f28936a3701d.svg", "img/missing-cover-165.webp": "img/missing-cover-165.0743171f2148.webp", "img/missing-cover.svg": "img/missing-cover.ddb038cc2c56.svg", "img/publisher.svg": "img/publisher.82d378fcd601.svg", "img/logo-32.webp": "img/logo-32.5688944495bf.webp", "img/imprint.svg": "img/imprint.7c2adebb76d6.svg", "img/logo.svg": "img/logo.0f5344a028ca.svg", "img/volume.svg": "img/volume.814e4c79461a.svg", "img/logo-maskable-180.webp": "img/logo-maskable-180.c58d966aa64e.webp", "img/series.svg": "img/series.ec8a889b8f95.svg", "pwa/offline.html": "pwa/offline.7bfaf9f94bf9.html", "assets/admin-C3iCIUnm.css": "assets/admin-C3iCIUnm.06cb213f624d.css", "assets/VRadioGroup-BfMW9v1C.js": "assets/VRadioGroup-BfMW9v1C.b6c552d3ebd9.js", "assets/relation-chips-DpbzrZxT.css": "assets/relation-chips-DpbzrZxT.01269a188e01.css", "assets/admin-Dl90w4xx.js": "assets/admin-Dl90w4xx.a9772c680e4a.js", "assets/datetime-column-BavtvLnf.css": "assets/datetime-column-BavtvLnf.1f3bf499e063.css", "assets/VCheckbox-Dsd2BsZ5.js": "assets/VCheckbox-Dsd2BsZ5.7c41fb3e8ba4.js", "assets/stats-tab-BAV89h6B.js": "assets/stats-tab-BAV89h6B.ea756cc7c5df.js", "assets/user-tab-C-_g4ZN2.js": "assets/user-tab-C-_g4ZN2.b74c5c237a19.js", "assets/admin-kog1vr1-.js": "assets/admin-kog1vr1-.68109a677a58.js", "assets/library-tab-CgsXOX_r.css": "assets/library-tab-CgsXOX_r.75baedb7e976.css", "assets/forwardRefs-Dab8mCr8.js": "assets/forwardRefs-Dab8mCr8.7b7432c76353.js", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/forwardRefs-Dyi06MPF.css": "assets/forwardRefs-Dyi06MPF.601ab1fd99b1.css", "assets/admin-menu-B5Tu5d7c.js": "assets/admin-menu-B5Tu5d7c.a958d8ce60e8.js", "assets/library-tab-DErITV3q.js": "assets/library-tab-DErITV3q.c6b99695a024.js", "assets/VSelect-DF_7_wrq.js": "assets/VSelect-DF_7_wrq.50eb35ef8034.js", "assets/confirm-dialog-B1ABbGMU.css": "assets/confirm-dialog-B1ABbGMU.9b5915b112c0.css", "assets/VCheckboxBtn-DUIOks3V.js": "assets/VCheckboxBtn-DUIOks3V.c14c841b2965.js", "assets/VWindowItem-CWBhiE_Y.css": "assets/VWindowItem-CWBhiE_Y.f7fb19752bf3.css", "assets/pdf-doc-oUfOBdSn.js": "assets/pdf-doc-oUfOBdSn.75136d8eed5f.js", "assets/flag-tab-D-QmPLuT.js": "assets/flag-tab-D-QmPLuT.44070d940376.js", "assets/group-tab-_vKWzoyd.css": "assets/group-tab-_vKWzoyd.948e907b1e6b.css", "assets/materialdesignicons-webfont-B7mPwVP_.ttf": "assets/materialdesignicons-webfont-B7mPwVP_.6e435534bd35.ttf", "assets/change-password-dialog-D0ymWcl_.css": "assets/change-password-dialog-D0ymWcl_.a30e68c6e303.css", "assets/confirm-dialog-DP3s37VG.js": "assets/confirm-dialog-DP3s37VG.bc0812da4a41.js", "assets/main-CqJrEeXs.js": "assets/main-CqJrEeXs.1f4589cf31cf.js", "assets/VForm-CsURMe0X.js": "assets/VForm-CsURMe0X.e8dbbd6714c7.js", "assets/settings-drawer-DMSsWF8c.css": "assets/settings-drawer-DMSsWF8c.75a6ea969e71.css", "assets/reader-C2NlMEoN.js": "assets/reader-C2NlMEoN.5b153c060e98.js", "assets/unauthorized-D_ZoMvmO.js": "assets/unauthorized-D_ZoMvmO.2b6fe3730dd1.js", "assets/VForm-DxBt30-N.css": "assets/VForm-DxBt30-N.138c0b89b6fc.css", "assets/pager-full-pdf-Dp4zwooA.js": "assets/pager-full-pdf-Dp4zwooA.5bb892a48840.js", "assets/reader-D_3ruSqa.css": "assets/reader-D_3ruSqa.2ed32f08e906.css", "assets/VCombobox-BQHELb_o.css": "assets/VCombobox-BQHELb_o.9f25a34994e2.css", "assets/group-tab-CIU-U5vV.js": "assets/group-tab-CIU-U5vV.1b0046144f3d.js", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "assets/unauthorized-CsSak07X.css": "assets/unauthorized-CsSak07X.c5536d9dae75.css", "assets/copy-to-clipboard-DoUvDJVx.js": "assets/copy-to-clipboard-DoUvDJVx.bec27f144aca.js", "assets/VSelectionControl-C-U8aPN3.js": "assets/VSelectionControl-C-U8aPN3.ee2ff0451f30.js", "assets/VExpansionPanels-DSaZZJ_i.js": "assets/VExpansionPanels-DSaZZJ_i.c5bf69cefe7c.js", "assets/main-K8cER0IH.css": "assets/main-K8cER0IH.d529e8b3f52a.css", "assets/VCombobox-Gz9N06nz.js": "assets/VCombobox-Gz9N06nz.668b85a54990.js", "assets/browser-gQKq4cjC.css": "assets/browser-gQKq4cjC.3225a1a29760.css", "assets/VSelect-CP_CVb8s.css": "assets/VSelect-CP_CVb8s.6309f7bf17bb.css", "assets/VRadioGroup-Cp9mZ7cb.css": "assets/VRadioGroup-Cp9mZ7cb.8e3741381961.css", "assets/settings-drawer-Dg9ZpGZH.js": "assets/settings-drawer-Dg9ZpGZH.87f4c8788dc7.js", "assets/VTable-CApWgl_Z.js": "assets/VTable-CApWgl_Z.73e5dc6daac2.js", "assets/ssrBoot-F-kio-Y3.js": "assets/ssrBoot-F-kio-Y3.250480c1569f.js", "assets/VDivider-DU47sRrT.css": "assets/VDivider-DU47sRrT.3d2e17799e5c.css", "assets/index-GAPixOVo.js": "assets/index-GAPixOVo.228bbe0a7550.js", "assets/VSelectionControl-DPpfgCW2.css": "assets/VSelectionControl-DPpfgCW2.cc18de4e83f6.css", "assets/change-password-dialog-bLA6nGQc.js": "assets/change-password-dialog-bLA6nGQc.19de45f2d34d.js", "assets/admin-settings-button-progress-Dflyj3Tj.js": "assets/admin-settings-button-progress-Dflyj3Tj.ee985c7f4955.js", "assets/admin-menu-B3iXsOyy.css": "assets/admin-menu-B3iXsOyy.c13b7df2ff57.css", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/flag-tab-D2MYXCHk.css": "assets/flag-tab-D2MYXCHk.0f57e109c01b.css", "assets/VExpansionPanels-RsCANmDP.css": "assets/VExpansionPanels-RsCANmDP.5b17872981df.css", "assets/relation-chips-Cy6kOLs0.js": "assets/relation-chips-Cy6kOLs0.ba209da98775.js", "assets/filter-D_J5NTMN.js": "assets/filter-D_J5NTMN.19d3621572c3.js", "assets/VDialog-BDaX1tXA.css": "assets/VDialog-BDaX1tXA.c61bfde6cb2a.css", "assets/VCheckbox-CvH8ekHL.css": "assets/VCheckbox-CvH8ekHL.016ed8d222c4.css", "assets/VTable-BnxSZ_W5.css": "assets/VTable-BnxSZ_W5.c36f0a6a30cf.css", "assets/VDialog-JYjcWZ0u.js": "assets/VDialog-JYjcWZ0u.91bd96a0d870.js", "assets/http-error-DC-8e3vW.js": "assets/http-error-DC-8e3vW.7b7ee0f57ed8.js", "assets/stats-tab-WvF2acoZ.css": "assets/stats-tab-WvF2acoZ.9fdb0106124d.css", "assets/datetime-column-BLY3DVgs.js": "assets/datetime-column-BLY3DVgs.eb4c74d7d40b.js", "assets/admin-settings-button-progress-BGB22oTD.css": "assets/admin-settings-button-progress-BGB22oTD.2548c49a853e.css", "assets/task-tab-CW4DQ3KN.css": "assets/task-tab-CW4DQ3KN.81812f9208e5.css", "assets/index-BHXJTQ4V.css": "assets/index-BHXJTQ4V.523d7b3d350f.css", "assets/pagination-toolbar-CvX4XUda.css": "assets/pagination-toolbar-CvX4XUda.ff9de32b532c.css", "assets/http-error-CODU7jcH.css": "assets/http-error-CODU7jcH.8c13689ae574.css", "assets/task-tab-DDb-IDw3.js": "assets/task-tab-DDb-IDw3.c646eb5b169c.js", "assets/pagination-toolbar-Duga1Fnw.js": "assets/pagination-toolbar-Duga1Fnw.73b0b8438281.js", "assets/VWindowItem-BkKshOEy.js": "assets/VWindowItem-BkKshOEy.a5227da9ba5b.js", "assets/pdf-doc-B4cGW_Hl.css": "assets/pdf-doc-B4cGW_Hl.b94aac7e3313.css", "assets/browser-Dn9VeG9o.js": "assets/browser-Dn9VeG9o.41160f5f3581.js", "assets/VDivider-Coot1SE9.js": "assets/VDivider-Coot1SE9.c585b1971696.js", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.a36b86d4fb81.json"}, "version": "1.1", "hash": "233f48b4cc82"}
|
|
1
|
+
{"paths": {"rest_framework/docs/img/favicon.ico": "rest_framework/docs/img/favicon.5195b4d0f3eb.ico", "rest_framework/docs/img/grid.png": "rest_framework/docs/img/grid.a4b938cf382b.png", "rest_framework/docs/css/jquery.json-view.min.css": "rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css", "rest_framework/docs/css/highlight.css": "rest_framework/docs/css/highlight.e0e4d973c6d7.css", "rest_framework/docs/css/base.css": "rest_framework/docs/css/base.e630f8f4990e.css", "rest_framework/docs/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "rest_framework/docs/js/api.js": "rest_framework/docs/js/api.18a5ba8a1bd8.js", "rest_framework/docs/js/jquery.json-view.min.js": "rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/fonts/fontawesome-webfont.ttf": "rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/fonts/glyphicons-halflings-regular.woff2": "rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2", "rest_framework/img/glyphicons-halflings.png": "rest_framework/img/glyphicons-halflings.90233c9067e9.png", "rest_framework/img/glyphicons-halflings-white.png": "rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png", "rest_framework/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.f17d4516b026.css", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css", "rest_framework/css/font-awesome-4.0.3.css": "rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css", "rest_framework/css/bootstrap-tweaks.css": "rest_framework/css/bootstrap-tweaks.ee4ee6acf9eb.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/bootstrap.min.css.map": "rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map", "rest_framework/js/ajax-form.js": "rest_framework/js/ajax-form.4e1cdcb7acab.js", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.js", "rest_framework/js/default.js": "rest_framework/js/default.5b08897dbdc3.js", "rest_framework/js/load-ajax-form.js": "rest_framework/js/load-ajax-form.8cdb3a9f3466.js", "rest_framework/js/coreapi-0.1.1.js": "rest_framework/js/coreapi-0.1.1.8851fb9336c9.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.455080a7b2ce.js", "rest_framework/js/jquery-3.7.1.min.js": "rest_framework/js/jquery-3.7.1.min.2c872dbe60f4.js", "rest_framework/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.js", "img/story-arc.svg": "img/story-arc.ca10014355ef.svg", "img/logo-maskable.svg": "img/logo-maskable.8f7de7f1c6a8.svg", "img/folder.svg": "img/folder.f28936a3701d.svg", "img/missing-cover-165.webp": "img/missing-cover-165.0743171f2148.webp", "img/missing-cover.svg": "img/missing-cover.ddb038cc2c56.svg", "img/publisher.svg": "img/publisher.82d378fcd601.svg", "img/logo-32.webp": "img/logo-32.5688944495bf.webp", "img/imprint.svg": "img/imprint.7c2adebb76d6.svg", "img/logo.svg": "img/logo.0f5344a028ca.svg", "img/volume.svg": "img/volume.814e4c79461a.svg", "img/logo-maskable-180.webp": "img/logo-maskable-180.c58d966aa64e.webp", "img/series.svg": "img/series.ec8a889b8f95.svg", "pwa/offline.html": "pwa/offline.7bfaf9f94bf9.html", "assets/http-error-1EUD0mgB.js": "assets/http-error-1EUD0mgB.429e5751770c.js", "assets/VCheckbox-CjaELt3q.js": "assets/VCheckbox-CjaELt3q.0925364b6bec.js", "assets/VSelect-JGx0H8YY.js": "assets/VSelect-JGx0H8YY.0435331f9e4a.js", "assets/admin-C3iCIUnm.css": "assets/admin-C3iCIUnm.06cb213f624d.css", "assets/VDialog-BQWGxOC0.css": "assets/VDialog-BQWGxOC0.557592e1297d.css", "assets/browser-DIqlqqdu.js": "assets/browser-DIqlqqdu.a4d5140b1550.js", "assets/change-password-dialog-sLOp6TLK.js": "assets/change-password-dialog-sLOp6TLK.2aec13897e09.js", "assets/unauthorized-CtkV01lw.css": "assets/unauthorized-CtkV01lw.8668ffe7b306.css", "assets/user-tab-DWHTLASk.js": "assets/user-tab-DWHTLASk.0b9861fb37e5.js", "assets/VTable-Do_SF0VB.js": "assets/VTable-Do_SF0VB.273110ae8ad2.js", "assets/pager-full-pdf-BcSKaf8m.js": "assets/pager-full-pdf-BcSKaf8m.381858040c3d.js", "assets/datetime-column-BavtvLnf.css": "assets/datetime-column-BavtvLnf.1f3bf499e063.css", "assets/browser-CECBMxOy.css": "assets/browser-CECBMxOy.a750213334d5.css", "assets/unauthorized-DJAN2cQL.js": "assets/unauthorized-DJAN2cQL.754b87c5b6e3.js", "assets/pagination-toolbar-CqsoppQf.css": "assets/pagination-toolbar-CqsoppQf.e58a5a1d3566.css", "assets/settings-drawer-Bl-6rF9E.css": "assets/settings-drawer-Bl-6rF9E.7ace6186c209.css", "assets/VForm-5YJLC8Oz.js": "assets/VForm-5YJLC8Oz.8395c2ab2083.js", "assets/settings-drawer-Bgy-v53G.js": "assets/settings-drawer-Bgy-v53G.e38619bb3a21.js", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/forwardRefs-Dyi06MPF.css": "assets/forwardRefs-Dyi06MPF.601ab1fd99b1.css", "assets/flag-tab-CESc_7Pq.css": "assets/flag-tab-CESc_7Pq.2260edfa4c38.css", "assets/confirm-dialog-BI5kQLy_.css": "assets/confirm-dialog-BI5kQLy_.1b5309ad95ec.css", "assets/change-password-dialog-DL8UMjmX.css": "assets/change-password-dialog-DL8UMjmX.526f97e577e7.css", "assets/forwardRefs-CqAlwRH5.js": "assets/forwardRefs-CqAlwRH5.f429e5d46645.js", "assets/VWindowItem-CWBhiE_Y.css": "assets/VWindowItem-CWBhiE_Y.f7fb19752bf3.css", "assets/reader-Bcw698_5.css": "assets/reader-Bcw698_5.b73e2757553f.css", "assets/task-tab-BXfkWbVA.js": "assets/task-tab-BXfkWbVA.f5ab0fcf38a2.js", "assets/admin-menu-CKlcsy9S.css": "assets/admin-menu-CKlcsy9S.41b2cf82b873.css", "assets/group-tab-_vKWzoyd.css": "assets/group-tab-_vKWzoyd.948e907b1e6b.css", "assets/confirm-dialog-oZvPeyCw.js": "assets/confirm-dialog-oZvPeyCw.c51b29ccf135.js", "assets/materialdesignicons-webfont-B7mPwVP_.ttf": "assets/materialdesignicons-webfont-B7mPwVP_.6e435534bd35.ttf", "assets/VDialog-D52uED8h.js": "assets/VDialog-D52uED8h.a1a291f6e59a.js", "assets/VRadioGroup-BGzjNnq9.js": "assets/VRadioGroup-BGzjNnq9.8e056c39f9d7.js", "assets/datetime-column-BsXsbUDe.js": "assets/datetime-column-BsXsbUDe.c4f8db1077f2.js", "assets/VForm-DxBt30-N.css": "assets/VForm-DxBt30-N.138c0b89b6fc.css", "assets/pagination-toolbar-C_xCbB_P.js": "assets/pagination-toolbar-C_xCbB_P.d49e3dbda04b.js", "assets/admin-menu-bqKOZRfB.js": "assets/admin-menu-bqKOZRfB.c5b5dd89379e.js", "assets/VCombobox-BQHELb_o.css": "assets/VCombobox-BQHELb_o.9f25a34994e2.css", "assets/admin-BbUIqP58.js": "assets/admin-BbUIqP58.c21b2d9f9955.js", "assets/ssrBoot-BBD0SpTn.js": "assets/ssrBoot-BBD0SpTn.0e2d87430f10.js", "assets/library-tab-thTonyXr.css": "assets/library-tab-thTonyXr.58b745660d42.css", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "assets/admin-settings-button-progress-DOCpX5C6.js": "assets/admin-settings-button-progress-DOCpX5C6.649affe5eab0.js", "assets/VExpansionPanels-04UV7-LI.js": "assets/VExpansionPanels-04UV7-LI.fdbf3db241f7.js", "assets/copy-to-clipboard-DoUvDJVx.js": "assets/copy-to-clipboard-DoUvDJVx.bec27f144aca.js", "assets/stats-tab-GO5hZBwz.js": "assets/stats-tab-GO5hZBwz.3d99d408f27f.js", "assets/main-K8cER0IH.css": "assets/main-K8cER0IH.d529e8b3f52a.css", "assets/VSelect-CP_CVb8s.css": "assets/VSelect-CP_CVb8s.6309f7bf17bb.css", "assets/VRadioGroup-Cp9mZ7cb.css": "assets/VRadioGroup-Cp9mZ7cb.8e3741381961.css", "assets/VSelectionControl-CrqDqLVW.js": "assets/VSelectionControl-CrqDqLVW.f07454449915.js", "assets/VDivider-DU47sRrT.css": "assets/VDivider-DU47sRrT.3d2e17799e5c.css", "assets/group-tab-CwgBkm2O.js": "assets/group-tab-CwgBkm2O.977524c346bb.js", "assets/pdf-doc-Gq3sFXgk.js": "assets/pdf-doc-Gq3sFXgk.bf0d8439f2ff.js", "assets/VSelectionControl-DPpfgCW2.css": "assets/VSelectionControl-DPpfgCW2.cc18de4e83f6.css", "assets/admin-B67kr23y.js": "assets/admin-B67kr23y.1c946cd48499.js", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/VExpansionPanels-RsCANmDP.css": "assets/VExpansionPanels-RsCANmDP.5b17872981df.css", "assets/reader-CMIzQ69v.js": "assets/reader-CMIzQ69v.af8a81ee4933.js", "assets/library-tab-DfefgeJ9.js": "assets/library-tab-DfefgeJ9.2216ab51fb3d.js", "assets/VCheckbox-CvH8ekHL.css": "assets/VCheckbox-CvH8ekHL.016ed8d222c4.css", "assets/VTable-BnxSZ_W5.css": "assets/VTable-BnxSZ_W5.c36f0a6a30cf.css", "assets/index-BXX_CFtA.js": "assets/index-BXX_CFtA.4b5db6d40019.js", "assets/VDivider-CmDbXOzg.js": "assets/VDivider-CmDbXOzg.ba51d79a7b54.js", "assets/main-DTZJMtFc.js": "assets/main-DTZJMtFc.9b5801c1c4f4.js", "assets/admin-settings-button-progress-BGB22oTD.css": "assets/admin-settings-button-progress-BGB22oTD.2548c49a853e.css", "assets/task-tab-CW4DQ3KN.css": "assets/task-tab-CW4DQ3KN.81812f9208e5.css", "assets/relation-chips-CifZPloM.css": "assets/relation-chips-CifZPloM.e1f40ac9ae8b.css", "assets/index-BHXJTQ4V.css": "assets/index-BHXJTQ4V.523d7b3d350f.css", "assets/VCombobox-Dc8-R3XH.js": "assets/VCombobox-Dc8-R3XH.7227e119708a.js", "assets/relation-chips-DogFotgq.js": "assets/relation-chips-DogFotgq.ff6358c92f7b.js", "assets/flag-tab-CaLBkxiN.js": "assets/flag-tab-CaLBkxiN.ff37f7dc5aff.js", "assets/filter-BXwXIw0u.js": "assets/filter-BXwXIw0u.9ff6ae3033f0.js", "assets/http-error-CODU7jcH.css": "assets/http-error-CODU7jcH.8c13689ae574.css", "assets/VCheckboxBtn-g_zD3ENY.js": "assets/VCheckboxBtn-g_zD3ENY.d62959cb3925.js", "assets/VWindowItem-9OdAFzIK.js": "assets/VWindowItem-9OdAFzIK.958c8b636fba.js", "assets/pdf-doc-B4cGW_Hl.css": "assets/pdf-doc-B4cGW_Hl.b94aac7e3313.css", "assets/stats-tab-B6L711cO.css": "assets/stats-tab-B6L711cO.b6a42655cd70.css", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.8aca4eda8739.json"}, "version": "1.1", "hash": "8585d8c5cc15"}
|
codex/status_controller.py
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"""Librarian Status."""
|
|
2
2
|
|
|
3
3
|
from enum import Enum
|
|
4
|
-
from logging import DEBUG
|
|
4
|
+
from logging import DEBUG
|
|
5
5
|
from time import time
|
|
6
6
|
|
|
7
7
|
from django.db.models.functions.datetime import Now
|
|
8
|
-
from django.utils.timezone import now, timedelta
|
|
8
|
+
from django.utils.timezone import datetime, now, timedelta
|
|
9
9
|
|
|
10
10
|
from codex.choices.admin import ADMIN_STATUS_TITLES
|
|
11
11
|
from codex.librarian.notifier.tasks import LIBRARIAN_STATUS_TASK
|
|
@@ -67,27 +67,29 @@ class StatusController(LoggerBaseMixin):
|
|
|
67
67
|
status = status.value
|
|
68
68
|
return status
|
|
69
69
|
|
|
70
|
-
def
|
|
70
|
+
def _update(
|
|
71
71
|
self,
|
|
72
72
|
status,
|
|
73
|
-
notify: bool
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
notify: bool,
|
|
74
|
+
active: datetime | None = None,
|
|
75
|
+
preactive: datetime | None = None,
|
|
76
76
|
):
|
|
77
77
|
"""Start a librarian status."""
|
|
78
78
|
try:
|
|
79
79
|
if not status.status_type:
|
|
80
80
|
reason = f"Bad status type: {status.status_type}"
|
|
81
81
|
raise ValueError(reason) # noqa: TRY301
|
|
82
|
-
active = now() + timedelta(milliseconds=active_pad_ms)
|
|
83
82
|
updates = {
|
|
84
|
-
"preactive": preactive,
|
|
85
83
|
"complete": status.complete,
|
|
86
84
|
"total": status.total,
|
|
87
|
-
"active": active,
|
|
88
|
-
"subtitle": status.subtitle,
|
|
89
85
|
"updated_at": Now(),
|
|
90
86
|
}
|
|
87
|
+
if preactive is not None:
|
|
88
|
+
updates["preactive"] = preactive
|
|
89
|
+
if active:
|
|
90
|
+
updates["active"] = active
|
|
91
|
+
if status.subtitle:
|
|
92
|
+
updates["subtitle"] = status.subtitle
|
|
91
93
|
LibrarianStatus.objects.filter(status_type=status.status_type).update(
|
|
92
94
|
**updates
|
|
93
95
|
)
|
|
@@ -96,14 +98,23 @@ class StatusController(LoggerBaseMixin):
|
|
|
96
98
|
status.since = time()
|
|
97
99
|
except Exception:
|
|
98
100
|
title = ADMIN_STATUS_TITLES[status.status_type]
|
|
99
|
-
self.log.exception(f"
|
|
101
|
+
self.log.exception(f"Update status: {title}")
|
|
102
|
+
|
|
103
|
+
def start(
|
|
104
|
+
self,
|
|
105
|
+
status,
|
|
106
|
+
notify: bool = True, # noqa: FBT002
|
|
107
|
+
preactive: datetime | None = None,
|
|
108
|
+
):
|
|
109
|
+
"""Start a librarian status."""
|
|
110
|
+
self._update(status, notify=notify, preactive=preactive, active=now())
|
|
100
111
|
|
|
101
112
|
def start_many(self, status_iterable):
|
|
102
113
|
"""Start many librarian statuses."""
|
|
103
|
-
for
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
)
|
|
114
|
+
for index, status in enumerate(status_iterable):
|
|
115
|
+
pad_ms = index * 100
|
|
116
|
+
preactive = now() + timedelta(milliseconds=pad_ms)
|
|
117
|
+
self._update(status, notify=False, preactive=preactive)
|
|
107
118
|
self._enqueue_notifier_task(notify=True)
|
|
108
119
|
|
|
109
120
|
def update(self, status, notify: bool = True): # noqa: FBT002
|
|
@@ -111,23 +122,7 @@ class StatusController(LoggerBaseMixin):
|
|
|
111
122
|
if time() - status.since < self._UPDATE_DELTA:
|
|
112
123
|
# noop unless time has expired.
|
|
113
124
|
return
|
|
114
|
-
|
|
115
|
-
"preactive": False,
|
|
116
|
-
"complete": status.complete,
|
|
117
|
-
"total": status.total,
|
|
118
|
-
"updated_at": Now(),
|
|
119
|
-
}
|
|
120
|
-
try:
|
|
121
|
-
LibrarianStatus.objects.filter(status_type=status.status_type).update(
|
|
122
|
-
**updates
|
|
123
|
-
)
|
|
124
|
-
self._enqueue_notifier_task(notify)
|
|
125
|
-
if notify:
|
|
126
|
-
self._loggit(INFO, status)
|
|
127
|
-
status.since = time()
|
|
128
|
-
except Exception as exc:
|
|
129
|
-
title = ADMIN_STATUS_TITLES[status.status_type]
|
|
130
|
-
self.log.warning(f"Update status {title}: {exc}")
|
|
125
|
+
self._update(status, notify=notify)
|
|
131
126
|
|
|
132
127
|
def finish_many(self, statii, notify: bool = True, until=0.0): # noqa: FBT002
|
|
133
128
|
"""Finish all librarian statuses."""
|
codex/views/admin/tasks.py
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from types import MappingProxyType
|
|
4
4
|
from typing import TYPE_CHECKING
|
|
5
5
|
|
|
6
|
+
from django.db.models.query_utils import Q
|
|
6
7
|
from drf_spectacular.utils import extend_schema
|
|
7
8
|
from rest_framework.response import Response
|
|
8
9
|
|
|
@@ -117,9 +118,9 @@ _TASK_MAP = MappingProxyType(
|
|
|
117
118
|
class AdminLibrarianStatusViewSet(AdminReadOnlyModelViewSet):
|
|
118
119
|
"""Librarian Task Statuses."""
|
|
119
120
|
|
|
120
|
-
queryset = LibrarianStatus.objects.filter(
|
|
121
|
-
|
|
122
|
-
)
|
|
121
|
+
queryset = LibrarianStatus.objects.filter(
|
|
122
|
+
Q(preactive__isnull=False) | Q(active__isnull=False)
|
|
123
|
+
).order_by("preactive", "active", "pk")
|
|
123
124
|
serializer_class = LibrarianStatusSerializer
|
|
124
125
|
|
|
125
126
|
|
|
@@ -46,7 +46,7 @@ class GroupFilterView(BrowserParamsView):
|
|
|
46
46
|
if pks and 0 not in pks:
|
|
47
47
|
rel = self._get_rel_for_pks(group, page_mtime)
|
|
48
48
|
group_filter_dict = {rel: pks}
|
|
49
|
-
elif group == FOLDER_GROUP:
|
|
49
|
+
elif group == FOLDER_GROUP and self.TARGET != "choices":
|
|
50
50
|
# Top folder search
|
|
51
51
|
group_filter_dict = {"parent_folder": None}
|
|
52
52
|
else:
|
|
@@ -2,13 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
from django.db.models import Count, IntegerField, Sum, Value
|
|
4
4
|
|
|
5
|
-
from codex.logger.logging import get_logger
|
|
6
5
|
from codex.models import Comic
|
|
7
6
|
from codex.views.browser.annotate.card import BrowserAnnotateCardView
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
_ADMIN_OR_FILE_VIEW_ENABLED_COMIC_VALUE_FIELDS = frozenset({"path"})
|
|
11
|
-
_COMIC_VALUE_FIELDS_CONFLICTING = frozenset(
|
|
8
|
+
COMIC_VALUE_FIELDS_CONFLICTING = frozenset(
|
|
12
9
|
{
|
|
13
10
|
"created_at",
|
|
14
11
|
"name",
|
|
@@ -16,8 +13,11 @@ _COMIC_VALUE_FIELDS_CONFLICTING = frozenset(
|
|
|
16
13
|
"updated_at",
|
|
17
14
|
}
|
|
18
15
|
)
|
|
16
|
+
COMIC_VALUE_FIELDS_CONFLICTING_PREFIX = "conflict_"
|
|
17
|
+
PATH_GROUPS = frozenset({"c", "f"})
|
|
18
|
+
_ADMIN_OR_FILE_VIEW_ENABLED_COMIC_VALUE_FIELDS = frozenset({"path"})
|
|
19
19
|
_DISABLED_VALUE_FIELD_NAMES = frozenset(
|
|
20
|
-
{"id", "pk", "sort_name", "stat"} |
|
|
20
|
+
{"id", "pk", "sort_name", "stat"} | COMIC_VALUE_FIELDS_CONFLICTING
|
|
21
21
|
)
|
|
22
22
|
_COMIC_VALUE_FIELD_NAMES = frozenset(
|
|
23
23
|
# contains path
|
|
@@ -25,9 +25,7 @@ _COMIC_VALUE_FIELD_NAMES = frozenset(
|
|
|
25
25
|
for field in Comic._meta.get_fields()
|
|
26
26
|
if not field.is_relation and field.name not in _DISABLED_VALUE_FIELD_NAMES
|
|
27
27
|
)
|
|
28
|
-
_COMIC_VALUE_FIELDS_CONFLICTING_PREFIX = "conflict_"
|
|
29
28
|
_COMIC_RELATED_VALUE_FIELDS = frozenset({"series__volume_count", "volume__issue_count"})
|
|
30
|
-
_PATH_GROUPS = frozenset({"c", "f"})
|
|
31
29
|
_SUM_FIELDS = frozenset({"page_count", "size"})
|
|
32
30
|
|
|
33
31
|
|
|
@@ -40,7 +38,7 @@ class MetadataAnnotateView(BrowserAnnotateCardView):
|
|
|
40
38
|
group = self.kwargs["group"]
|
|
41
39
|
if (
|
|
42
40
|
not (self.is_admin and self.admin_flags["folder_view"])
|
|
43
|
-
or group not in
|
|
41
|
+
or group not in PATH_GROUPS
|
|
44
42
|
):
|
|
45
43
|
fields -= _ADMIN_OR_FILE_VIEW_ENABLED_COMIC_VALUE_FIELDS
|
|
46
44
|
return tuple(fields)
|
|
@@ -67,16 +65,17 @@ class MetadataAnnotateView(BrowserAnnotateCardView):
|
|
|
67
65
|
else:
|
|
68
66
|
# group_by makes the filter work, but prevents its
|
|
69
67
|
# use as a subquery in the big query.
|
|
70
|
-
sq = filtered_qs.
|
|
71
|
-
|
|
72
|
-
).filter(filter_count=1)
|
|
68
|
+
sq = filtered_qs.annotate(filter_count=Count(full_field, distinct=True))
|
|
69
|
+
sq = sq.filter(filter_count=1)
|
|
73
70
|
sq = self.add_group_by(sq)
|
|
74
71
|
sq = self.force_inner_joins(sq)
|
|
72
|
+
if not sq.count():
|
|
73
|
+
continue
|
|
75
74
|
sq = sq.values_list(full_field + related_suffix, flat=True)
|
|
76
75
|
try:
|
|
77
76
|
val = sq[0]
|
|
78
77
|
except IndexError:
|
|
79
|
-
|
|
78
|
+
continue
|
|
80
79
|
if field.endswith("count"):
|
|
81
80
|
output_field = IntegerField()
|
|
82
81
|
else:
|
|
@@ -97,8 +96,8 @@ class MetadataAnnotateView(BrowserAnnotateCardView):
|
|
|
97
96
|
# Conflicting Simple Values
|
|
98
97
|
querysets = self._intersection_annotate(
|
|
99
98
|
querysets,
|
|
100
|
-
|
|
101
|
-
annotation_prefix=
|
|
99
|
+
COMIC_VALUE_FIELDS_CONFLICTING,
|
|
100
|
+
annotation_prefix=COMIC_VALUE_FIELDS_CONFLICTING_PREFIX,
|
|
102
101
|
)
|
|
103
102
|
|
|
104
103
|
# Foreign Keys with special count values
|
|
@@ -1,24 +1,16 @@
|
|
|
1
1
|
"""Copy Intersections Into Comic Fields."""
|
|
2
2
|
|
|
3
|
-
from codex.logger.logging import get_logger
|
|
4
3
|
from codex.models.comic import Comic
|
|
5
4
|
from codex.serializers.browser.metadata import PREFETCH_PREFIX
|
|
5
|
+
from codex.views.browser.metadata.annotate import (
|
|
6
|
+
COMIC_VALUE_FIELDS_CONFLICTING,
|
|
7
|
+
COMIC_VALUE_FIELDS_CONFLICTING_PREFIX,
|
|
8
|
+
PATH_GROUPS,
|
|
9
|
+
)
|
|
6
10
|
from codex.views.browser.metadata.query_intersections import (
|
|
7
11
|
MetadataQueryIntersectionsView,
|
|
8
12
|
)
|
|
9
13
|
|
|
10
|
-
LOG = get_logger(__name__)
|
|
11
|
-
_COMIC_VALUE_FIELDS_CONFLICTING = frozenset(
|
|
12
|
-
{
|
|
13
|
-
"created_at",
|
|
14
|
-
"name",
|
|
15
|
-
"path",
|
|
16
|
-
"updated_at",
|
|
17
|
-
}
|
|
18
|
-
)
|
|
19
|
-
_COMIC_VALUE_FIELDS_CONFLICTING_PREFIX = "conflict_"
|
|
20
|
-
_PATH_GROUPS = frozenset({"c", "f"})
|
|
21
|
-
|
|
22
14
|
|
|
23
15
|
class MetadataCopyIntersectionsView(MetadataQueryIntersectionsView):
|
|
24
16
|
"""Copy Intersections Into Comic Fields."""
|
|
@@ -26,7 +18,7 @@ class MetadataCopyIntersectionsView(MetadataQueryIntersectionsView):
|
|
|
26
18
|
def _path_security(self, obj):
|
|
27
19
|
"""Secure filesystem information for acl situation."""
|
|
28
20
|
group = self.kwargs["group"]
|
|
29
|
-
is_path_group = group in
|
|
21
|
+
is_path_group = group in PATH_GROUPS
|
|
30
22
|
if is_path_group:
|
|
31
23
|
if self.is_admin:
|
|
32
24
|
return
|
|
@@ -72,10 +64,10 @@ class MetadataCopyIntersectionsView(MetadataQueryIntersectionsView):
|
|
|
72
64
|
|
|
73
65
|
@staticmethod
|
|
74
66
|
def _copy_conflicting_simple_fields(obj):
|
|
75
|
-
for field in
|
|
67
|
+
for field in COMIC_VALUE_FIELDS_CONFLICTING:
|
|
76
68
|
"""Copy conflicting fields over naturral fields."""
|
|
77
|
-
conflict_field =
|
|
78
|
-
val = getattr(obj, conflict_field)
|
|
69
|
+
conflict_field = COMIC_VALUE_FIELDS_CONFLICTING_PREFIX + field
|
|
70
|
+
val = getattr(obj, conflict_field, None)
|
|
79
71
|
setattr(obj, field, val)
|
|
80
72
|
|
|
81
73
|
def copy_intersections_into_comic_fields(self, obj, groups, m2m_intersections):
|
|
@@ -5,14 +5,12 @@ from types import MappingProxyType
|
|
|
5
5
|
from django.db.models import Count
|
|
6
6
|
|
|
7
7
|
from codex.librarian.importer.const import COMIC_M2M_FIELD_NAMES
|
|
8
|
-
from codex.logger.logging import get_logger
|
|
9
8
|
from codex.models import Comic
|
|
10
9
|
from codex.models.functions import JsonGroupArray
|
|
11
10
|
from codex.models.groups import Imprint, Publisher, Series, Volume
|
|
12
11
|
from codex.views.browser.metadata.annotate import MetadataAnnotateView
|
|
13
12
|
from codex.views.const import METADATA_GROUP_RELATION, MODEL_REL_MAP
|
|
14
13
|
|
|
15
|
-
LOG = get_logger(__name__)
|
|
16
14
|
_CONTRIBUTOR_RELATIONS = ("role", "person")
|
|
17
15
|
_GROUP_MODELS = MappingProxyType(
|
|
18
16
|
{
|