codex 1.7.6__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.

Files changed (587) hide show
  1. codex/librarian/importer/create_comics.py +4 -4
  2. codex/librarian/importer/importerd.py +1 -2
  3. codex/librarian/importer/init.py +1 -2
  4. codex/librarian/importer/link_comics.py +13 -4
  5. codex/librarian/importer/link_covers.py +2 -2
  6. codex/librarian/importer/query_covers.py +2 -1
  7. codex/librarian/search/update.py +14 -6
  8. codex/migrations/0032_alter_librarianstatus_preactive.py +19 -0
  9. codex/models/admin.py +2 -2
  10. codex/serializers/browser/metadata.py +2 -0
  11. codex/serializers/models/admin.py +1 -1
  12. codex/static_root/assets/VCheckbox-CjaELt3q.0925364b6bec.js +1 -0
  13. codex/static_root/assets/VCheckbox-CjaELt3q.0925364b6bec.js.br +0 -0
  14. codex/static_root/assets/VCheckbox-CjaELt3q.0925364b6bec.js.gz +0 -0
  15. codex/static_root/assets/VCheckbox-CjaELt3q.js +1 -0
  16. codex/static_root/assets/VCheckbox-CjaELt3q.js.br +0 -0
  17. codex/static_root/assets/VCheckbox-CjaELt3q.js.gz +0 -0
  18. codex/static_root/assets/{VCheckboxBtn-DtWeBQSc.eb4f0b35df90.js → VCheckboxBtn-g_zD3ENY.d62959cb3925.js} +1 -1
  19. codex/static_root/assets/VCheckboxBtn-g_zD3ENY.d62959cb3925.js.br +0 -0
  20. codex/static_root/assets/VCheckboxBtn-g_zD3ENY.d62959cb3925.js.gz +0 -0
  21. codex/static_root/assets/{VCheckboxBtn-DtWeBQSc.js → VCheckboxBtn-g_zD3ENY.js} +1 -1
  22. codex/static_root/assets/VCheckboxBtn-g_zD3ENY.js.br +0 -0
  23. codex/static_root/assets/VCheckboxBtn-g_zD3ENY.js.gz +0 -0
  24. codex/static_root/assets/{VCombobox-C44w_9Tr.e8c0aeaf51bb.js → VCombobox-Dc8-R3XH.7227e119708a.js} +1 -1
  25. codex/static_root/assets/VCombobox-Dc8-R3XH.7227e119708a.js.br +0 -0
  26. codex/static_root/assets/VCombobox-Dc8-R3XH.7227e119708a.js.gz +0 -0
  27. codex/static_root/assets/{VCombobox-C44w_9Tr.js → VCombobox-Dc8-R3XH.js} +1 -1
  28. codex/static_root/assets/VCombobox-Dc8-R3XH.js.br +0 -0
  29. codex/static_root/assets/VCombobox-Dc8-R3XH.js.gz +0 -0
  30. codex/static_root/assets/{VDialog-BDaX1tXA.c61bfde6cb2a.css → VDialog-BQWGxOC0.557592e1297d.css} +1 -1
  31. codex/static_root/assets/VDialog-BQWGxOC0.557592e1297d.css.br +0 -0
  32. codex/static_root/assets/VDialog-BQWGxOC0.557592e1297d.css.gz +0 -0
  33. codex/static_root/assets/{VDialog-BDaX1tXA.css → VDialog-BQWGxOC0.css} +1 -1
  34. codex/static_root/assets/VDialog-BQWGxOC0.css.br +0 -0
  35. codex/static_root/assets/VDialog-BQWGxOC0.css.gz +0 -0
  36. codex/static_root/assets/{VDialog-B23zgnQg.2ad0b1bd166a.js → VDialog-D52uED8h.a1a291f6e59a.js} +1 -1
  37. codex/static_root/assets/VDialog-D52uED8h.a1a291f6e59a.js.br +0 -0
  38. codex/static_root/assets/VDialog-D52uED8h.a1a291f6e59a.js.gz +0 -0
  39. codex/static_root/assets/{VDialog-B23zgnQg.js → VDialog-D52uED8h.js} +1 -1
  40. codex/static_root/assets/VDialog-D52uED8h.js.br +0 -0
  41. codex/static_root/assets/VDialog-D52uED8h.js.gz +0 -0
  42. codex/static_root/assets/{VDivider-CXvbBALe.aaec2523ab0d.js → VDivider-CmDbXOzg.ba51d79a7b54.js} +1 -1
  43. codex/static_root/assets/VDivider-CmDbXOzg.ba51d79a7b54.js.br +0 -0
  44. codex/static_root/assets/VDivider-CmDbXOzg.ba51d79a7b54.js.gz +0 -0
  45. codex/static_root/assets/{VDivider-CXvbBALe.js → VDivider-CmDbXOzg.js} +1 -1
  46. codex/static_root/assets/VDivider-CmDbXOzg.js.br +0 -0
  47. codex/static_root/assets/VDivider-CmDbXOzg.js.gz +0 -0
  48. codex/static_root/assets/{VExpansionPanels-y8aa_9Go.f8eadc657914.js → VExpansionPanels-04UV7-LI.fdbf3db241f7.js} +1 -1
  49. codex/static_root/assets/VExpansionPanels-04UV7-LI.fdbf3db241f7.js.br +0 -0
  50. codex/static_root/assets/VExpansionPanels-04UV7-LI.fdbf3db241f7.js.gz +0 -0
  51. codex/static_root/assets/{VExpansionPanels-y8aa_9Go.js → VExpansionPanels-04UV7-LI.js} +1 -1
  52. codex/static_root/assets/VExpansionPanels-04UV7-LI.js.br +0 -0
  53. codex/static_root/assets/VExpansionPanels-04UV7-LI.js.gz +0 -0
  54. codex/static_root/assets/{VForm-moUsJiEX.a1aa6a07978f.js → VForm-5YJLC8Oz.8395c2ab2083.js} +1 -1
  55. codex/static_root/assets/VForm-5YJLC8Oz.8395c2ab2083.js.br +0 -0
  56. codex/static_root/assets/VForm-5YJLC8Oz.8395c2ab2083.js.gz +0 -0
  57. codex/static_root/assets/{VForm-moUsJiEX.js → VForm-5YJLC8Oz.js} +1 -1
  58. codex/static_root/assets/VForm-5YJLC8Oz.js.br +0 -0
  59. codex/static_root/assets/VForm-5YJLC8Oz.js.gz +0 -0
  60. codex/static_root/assets/{VRadioGroup-Dq9Lhxp6.e8bb88987c19.js → VRadioGroup-BGzjNnq9.8e056c39f9d7.js} +1 -1
  61. codex/static_root/assets/VRadioGroup-BGzjNnq9.8e056c39f9d7.js.br +0 -0
  62. codex/static_root/assets/VRadioGroup-BGzjNnq9.8e056c39f9d7.js.gz +0 -0
  63. codex/static_root/assets/{VRadioGroup-Dq9Lhxp6.js → VRadioGroup-BGzjNnq9.js} +1 -1
  64. codex/static_root/assets/VRadioGroup-BGzjNnq9.js.br +0 -0
  65. codex/static_root/assets/VRadioGroup-BGzjNnq9.js.gz +0 -0
  66. codex/static_root/assets/VSelect-JGx0H8YY.0435331f9e4a.js +1 -0
  67. codex/static_root/assets/VSelect-JGx0H8YY.0435331f9e4a.js.br +0 -0
  68. codex/static_root/assets/VSelect-JGx0H8YY.0435331f9e4a.js.gz +0 -0
  69. codex/static_root/assets/VSelect-JGx0H8YY.js +1 -0
  70. codex/static_root/assets/VSelect-JGx0H8YY.js.br +0 -0
  71. codex/static_root/assets/VSelect-JGx0H8YY.js.gz +0 -0
  72. codex/static_root/assets/{VSelectionControl-Cx6Xy7hY.5a2c6214fa48.js → VSelectionControl-CrqDqLVW.f07454449915.js} +1 -1
  73. codex/static_root/assets/VSelectionControl-CrqDqLVW.f07454449915.js.br +0 -0
  74. codex/static_root/assets/VSelectionControl-CrqDqLVW.f07454449915.js.gz +0 -0
  75. codex/static_root/assets/{VSelectionControl-Cx6Xy7hY.js → VSelectionControl-CrqDqLVW.js} +1 -1
  76. codex/static_root/assets/VSelectionControl-CrqDqLVW.js.br +0 -0
  77. codex/static_root/assets/VSelectionControl-CrqDqLVW.js.gz +0 -0
  78. codex/static_root/assets/{VTable-qFAzmpUV.238dcd9fe0c9.js → VTable-Do_SF0VB.273110ae8ad2.js} +1 -1
  79. codex/static_root/assets/VTable-Do_SF0VB.273110ae8ad2.js.br +0 -0
  80. codex/static_root/assets/VTable-Do_SF0VB.273110ae8ad2.js.gz +0 -0
  81. codex/static_root/assets/{VTable-qFAzmpUV.js → VTable-Do_SF0VB.js} +1 -1
  82. codex/static_root/assets/VTable-Do_SF0VB.js.br +0 -0
  83. codex/static_root/assets/VTable-Do_SF0VB.js.gz +0 -0
  84. codex/static_root/assets/{VWindowItem-B0mrg4ib.473bca7eca63.js → VWindowItem-9OdAFzIK.958c8b636fba.js} +1 -1
  85. codex/static_root/assets/VWindowItem-9OdAFzIK.958c8b636fba.js.br +0 -0
  86. codex/static_root/assets/VWindowItem-9OdAFzIK.958c8b636fba.js.gz +0 -0
  87. codex/static_root/assets/{VWindowItem-B0mrg4ib.js → VWindowItem-9OdAFzIK.js} +1 -1
  88. codex/static_root/assets/VWindowItem-9OdAFzIK.js.br +0 -0
  89. codex/static_root/assets/VWindowItem-9OdAFzIK.js.gz +0 -0
  90. codex/static_root/assets/{admin-DEzMkE3K.ea4a65f2f926.js → admin-B67kr23y.1c946cd48499.js} +1 -1
  91. codex/static_root/assets/admin-B67kr23y.1c946cd48499.js.br +0 -0
  92. codex/static_root/assets/admin-B67kr23y.1c946cd48499.js.gz +0 -0
  93. codex/static_root/assets/{admin-DEzMkE3K.js → admin-B67kr23y.js} +1 -1
  94. codex/static_root/assets/admin-B67kr23y.js.br +0 -0
  95. codex/static_root/assets/admin-B67kr23y.js.gz +0 -0
  96. codex/static_root/assets/{admin-BtjKFdWH.835867135730.js → admin-BbUIqP58.c21b2d9f9955.js} +1 -1
  97. codex/static_root/assets/admin-BbUIqP58.c21b2d9f9955.js.br +0 -0
  98. codex/static_root/assets/admin-BbUIqP58.c21b2d9f9955.js.gz +0 -0
  99. codex/static_root/assets/{admin-BtjKFdWH.js → admin-BbUIqP58.js} +1 -1
  100. codex/static_root/assets/admin-BbUIqP58.js.br +0 -0
  101. codex/static_root/assets/admin-BbUIqP58.js.gz +0 -0
  102. codex/static_root/assets/admin-menu-CKlcsy9S.41b2cf82b873.css +1 -0
  103. codex/static_root/assets/admin-menu-CKlcsy9S.41b2cf82b873.css.br +0 -0
  104. codex/static_root/assets/admin-menu-CKlcsy9S.41b2cf82b873.css.gz +0 -0
  105. codex/static_root/assets/admin-menu-CKlcsy9S.css +1 -0
  106. codex/static_root/assets/admin-menu-CKlcsy9S.css.br +0 -0
  107. codex/static_root/assets/admin-menu-CKlcsy9S.css.gz +0 -0
  108. codex/static_root/assets/admin-menu-bqKOZRfB.c5b5dd89379e.js +1 -0
  109. codex/static_root/assets/admin-menu-bqKOZRfB.c5b5dd89379e.js.br +0 -0
  110. codex/static_root/assets/admin-menu-bqKOZRfB.c5b5dd89379e.js.gz +0 -0
  111. codex/static_root/assets/admin-menu-bqKOZRfB.js +1 -0
  112. codex/static_root/assets/admin-menu-bqKOZRfB.js.br +0 -0
  113. codex/static_root/assets/admin-menu-bqKOZRfB.js.gz +0 -0
  114. codex/static_root/assets/{admin-settings-button-progress-C9lCWw8k.35b197626186.js → admin-settings-button-progress-DOCpX5C6.649affe5eab0.js} +1 -1
  115. codex/static_root/assets/admin-settings-button-progress-DOCpX5C6.649affe5eab0.js.br +0 -0
  116. codex/static_root/assets/admin-settings-button-progress-DOCpX5C6.649affe5eab0.js.gz +0 -0
  117. codex/static_root/assets/{admin-settings-button-progress-C9lCWw8k.js → admin-settings-button-progress-DOCpX5C6.js} +1 -1
  118. codex/static_root/assets/admin-settings-button-progress-DOCpX5C6.js.br +0 -0
  119. codex/static_root/assets/admin-settings-button-progress-DOCpX5C6.js.gz +0 -0
  120. codex/static_root/assets/{browser-gQKq4cjC.3225a1a29760.css → browser-CECBMxOy.a750213334d5.css} +1 -1
  121. codex/static_root/assets/browser-CECBMxOy.a750213334d5.css.br +0 -0
  122. codex/static_root/assets/browser-CECBMxOy.a750213334d5.css.gz +0 -0
  123. codex/static_root/assets/{browser-gQKq4cjC.css → browser-CECBMxOy.css} +1 -1
  124. codex/static_root/assets/browser-CECBMxOy.css.br +0 -0
  125. codex/static_root/assets/browser-CECBMxOy.css.gz +0 -0
  126. codex/static_root/assets/browser-DIqlqqdu.a4d5140b1550.js +1 -0
  127. codex/static_root/assets/browser-DIqlqqdu.a4d5140b1550.js.br +0 -0
  128. codex/static_root/assets/browser-DIqlqqdu.a4d5140b1550.js.gz +0 -0
  129. codex/static_root/assets/browser-DIqlqqdu.js +1 -0
  130. codex/static_root/assets/browser-DIqlqqdu.js.br +0 -0
  131. codex/static_root/assets/browser-DIqlqqdu.js.gz +0 -0
  132. codex/static_root/assets/change-password-dialog-DL8UMjmX.526f97e577e7.css +1 -0
  133. codex/static_root/assets/change-password-dialog-DL8UMjmX.526f97e577e7.css.br +0 -0
  134. codex/static_root/assets/change-password-dialog-DL8UMjmX.526f97e577e7.css.gz +0 -0
  135. codex/static_root/assets/change-password-dialog-DL8UMjmX.css +1 -0
  136. codex/static_root/assets/change-password-dialog-DL8UMjmX.css.br +0 -0
  137. codex/static_root/assets/change-password-dialog-DL8UMjmX.css.gz +0 -0
  138. codex/static_root/assets/change-password-dialog-sLOp6TLK.2aec13897e09.js +1 -0
  139. codex/static_root/assets/change-password-dialog-sLOp6TLK.2aec13897e09.js.br +0 -0
  140. codex/static_root/assets/change-password-dialog-sLOp6TLK.2aec13897e09.js.gz +0 -0
  141. codex/static_root/assets/change-password-dialog-sLOp6TLK.js +1 -0
  142. codex/static_root/assets/change-password-dialog-sLOp6TLK.js.br +0 -0
  143. codex/static_root/assets/change-password-dialog-sLOp6TLK.js.gz +0 -0
  144. codex/static_root/assets/confirm-dialog-BI5kQLy_.1b5309ad95ec.css +1 -0
  145. codex/static_root/assets/confirm-dialog-BI5kQLy_.1b5309ad95ec.css.br +0 -0
  146. codex/static_root/assets/confirm-dialog-BI5kQLy_.css +1 -0
  147. codex/static_root/assets/confirm-dialog-BI5kQLy_.css.br +0 -0
  148. codex/static_root/assets/confirm-dialog-oZvPeyCw.c51b29ccf135.js +1 -0
  149. codex/static_root/assets/confirm-dialog-oZvPeyCw.c51b29ccf135.js.br +0 -0
  150. codex/static_root/assets/confirm-dialog-oZvPeyCw.c51b29ccf135.js.gz +0 -0
  151. codex/static_root/assets/confirm-dialog-oZvPeyCw.js +1 -0
  152. codex/static_root/assets/confirm-dialog-oZvPeyCw.js.br +0 -0
  153. codex/static_root/assets/confirm-dialog-oZvPeyCw.js.gz +0 -0
  154. codex/static_root/assets/{datetime-column-BN8MTxGF.06fa87586057.js → datetime-column-BsXsbUDe.c4f8db1077f2.js} +1 -1
  155. codex/static_root/assets/datetime-column-BsXsbUDe.c4f8db1077f2.js.br +2 -0
  156. codex/static_root/assets/datetime-column-BsXsbUDe.c4f8db1077f2.js.gz +0 -0
  157. codex/static_root/assets/{datetime-column-BN8MTxGF.js → datetime-column-BsXsbUDe.js} +1 -1
  158. codex/static_root/assets/datetime-column-BsXsbUDe.js.br +2 -0
  159. codex/static_root/assets/datetime-column-BsXsbUDe.js.gz +0 -0
  160. codex/static_root/assets/filter-BXwXIw0u.9ff6ae3033f0.js +1 -0
  161. codex/static_root/assets/filter-BXwXIw0u.9ff6ae3033f0.js.br +0 -0
  162. codex/static_root/assets/filter-BXwXIw0u.9ff6ae3033f0.js.gz +0 -0
  163. codex/static_root/assets/filter-BXwXIw0u.js +1 -0
  164. codex/static_root/assets/filter-BXwXIw0u.js.br +0 -0
  165. codex/static_root/assets/filter-BXwXIw0u.js.gz +0 -0
  166. codex/static_root/assets/flag-tab-CESc_7Pq.2260edfa4c38.css +1 -0
  167. codex/static_root/assets/flag-tab-CESc_7Pq.2260edfa4c38.css.br +1 -0
  168. codex/static_root/assets/flag-tab-CESc_7Pq.2260edfa4c38.css.gz +0 -0
  169. codex/static_root/assets/flag-tab-CESc_7Pq.css +1 -0
  170. codex/static_root/assets/flag-tab-CESc_7Pq.css.br +1 -0
  171. codex/static_root/assets/flag-tab-CESc_7Pq.css.gz +0 -0
  172. codex/static_root/assets/{flag-tab-D-Vm731o.de445bf1efd8.js → flag-tab-CaLBkxiN.ff37f7dc5aff.js} +1 -1
  173. codex/static_root/assets/flag-tab-CaLBkxiN.ff37f7dc5aff.js.br +0 -0
  174. codex/static_root/assets/flag-tab-CaLBkxiN.ff37f7dc5aff.js.gz +0 -0
  175. codex/static_root/assets/{flag-tab-D-Vm731o.js → flag-tab-CaLBkxiN.js} +1 -1
  176. codex/static_root/assets/flag-tab-CaLBkxiN.js.br +0 -0
  177. codex/static_root/assets/flag-tab-CaLBkxiN.js.gz +0 -0
  178. codex/static_root/assets/{forwardRefs-CPT3PaIR.e3f89dad5c32.js → forwardRefs-CqAlwRH5.f429e5d46645.js} +1 -1
  179. codex/static_root/assets/forwardRefs-CqAlwRH5.f429e5d46645.js.br +0 -0
  180. codex/static_root/assets/forwardRefs-CqAlwRH5.f429e5d46645.js.gz +0 -0
  181. codex/static_root/assets/{forwardRefs-CPT3PaIR.js → forwardRefs-CqAlwRH5.js} +1 -1
  182. codex/static_root/assets/forwardRefs-CqAlwRH5.js.br +0 -0
  183. codex/static_root/assets/forwardRefs-CqAlwRH5.js.gz +0 -0
  184. codex/static_root/assets/{group-tab-DHg_7lBM.0a71944f81d7.js → group-tab-CwgBkm2O.977524c346bb.js} +1 -1
  185. codex/static_root/assets/group-tab-CwgBkm2O.977524c346bb.js.br +0 -0
  186. codex/static_root/assets/group-tab-CwgBkm2O.977524c346bb.js.gz +0 -0
  187. codex/static_root/assets/{group-tab-DHg_7lBM.js → group-tab-CwgBkm2O.js} +1 -1
  188. codex/static_root/assets/group-tab-CwgBkm2O.js.br +0 -0
  189. codex/static_root/assets/group-tab-CwgBkm2O.js.gz +0 -0
  190. codex/static_root/assets/{http-error-3wet1qit.0dfb14591511.js → http-error-1EUD0mgB.429e5751770c.js} +1 -1
  191. codex/static_root/assets/http-error-1EUD0mgB.429e5751770c.js.br +0 -0
  192. codex/static_root/assets/http-error-1EUD0mgB.429e5751770c.js.gz +0 -0
  193. codex/static_root/assets/{http-error-3wet1qit.js → http-error-1EUD0mgB.js} +1 -1
  194. codex/static_root/assets/http-error-1EUD0mgB.js.br +0 -0
  195. codex/static_root/assets/http-error-1EUD0mgB.js.gz +0 -0
  196. codex/static_root/assets/{index-B7MTJvsh.72d1b5a22643.js → index-BXX_CFtA.4b5db6d40019.js} +1 -1
  197. codex/static_root/assets/index-BXX_CFtA.4b5db6d40019.js.br +0 -0
  198. codex/static_root/assets/index-BXX_CFtA.4b5db6d40019.js.gz +0 -0
  199. codex/static_root/assets/{index-B7MTJvsh.js → index-BXX_CFtA.js} +1 -1
  200. codex/static_root/assets/index-BXX_CFtA.js.br +0 -0
  201. codex/static_root/assets/index-BXX_CFtA.js.gz +0 -0
  202. codex/static_root/assets/library-tab-DfefgeJ9.2216ab51fb3d.js +1 -0
  203. codex/static_root/assets/library-tab-DfefgeJ9.2216ab51fb3d.js.br +0 -0
  204. codex/static_root/assets/library-tab-DfefgeJ9.2216ab51fb3d.js.gz +0 -0
  205. codex/static_root/assets/library-tab-DfefgeJ9.js +1 -0
  206. codex/static_root/assets/library-tab-DfefgeJ9.js.br +0 -0
  207. codex/static_root/assets/library-tab-DfefgeJ9.js.gz +0 -0
  208. codex/static_root/assets/{library-tab-CgsXOX_r.75baedb7e976.css → library-tab-thTonyXr.58b745660d42.css} +1 -1
  209. codex/static_root/assets/library-tab-thTonyXr.58b745660d42.css.br +0 -0
  210. codex/static_root/assets/library-tab-thTonyXr.58b745660d42.css.gz +0 -0
  211. codex/static_root/assets/{library-tab-CgsXOX_r.css → library-tab-thTonyXr.css} +1 -1
  212. codex/static_root/assets/library-tab-thTonyXr.css.br +0 -0
  213. codex/static_root/assets/library-tab-thTonyXr.css.gz +0 -0
  214. codex/static_root/assets/main-DTZJMtFc.9b5801c1c4f4.js +35 -0
  215. codex/static_root/assets/main-DTZJMtFc.9b5801c1c4f4.js.br +0 -0
  216. codex/static_root/assets/main-DTZJMtFc.9b5801c1c4f4.js.gz +0 -0
  217. codex/static_root/assets/main-DTZJMtFc.js +35 -0
  218. codex/static_root/assets/main-DTZJMtFc.js.br +0 -0
  219. codex/static_root/assets/main-DTZJMtFc.js.gz +0 -0
  220. codex/static_root/assets/pager-full-pdf-BcSKaf8m.381858040c3d.js +1 -0
  221. codex/static_root/assets/pager-full-pdf-BcSKaf8m.381858040c3d.js.br +0 -0
  222. codex/static_root/assets/pager-full-pdf-BcSKaf8m.381858040c3d.js.gz +0 -0
  223. codex/static_root/assets/pager-full-pdf-BcSKaf8m.js +1 -0
  224. codex/static_root/assets/pager-full-pdf-BcSKaf8m.js.br +0 -0
  225. codex/static_root/assets/pager-full-pdf-BcSKaf8m.js.gz +0 -0
  226. codex/static_root/assets/pagination-toolbar-C_xCbB_P.d49e3dbda04b.js +1 -0
  227. codex/static_root/assets/pagination-toolbar-C_xCbB_P.d49e3dbda04b.js.br +0 -0
  228. codex/static_root/assets/pagination-toolbar-C_xCbB_P.d49e3dbda04b.js.gz +0 -0
  229. codex/static_root/assets/pagination-toolbar-C_xCbB_P.js +1 -0
  230. codex/static_root/assets/pagination-toolbar-C_xCbB_P.js.br +0 -0
  231. codex/static_root/assets/pagination-toolbar-C_xCbB_P.js.gz +0 -0
  232. codex/static_root/assets/pagination-toolbar-CqsoppQf.css +1 -0
  233. codex/static_root/assets/pagination-toolbar-CqsoppQf.css.br +0 -0
  234. codex/static_root/assets/pagination-toolbar-CqsoppQf.css.gz +0 -0
  235. codex/static_root/assets/pagination-toolbar-CqsoppQf.e58a5a1d3566.css +1 -0
  236. codex/static_root/assets/pagination-toolbar-CqsoppQf.e58a5a1d3566.css.br +0 -0
  237. codex/static_root/assets/pagination-toolbar-CqsoppQf.e58a5a1d3566.css.gz +0 -0
  238. codex/static_root/assets/{pdf-doc-BgNMLC4l.87fba253596f.js → pdf-doc-Gq3sFXgk.bf0d8439f2ff.js} +14 -14
  239. codex/static_root/assets/pdf-doc-Gq3sFXgk.bf0d8439f2ff.js.br +0 -0
  240. codex/static_root/assets/pdf-doc-Gq3sFXgk.bf0d8439f2ff.js.gz +0 -0
  241. codex/static_root/assets/{pdf-doc-BgNMLC4l.js → pdf-doc-Gq3sFXgk.js} +14 -14
  242. codex/static_root/assets/pdf-doc-Gq3sFXgk.js.br +0 -0
  243. codex/static_root/assets/pdf-doc-Gq3sFXgk.js.gz +0 -0
  244. codex/static_root/assets/{reader-D_3ruSqa.2ed32f08e906.css → reader-Bcw698_5.b73e2757553f.css} +1 -1
  245. codex/static_root/assets/reader-Bcw698_5.b73e2757553f.css.br +0 -0
  246. codex/static_root/assets/reader-Bcw698_5.b73e2757553f.css.gz +0 -0
  247. codex/static_root/assets/{reader-D_3ruSqa.css → reader-Bcw698_5.css} +1 -1
  248. codex/static_root/assets/reader-Bcw698_5.css.br +0 -0
  249. codex/static_root/assets/reader-Bcw698_5.css.gz +0 -0
  250. codex/static_root/assets/reader-CMIzQ69v.af8a81ee4933.js +2 -0
  251. codex/static_root/assets/reader-CMIzQ69v.af8a81ee4933.js.br +0 -0
  252. codex/static_root/assets/reader-CMIzQ69v.af8a81ee4933.js.gz +0 -0
  253. codex/static_root/assets/reader-CMIzQ69v.js +2 -0
  254. codex/static_root/assets/reader-CMIzQ69v.js.br +0 -0
  255. codex/static_root/assets/reader-CMIzQ69v.js.gz +0 -0
  256. codex/static_root/assets/{relation-chips-DpbzrZxT.01269a188e01.css → relation-chips-CifZPloM.css} +1 -1
  257. codex/static_root/assets/relation-chips-CifZPloM.css.br +0 -0
  258. codex/static_root/assets/relation-chips-CifZPloM.css.gz +0 -0
  259. codex/static_root/assets/{relation-chips-DpbzrZxT.css → relation-chips-CifZPloM.e1f40ac9ae8b.css} +1 -1
  260. codex/static_root/assets/relation-chips-CifZPloM.e1f40ac9ae8b.css.br +0 -0
  261. codex/static_root/assets/relation-chips-CifZPloM.e1f40ac9ae8b.css.gz +0 -0
  262. codex/static_root/assets/{relation-chips-DbXtJllJ.js → relation-chips-DogFotgq.ff6358c92f7b.js} +1 -1
  263. codex/static_root/assets/relation-chips-DogFotgq.ff6358c92f7b.js.br +0 -0
  264. codex/static_root/assets/relation-chips-DogFotgq.ff6358c92f7b.js.gz +0 -0
  265. codex/static_root/assets/{relation-chips-DbXtJllJ.3aa0c32386e4.js → relation-chips-DogFotgq.js} +1 -1
  266. codex/static_root/assets/relation-chips-DogFotgq.js.br +0 -0
  267. codex/static_root/assets/relation-chips-DogFotgq.js.gz +0 -0
  268. codex/static_root/assets/settings-drawer-Bgy-v53G.e38619bb3a21.js +2 -0
  269. codex/static_root/assets/settings-drawer-Bgy-v53G.e38619bb3a21.js.br +0 -0
  270. codex/static_root/assets/settings-drawer-Bgy-v53G.e38619bb3a21.js.gz +0 -0
  271. codex/static_root/assets/settings-drawer-Bgy-v53G.js +2 -0
  272. codex/static_root/assets/settings-drawer-Bgy-v53G.js.br +0 -0
  273. codex/static_root/assets/settings-drawer-Bgy-v53G.js.gz +0 -0
  274. codex/static_root/assets/{settings-drawer-DMSsWF8c.75a6ea969e71.css → settings-drawer-Bl-6rF9E.7ace6186c209.css} +1 -1
  275. codex/static_root/assets/settings-drawer-Bl-6rF9E.7ace6186c209.css.br +0 -0
  276. codex/static_root/assets/settings-drawer-Bl-6rF9E.7ace6186c209.css.gz +0 -0
  277. codex/static_root/assets/{settings-drawer-DMSsWF8c.css → settings-drawer-Bl-6rF9E.css} +1 -1
  278. codex/static_root/assets/settings-drawer-Bl-6rF9E.css.br +0 -0
  279. codex/static_root/assets/settings-drawer-Bl-6rF9E.css.gz +0 -0
  280. codex/static_root/assets/{ssrBoot-DDdBkZwM.99c8d24a9abb.js → ssrBoot-BBD0SpTn.0e2d87430f10.js} +1 -1
  281. codex/static_root/assets/ssrBoot-BBD0SpTn.0e2d87430f10.js.br +0 -0
  282. codex/static_root/assets/ssrBoot-BBD0SpTn.0e2d87430f10.js.gz +0 -0
  283. codex/static_root/assets/{ssrBoot-DDdBkZwM.js → ssrBoot-BBD0SpTn.js} +1 -1
  284. codex/static_root/assets/ssrBoot-BBD0SpTn.js.br +0 -0
  285. codex/static_root/assets/ssrBoot-BBD0SpTn.js.gz +0 -0
  286. codex/static_root/assets/{stats-tab-WvF2acoZ.9fdb0106124d.css → stats-tab-B6L711cO.b6a42655cd70.css} +1 -1
  287. codex/static_root/assets/stats-tab-B6L711cO.b6a42655cd70.css.br +2 -0
  288. codex/static_root/assets/stats-tab-B6L711cO.b6a42655cd70.css.gz +0 -0
  289. codex/static_root/assets/{stats-tab-WvF2acoZ.css → stats-tab-B6L711cO.css} +1 -1
  290. codex/static_root/assets/stats-tab-B6L711cO.css.br +2 -0
  291. codex/static_root/assets/stats-tab-B6L711cO.css.gz +0 -0
  292. codex/static_root/assets/stats-tab-GO5hZBwz.3d99d408f27f.js +1 -0
  293. codex/static_root/assets/stats-tab-GO5hZBwz.3d99d408f27f.js.br +0 -0
  294. codex/static_root/assets/stats-tab-GO5hZBwz.3d99d408f27f.js.gz +0 -0
  295. codex/static_root/assets/stats-tab-GO5hZBwz.js +1 -0
  296. codex/static_root/assets/stats-tab-GO5hZBwz.js.br +0 -0
  297. codex/static_root/assets/stats-tab-GO5hZBwz.js.gz +0 -0
  298. codex/static_root/assets/{task-tab-DkXh1BGP.42b4bcadbf86.js → task-tab-BXfkWbVA.f5ab0fcf38a2.js} +1 -1
  299. codex/static_root/assets/task-tab-BXfkWbVA.f5ab0fcf38a2.js.br +0 -0
  300. codex/static_root/assets/task-tab-BXfkWbVA.f5ab0fcf38a2.js.gz +0 -0
  301. codex/static_root/assets/{task-tab-DkXh1BGP.js → task-tab-BXfkWbVA.js} +1 -1
  302. codex/static_root/assets/task-tab-BXfkWbVA.js.br +0 -0
  303. codex/static_root/assets/task-tab-BXfkWbVA.js.gz +0 -0
  304. codex/static_root/assets/{unauthorized-CsSak07X.c5536d9dae75.css → unauthorized-CtkV01lw.8668ffe7b306.css} +1 -1
  305. codex/static_root/assets/unauthorized-CtkV01lw.8668ffe7b306.css.br +0 -0
  306. codex/static_root/assets/unauthorized-CtkV01lw.8668ffe7b306.css.gz +0 -0
  307. codex/static_root/assets/{unauthorized-CsSak07X.css → unauthorized-CtkV01lw.css} +1 -1
  308. codex/static_root/assets/unauthorized-CtkV01lw.css.br +0 -0
  309. codex/static_root/assets/unauthorized-CtkV01lw.css.gz +0 -0
  310. codex/static_root/assets/unauthorized-DJAN2cQL.754b87c5b6e3.js +1 -0
  311. codex/static_root/assets/unauthorized-DJAN2cQL.754b87c5b6e3.js.br +0 -0
  312. codex/static_root/assets/unauthorized-DJAN2cQL.754b87c5b6e3.js.gz +0 -0
  313. codex/static_root/assets/unauthorized-DJAN2cQL.js +1 -0
  314. codex/static_root/assets/unauthorized-DJAN2cQL.js.br +0 -0
  315. codex/static_root/assets/unauthorized-DJAN2cQL.js.gz +0 -0
  316. codex/static_root/assets/{user-tab-Dx51peTz.6cb9636f08c5.js → user-tab-DWHTLASk.0b9861fb37e5.js} +1 -1
  317. codex/static_root/assets/user-tab-DWHTLASk.0b9861fb37e5.js.br +0 -0
  318. codex/static_root/assets/user-tab-DWHTLASk.0b9861fb37e5.js.gz +0 -0
  319. codex/static_root/assets/{user-tab-Dx51peTz.js → user-tab-DWHTLASk.js} +1 -1
  320. codex/static_root/assets/user-tab-DWHTLASk.js.br +0 -0
  321. codex/static_root/assets/user-tab-DWHTLASk.js.gz +0 -0
  322. codex/static_root/{manifest.8decabd0856e.json → manifest.8aca4eda8739.json} +291 -289
  323. codex/static_root/manifest.8aca4eda8739.json.br +0 -0
  324. codex/static_root/manifest.8aca4eda8739.json.gz +0 -0
  325. codex/static_root/manifest.json +291 -289
  326. codex/static_root/manifest.json.br +0 -0
  327. codex/static_root/manifest.json.gz +0 -0
  328. codex/static_root/staticfiles.json +1 -1
  329. codex/status_controller.py +27 -30
  330. codex/views/admin/tasks.py +4 -3
  331. codex/views/browser/filters/group.py +1 -1
  332. codex/views/browser/metadata/annotate.py +13 -14
  333. codex/views/browser/metadata/copy_intersections.py +9 -17
  334. codex/views/browser/metadata/query_intersections.py +0 -2
  335. {codex-1.7.6.dist-info → codex-1.7.8.dist-info}/METADATA +1 -1
  336. {codex-1.7.6.dist-info → codex-1.7.8.dist-info}/RECORD +339 -338
  337. codex/static_root/assets/VCheckbox-CwHKQJ94.127ebad87333.js +0 -1
  338. codex/static_root/assets/VCheckbox-CwHKQJ94.127ebad87333.js.br +0 -0
  339. codex/static_root/assets/VCheckbox-CwHKQJ94.127ebad87333.js.gz +0 -0
  340. codex/static_root/assets/VCheckbox-CwHKQJ94.js +0 -1
  341. codex/static_root/assets/VCheckbox-CwHKQJ94.js.br +0 -0
  342. codex/static_root/assets/VCheckbox-CwHKQJ94.js.gz +0 -0
  343. codex/static_root/assets/VCheckboxBtn-DtWeBQSc.eb4f0b35df90.js.br +0 -0
  344. codex/static_root/assets/VCheckboxBtn-DtWeBQSc.eb4f0b35df90.js.gz +0 -0
  345. codex/static_root/assets/VCheckboxBtn-DtWeBQSc.js.br +0 -0
  346. codex/static_root/assets/VCheckboxBtn-DtWeBQSc.js.gz +0 -0
  347. codex/static_root/assets/VCombobox-C44w_9Tr.e8c0aeaf51bb.js.br +0 -0
  348. codex/static_root/assets/VCombobox-C44w_9Tr.e8c0aeaf51bb.js.gz +0 -0
  349. codex/static_root/assets/VCombobox-C44w_9Tr.js.br +0 -0
  350. codex/static_root/assets/VCombobox-C44w_9Tr.js.gz +0 -0
  351. codex/static_root/assets/VDialog-B23zgnQg.2ad0b1bd166a.js.br +0 -0
  352. codex/static_root/assets/VDialog-B23zgnQg.2ad0b1bd166a.js.gz +0 -0
  353. codex/static_root/assets/VDialog-B23zgnQg.js.br +0 -0
  354. codex/static_root/assets/VDialog-B23zgnQg.js.gz +0 -0
  355. codex/static_root/assets/VDialog-BDaX1tXA.c61bfde6cb2a.css.br +0 -0
  356. codex/static_root/assets/VDialog-BDaX1tXA.c61bfde6cb2a.css.gz +0 -0
  357. codex/static_root/assets/VDialog-BDaX1tXA.css.br +0 -0
  358. codex/static_root/assets/VDialog-BDaX1tXA.css.gz +0 -0
  359. codex/static_root/assets/VDivider-CXvbBALe.aaec2523ab0d.js.br +0 -0
  360. codex/static_root/assets/VDivider-CXvbBALe.aaec2523ab0d.js.gz +0 -0
  361. codex/static_root/assets/VDivider-CXvbBALe.js.br +0 -0
  362. codex/static_root/assets/VDivider-CXvbBALe.js.gz +0 -0
  363. codex/static_root/assets/VExpansionPanels-y8aa_9Go.f8eadc657914.js.br +0 -0
  364. codex/static_root/assets/VExpansionPanels-y8aa_9Go.f8eadc657914.js.gz +0 -0
  365. codex/static_root/assets/VExpansionPanels-y8aa_9Go.js.br +0 -0
  366. codex/static_root/assets/VExpansionPanels-y8aa_9Go.js.gz +0 -0
  367. codex/static_root/assets/VForm-moUsJiEX.a1aa6a07978f.js.br +0 -0
  368. codex/static_root/assets/VForm-moUsJiEX.a1aa6a07978f.js.gz +0 -0
  369. codex/static_root/assets/VForm-moUsJiEX.js.br +0 -0
  370. codex/static_root/assets/VForm-moUsJiEX.js.gz +0 -0
  371. codex/static_root/assets/VRadioGroup-Dq9Lhxp6.e8bb88987c19.js.br +0 -3
  372. codex/static_root/assets/VRadioGroup-Dq9Lhxp6.e8bb88987c19.js.gz +0 -0
  373. codex/static_root/assets/VRadioGroup-Dq9Lhxp6.js.br +0 -3
  374. codex/static_root/assets/VRadioGroup-Dq9Lhxp6.js.gz +0 -0
  375. codex/static_root/assets/VSelect-BNa4Zji8.657caadd0e0c.js +0 -1
  376. codex/static_root/assets/VSelect-BNa4Zji8.657caadd0e0c.js.br +0 -0
  377. codex/static_root/assets/VSelect-BNa4Zji8.657caadd0e0c.js.gz +0 -0
  378. codex/static_root/assets/VSelect-BNa4Zji8.js +0 -1
  379. codex/static_root/assets/VSelect-BNa4Zji8.js.br +0 -0
  380. codex/static_root/assets/VSelect-BNa4Zji8.js.gz +0 -0
  381. codex/static_root/assets/VSelectionControl-Cx6Xy7hY.5a2c6214fa48.js.br +0 -0
  382. codex/static_root/assets/VSelectionControl-Cx6Xy7hY.5a2c6214fa48.js.gz +0 -0
  383. codex/static_root/assets/VSelectionControl-Cx6Xy7hY.js.br +0 -0
  384. codex/static_root/assets/VSelectionControl-Cx6Xy7hY.js.gz +0 -0
  385. codex/static_root/assets/VTable-qFAzmpUV.238dcd9fe0c9.js.br +0 -0
  386. codex/static_root/assets/VTable-qFAzmpUV.238dcd9fe0c9.js.gz +0 -0
  387. codex/static_root/assets/VTable-qFAzmpUV.js.br +0 -0
  388. codex/static_root/assets/VTable-qFAzmpUV.js.gz +0 -0
  389. codex/static_root/assets/VWindowItem-B0mrg4ib.473bca7eca63.js.br +0 -0
  390. codex/static_root/assets/VWindowItem-B0mrg4ib.473bca7eca63.js.gz +0 -0
  391. codex/static_root/assets/VWindowItem-B0mrg4ib.js.br +0 -0
  392. codex/static_root/assets/VWindowItem-B0mrg4ib.js.gz +0 -0
  393. codex/static_root/assets/admin-BtjKFdWH.835867135730.js.br +0 -0
  394. codex/static_root/assets/admin-BtjKFdWH.835867135730.js.gz +0 -0
  395. codex/static_root/assets/admin-BtjKFdWH.js.br +0 -0
  396. codex/static_root/assets/admin-BtjKFdWH.js.gz +0 -0
  397. codex/static_root/assets/admin-DEzMkE3K.ea4a65f2f926.js.br +0 -0
  398. codex/static_root/assets/admin-DEzMkE3K.ea4a65f2f926.js.gz +0 -0
  399. codex/static_root/assets/admin-DEzMkE3K.js.br +0 -0
  400. codex/static_root/assets/admin-DEzMkE3K.js.gz +0 -0
  401. codex/static_root/assets/admin-menu-B3iXsOyy.c13b7df2ff57.css +0 -1
  402. codex/static_root/assets/admin-menu-B3iXsOyy.c13b7df2ff57.css.br +0 -0
  403. codex/static_root/assets/admin-menu-B3iXsOyy.c13b7df2ff57.css.gz +0 -0
  404. codex/static_root/assets/admin-menu-B3iXsOyy.css +0 -1
  405. codex/static_root/assets/admin-menu-B3iXsOyy.css.br +0 -0
  406. codex/static_root/assets/admin-menu-B3iXsOyy.css.gz +0 -0
  407. codex/static_root/assets/admin-menu-R2n0F_fo.c1c4570d9ede.js +0 -1
  408. codex/static_root/assets/admin-menu-R2n0F_fo.c1c4570d9ede.js.br +0 -0
  409. codex/static_root/assets/admin-menu-R2n0F_fo.c1c4570d9ede.js.gz +0 -0
  410. codex/static_root/assets/admin-menu-R2n0F_fo.js +0 -1
  411. codex/static_root/assets/admin-menu-R2n0F_fo.js.br +0 -0
  412. codex/static_root/assets/admin-menu-R2n0F_fo.js.gz +0 -0
  413. codex/static_root/assets/admin-settings-button-progress-C9lCWw8k.35b197626186.js.br +0 -0
  414. codex/static_root/assets/admin-settings-button-progress-C9lCWw8k.35b197626186.js.gz +0 -0
  415. codex/static_root/assets/admin-settings-button-progress-C9lCWw8k.js.br +0 -0
  416. codex/static_root/assets/admin-settings-button-progress-C9lCWw8k.js.gz +0 -0
  417. codex/static_root/assets/browser-gQKq4cjC.3225a1a29760.css.br +0 -0
  418. codex/static_root/assets/browser-gQKq4cjC.3225a1a29760.css.gz +0 -0
  419. codex/static_root/assets/browser-gQKq4cjC.css.br +0 -0
  420. codex/static_root/assets/browser-gQKq4cjC.css.gz +0 -0
  421. codex/static_root/assets/browser-w29qvXZC.84f4d80ffad1.js +0 -1
  422. codex/static_root/assets/browser-w29qvXZC.84f4d80ffad1.js.br +0 -0
  423. codex/static_root/assets/browser-w29qvXZC.84f4d80ffad1.js.gz +0 -0
  424. codex/static_root/assets/browser-w29qvXZC.js +0 -1
  425. codex/static_root/assets/browser-w29qvXZC.js.br +0 -0
  426. codex/static_root/assets/browser-w29qvXZC.js.gz +0 -0
  427. codex/static_root/assets/change-password-dialog-C3iwpm32.22e54e2544c2.js +0 -1
  428. codex/static_root/assets/change-password-dialog-C3iwpm32.22e54e2544c2.js.br +0 -0
  429. codex/static_root/assets/change-password-dialog-C3iwpm32.22e54e2544c2.js.gz +0 -0
  430. codex/static_root/assets/change-password-dialog-C3iwpm32.js +0 -1
  431. codex/static_root/assets/change-password-dialog-C3iwpm32.js.br +0 -0
  432. codex/static_root/assets/change-password-dialog-C3iwpm32.js.gz +0 -0
  433. codex/static_root/assets/change-password-dialog-D0ymWcl_.a30e68c6e303.css +0 -1
  434. codex/static_root/assets/change-password-dialog-D0ymWcl_.a30e68c6e303.css.br +0 -0
  435. codex/static_root/assets/change-password-dialog-D0ymWcl_.a30e68c6e303.css.gz +0 -0
  436. codex/static_root/assets/change-password-dialog-D0ymWcl_.css +0 -1
  437. codex/static_root/assets/change-password-dialog-D0ymWcl_.css.br +0 -0
  438. codex/static_root/assets/change-password-dialog-D0ymWcl_.css.gz +0 -0
  439. codex/static_root/assets/confirm-dialog-B1ABbGMU.9b5915b112c0.css +0 -1
  440. codex/static_root/assets/confirm-dialog-B1ABbGMU.9b5915b112c0.css.br +0 -0
  441. codex/static_root/assets/confirm-dialog-B1ABbGMU.css +0 -1
  442. codex/static_root/assets/confirm-dialog-B1ABbGMU.css.br +0 -0
  443. codex/static_root/assets/confirm-dialog-DONZupFF.351a50590157.js +0 -1
  444. codex/static_root/assets/confirm-dialog-DONZupFF.351a50590157.js.br +0 -0
  445. codex/static_root/assets/confirm-dialog-DONZupFF.351a50590157.js.gz +0 -0
  446. codex/static_root/assets/confirm-dialog-DONZupFF.js +0 -1
  447. codex/static_root/assets/confirm-dialog-DONZupFF.js.br +0 -0
  448. codex/static_root/assets/confirm-dialog-DONZupFF.js.gz +0 -0
  449. codex/static_root/assets/datetime-column-BN8MTxGF.06fa87586057.js.br +0 -0
  450. codex/static_root/assets/datetime-column-BN8MTxGF.06fa87586057.js.gz +0 -0
  451. codex/static_root/assets/datetime-column-BN8MTxGF.js.br +0 -0
  452. codex/static_root/assets/datetime-column-BN8MTxGF.js.gz +0 -0
  453. codex/static_root/assets/filter-DehKIIGX.d4763130e428.js +0 -1
  454. codex/static_root/assets/filter-DehKIIGX.d4763130e428.js.br +0 -0
  455. codex/static_root/assets/filter-DehKIIGX.d4763130e428.js.gz +0 -0
  456. codex/static_root/assets/filter-DehKIIGX.js +0 -1
  457. codex/static_root/assets/filter-DehKIIGX.js.br +0 -0
  458. codex/static_root/assets/filter-DehKIIGX.js.gz +0 -0
  459. codex/static_root/assets/flag-tab-D-Vm731o.de445bf1efd8.js.br +0 -0
  460. codex/static_root/assets/flag-tab-D-Vm731o.de445bf1efd8.js.gz +0 -0
  461. codex/static_root/assets/flag-tab-D-Vm731o.js.br +0 -0
  462. codex/static_root/assets/flag-tab-D-Vm731o.js.gz +0 -0
  463. codex/static_root/assets/flag-tab-D2MYXCHk.0f57e109c01b.css +0 -1
  464. codex/static_root/assets/flag-tab-D2MYXCHk.0f57e109c01b.css.br +0 -0
  465. codex/static_root/assets/flag-tab-D2MYXCHk.0f57e109c01b.css.gz +0 -0
  466. codex/static_root/assets/flag-tab-D2MYXCHk.css +0 -1
  467. codex/static_root/assets/flag-tab-D2MYXCHk.css.br +0 -0
  468. codex/static_root/assets/flag-tab-D2MYXCHk.css.gz +0 -0
  469. codex/static_root/assets/forwardRefs-CPT3PaIR.e3f89dad5c32.js.br +0 -0
  470. codex/static_root/assets/forwardRefs-CPT3PaIR.e3f89dad5c32.js.gz +0 -0
  471. codex/static_root/assets/forwardRefs-CPT3PaIR.js.br +0 -0
  472. codex/static_root/assets/forwardRefs-CPT3PaIR.js.gz +0 -0
  473. codex/static_root/assets/group-tab-DHg_7lBM.0a71944f81d7.js.br +0 -0
  474. codex/static_root/assets/group-tab-DHg_7lBM.0a71944f81d7.js.gz +0 -0
  475. codex/static_root/assets/group-tab-DHg_7lBM.js.br +0 -0
  476. codex/static_root/assets/group-tab-DHg_7lBM.js.gz +0 -0
  477. codex/static_root/assets/http-error-3wet1qit.0dfb14591511.js.br +0 -0
  478. codex/static_root/assets/http-error-3wet1qit.0dfb14591511.js.gz +0 -0
  479. codex/static_root/assets/http-error-3wet1qit.js.br +0 -0
  480. codex/static_root/assets/http-error-3wet1qit.js.gz +0 -0
  481. codex/static_root/assets/index-B7MTJvsh.72d1b5a22643.js.br +0 -0
  482. codex/static_root/assets/index-B7MTJvsh.72d1b5a22643.js.gz +0 -0
  483. codex/static_root/assets/index-B7MTJvsh.js.br +0 -0
  484. codex/static_root/assets/index-B7MTJvsh.js.gz +0 -0
  485. codex/static_root/assets/library-tab-BwNsGaT8.ac078d92716c.js +0 -1
  486. codex/static_root/assets/library-tab-BwNsGaT8.ac078d92716c.js.br +0 -0
  487. codex/static_root/assets/library-tab-BwNsGaT8.ac078d92716c.js.gz +0 -0
  488. codex/static_root/assets/library-tab-BwNsGaT8.js +0 -1
  489. codex/static_root/assets/library-tab-BwNsGaT8.js.br +0 -0
  490. codex/static_root/assets/library-tab-BwNsGaT8.js.gz +0 -0
  491. codex/static_root/assets/library-tab-CgsXOX_r.75baedb7e976.css.br +0 -0
  492. codex/static_root/assets/library-tab-CgsXOX_r.75baedb7e976.css.gz +0 -0
  493. codex/static_root/assets/library-tab-CgsXOX_r.css.br +0 -0
  494. codex/static_root/assets/library-tab-CgsXOX_r.css.gz +0 -0
  495. codex/static_root/assets/main-D2_idFz6.35b387ef2e6e.js +0 -35
  496. codex/static_root/assets/main-D2_idFz6.35b387ef2e6e.js.br +0 -0
  497. codex/static_root/assets/main-D2_idFz6.35b387ef2e6e.js.gz +0 -0
  498. codex/static_root/assets/main-D2_idFz6.js +0 -35
  499. codex/static_root/assets/main-D2_idFz6.js.br +0 -0
  500. codex/static_root/assets/main-D2_idFz6.js.gz +0 -0
  501. codex/static_root/assets/pager-full-pdf-Br7cqXaJ.6d9ddf768fd7.js +0 -1
  502. codex/static_root/assets/pager-full-pdf-Br7cqXaJ.6d9ddf768fd7.js.br +0 -0
  503. codex/static_root/assets/pager-full-pdf-Br7cqXaJ.6d9ddf768fd7.js.gz +0 -0
  504. codex/static_root/assets/pager-full-pdf-Br7cqXaJ.js +0 -1
  505. codex/static_root/assets/pager-full-pdf-Br7cqXaJ.js.br +0 -0
  506. codex/static_root/assets/pager-full-pdf-Br7cqXaJ.js.gz +0 -0
  507. codex/static_root/assets/pagination-toolbar-BP1ZminG.7c284d7371e0.css +0 -1
  508. codex/static_root/assets/pagination-toolbar-BP1ZminG.7c284d7371e0.css.br +0 -0
  509. codex/static_root/assets/pagination-toolbar-BP1ZminG.7c284d7371e0.css.gz +0 -0
  510. codex/static_root/assets/pagination-toolbar-BP1ZminG.css +0 -1
  511. codex/static_root/assets/pagination-toolbar-BP1ZminG.css.br +0 -0
  512. codex/static_root/assets/pagination-toolbar-BP1ZminG.css.gz +0 -0
  513. codex/static_root/assets/pagination-toolbar-CO5jadWr.5314a10eaf91.js +0 -1
  514. codex/static_root/assets/pagination-toolbar-CO5jadWr.5314a10eaf91.js.br +0 -0
  515. codex/static_root/assets/pagination-toolbar-CO5jadWr.5314a10eaf91.js.gz +0 -0
  516. codex/static_root/assets/pagination-toolbar-CO5jadWr.js +0 -1
  517. codex/static_root/assets/pagination-toolbar-CO5jadWr.js.br +0 -0
  518. codex/static_root/assets/pagination-toolbar-CO5jadWr.js.gz +0 -0
  519. codex/static_root/assets/pdf-doc-BgNMLC4l.87fba253596f.js.br +0 -0
  520. codex/static_root/assets/pdf-doc-BgNMLC4l.87fba253596f.js.gz +0 -0
  521. codex/static_root/assets/pdf-doc-BgNMLC4l.js.br +0 -0
  522. codex/static_root/assets/pdf-doc-BgNMLC4l.js.gz +0 -0
  523. codex/static_root/assets/reader-D4z2bwpd.c99f3a8c05c5.js +0 -2
  524. codex/static_root/assets/reader-D4z2bwpd.c99f3a8c05c5.js.br +0 -0
  525. codex/static_root/assets/reader-D4z2bwpd.c99f3a8c05c5.js.gz +0 -0
  526. codex/static_root/assets/reader-D4z2bwpd.js +0 -2
  527. codex/static_root/assets/reader-D4z2bwpd.js.br +0 -0
  528. codex/static_root/assets/reader-D4z2bwpd.js.gz +0 -0
  529. codex/static_root/assets/reader-D_3ruSqa.2ed32f08e906.css.br +0 -0
  530. codex/static_root/assets/reader-D_3ruSqa.2ed32f08e906.css.gz +0 -0
  531. codex/static_root/assets/reader-D_3ruSqa.css.br +0 -0
  532. codex/static_root/assets/reader-D_3ruSqa.css.gz +0 -0
  533. codex/static_root/assets/relation-chips-DbXtJllJ.3aa0c32386e4.js.br +0 -0
  534. codex/static_root/assets/relation-chips-DbXtJllJ.3aa0c32386e4.js.gz +0 -0
  535. codex/static_root/assets/relation-chips-DbXtJllJ.js.br +0 -0
  536. codex/static_root/assets/relation-chips-DbXtJllJ.js.gz +0 -0
  537. codex/static_root/assets/relation-chips-DpbzrZxT.01269a188e01.css.br +0 -0
  538. codex/static_root/assets/relation-chips-DpbzrZxT.01269a188e01.css.gz +0 -0
  539. codex/static_root/assets/relation-chips-DpbzrZxT.css.br +0 -0
  540. codex/static_root/assets/relation-chips-DpbzrZxT.css.gz +0 -0
  541. codex/static_root/assets/settings-drawer-DMSsWF8c.75a6ea969e71.css.br +0 -0
  542. codex/static_root/assets/settings-drawer-DMSsWF8c.75a6ea969e71.css.gz +0 -0
  543. codex/static_root/assets/settings-drawer-DMSsWF8c.css.br +0 -0
  544. codex/static_root/assets/settings-drawer-DMSsWF8c.css.gz +0 -0
  545. codex/static_root/assets/settings-drawer-dzlMTZa4.ac894cc11a42.js +0 -2
  546. codex/static_root/assets/settings-drawer-dzlMTZa4.ac894cc11a42.js.br +0 -0
  547. codex/static_root/assets/settings-drawer-dzlMTZa4.ac894cc11a42.js.gz +0 -0
  548. codex/static_root/assets/settings-drawer-dzlMTZa4.js +0 -2
  549. codex/static_root/assets/settings-drawer-dzlMTZa4.js.br +0 -0
  550. codex/static_root/assets/settings-drawer-dzlMTZa4.js.gz +0 -0
  551. codex/static_root/assets/ssrBoot-DDdBkZwM.99c8d24a9abb.js.br +0 -0
  552. codex/static_root/assets/ssrBoot-DDdBkZwM.99c8d24a9abb.js.gz +0 -0
  553. codex/static_root/assets/ssrBoot-DDdBkZwM.js.br +0 -0
  554. codex/static_root/assets/ssrBoot-DDdBkZwM.js.gz +0 -0
  555. codex/static_root/assets/stats-tab-Q8naL40Y.eb1bc2a35f87.js +0 -1
  556. codex/static_root/assets/stats-tab-Q8naL40Y.eb1bc2a35f87.js.br +0 -0
  557. codex/static_root/assets/stats-tab-Q8naL40Y.eb1bc2a35f87.js.gz +0 -0
  558. codex/static_root/assets/stats-tab-Q8naL40Y.js +0 -1
  559. codex/static_root/assets/stats-tab-Q8naL40Y.js.br +0 -0
  560. codex/static_root/assets/stats-tab-Q8naL40Y.js.gz +0 -0
  561. codex/static_root/assets/stats-tab-WvF2acoZ.9fdb0106124d.css.br +0 -0
  562. codex/static_root/assets/stats-tab-WvF2acoZ.9fdb0106124d.css.gz +0 -0
  563. codex/static_root/assets/stats-tab-WvF2acoZ.css.br +0 -0
  564. codex/static_root/assets/stats-tab-WvF2acoZ.css.gz +0 -0
  565. codex/static_root/assets/task-tab-DkXh1BGP.42b4bcadbf86.js.br +0 -0
  566. codex/static_root/assets/task-tab-DkXh1BGP.42b4bcadbf86.js.gz +0 -0
  567. codex/static_root/assets/task-tab-DkXh1BGP.js.br +0 -0
  568. codex/static_root/assets/task-tab-DkXh1BGP.js.gz +0 -0
  569. codex/static_root/assets/unauthorized-CsSak07X.c5536d9dae75.css.br +0 -0
  570. codex/static_root/assets/unauthorized-CsSak07X.c5536d9dae75.css.gz +0 -0
  571. codex/static_root/assets/unauthorized-CsSak07X.css.br +0 -0
  572. codex/static_root/assets/unauthorized-CsSak07X.css.gz +0 -0
  573. codex/static_root/assets/unauthorized-DzlsifqK.c3244dbd219a.js +0 -1
  574. codex/static_root/assets/unauthorized-DzlsifqK.c3244dbd219a.js.br +0 -0
  575. codex/static_root/assets/unauthorized-DzlsifqK.c3244dbd219a.js.gz +0 -0
  576. codex/static_root/assets/unauthorized-DzlsifqK.js +0 -1
  577. codex/static_root/assets/unauthorized-DzlsifqK.js.br +0 -0
  578. codex/static_root/assets/unauthorized-DzlsifqK.js.gz +0 -0
  579. codex/static_root/assets/user-tab-Dx51peTz.6cb9636f08c5.js.br +0 -0
  580. codex/static_root/assets/user-tab-Dx51peTz.6cb9636f08c5.js.gz +0 -0
  581. codex/static_root/assets/user-tab-Dx51peTz.js.br +0 -0
  582. codex/static_root/assets/user-tab-Dx51peTz.js.gz +0 -0
  583. codex/static_root/manifest.8decabd0856e.json.br +0 -0
  584. codex/static_root/manifest.8decabd0856e.json.gz +0 -0
  585. {codex-1.7.6.dist-info → codex-1.7.8.dist-info}/LICENSE +0 -0
  586. {codex-1.7.6.dist-info → codex-1.7.8.dist-info}/WHEEL +0 -0
  587. {codex-1.7.6.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/relation-chips-DpbzrZxT.css": "assets/relation-chips-DpbzrZxT.01269a188e01.css", "assets/admin-DEzMkE3K.js": "assets/admin-DEzMkE3K.ea4a65f2f926.js", "assets/datetime-column-BavtvLnf.css": "assets/datetime-column-BavtvLnf.1f3bf499e063.css", "assets/VDivider-CXvbBALe.js": "assets/VDivider-CXvbBALe.aaec2523ab0d.js", "assets/VSelect-BNa4Zji8.js": "assets/VSelect-BNa4Zji8.657caadd0e0c.js", "assets/settings-drawer-dzlMTZa4.js": "assets/settings-drawer-dzlMTZa4.ac894cc11a42.js", "assets/forwardRefs-CPT3PaIR.js": "assets/forwardRefs-CPT3PaIR.e3f89dad5c32.js", "assets/filter-DehKIIGX.js": "assets/filter-DehKIIGX.d4763130e428.js", "assets/datetime-column-BN8MTxGF.js": "assets/datetime-column-BN8MTxGF.06fa87586057.js", "assets/VSelectionControl-Cx6Xy7hY.js": "assets/VSelectionControl-Cx6Xy7hY.5a2c6214fa48.js", "assets/library-tab-CgsXOX_r.css": "assets/library-tab-CgsXOX_r.75baedb7e976.css", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/relation-chips-DbXtJllJ.js": "assets/relation-chips-DbXtJllJ.3aa0c32386e4.js", "assets/forwardRefs-Dyi06MPF.css": "assets/forwardRefs-Dyi06MPF.601ab1fd99b1.css", "assets/VCheckbox-CwHKQJ94.js": "assets/VCheckbox-CwHKQJ94.127ebad87333.js", "assets/browser-w29qvXZC.js": "assets/browser-w29qvXZC.84f4d80ffad1.js", "assets/confirm-dialog-B1ABbGMU.css": "assets/confirm-dialog-B1ABbGMU.9b5915b112c0.css", "assets/VWindowItem-CWBhiE_Y.css": "assets/VWindowItem-CWBhiE_Y.f7fb19752bf3.css", "assets/VDialog-B23zgnQg.js": "assets/VDialog-B23zgnQg.2ad0b1bd166a.js", "assets/pagination-toolbar-BP1ZminG.css": "assets/pagination-toolbar-BP1ZminG.7c284d7371e0.css", "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/stats-tab-Q8naL40Y.js": "assets/stats-tab-Q8naL40Y.eb1bc2a35f87.js", "assets/settings-drawer-DMSsWF8c.css": "assets/settings-drawer-DMSsWF8c.75a6ea969e71.css", "assets/VForm-DxBt30-N.css": "assets/VForm-DxBt30-N.138c0b89b6fc.css", "assets/VWindowItem-B0mrg4ib.js": "assets/VWindowItem-B0mrg4ib.473bca7eca63.js", "assets/ssrBoot-DDdBkZwM.js": "assets/ssrBoot-DDdBkZwM.99c8d24a9abb.js", "assets/VCheckboxBtn-DtWeBQSc.js": "assets/VCheckboxBtn-DtWeBQSc.eb4f0b35df90.js", "assets/main-D2_idFz6.js": "assets/main-D2_idFz6.35b387ef2e6e.js", "assets/http-error-3wet1qit.js": "assets/http-error-3wet1qit.0dfb14591511.js", "assets/reader-D_3ruSqa.css": "assets/reader-D_3ruSqa.2ed32f08e906.css", "assets/VRadioGroup-Dq9Lhxp6.js": "assets/VRadioGroup-Dq9Lhxp6.e8bb88987c19.js", "assets/reader-D4z2bwpd.js": "assets/reader-D4z2bwpd.c99f3a8c05c5.js", "assets/VCombobox-BQHELb_o.css": "assets/VCombobox-BQHELb_o.9f25a34994e2.css", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "assets/group-tab-DHg_7lBM.js": "assets/group-tab-DHg_7lBM.0a71944f81d7.js", "assets/task-tab-DkXh1BGP.js": "assets/task-tab-DkXh1BGP.42b4bcadbf86.js", "assets/unauthorized-CsSak07X.css": "assets/unauthorized-CsSak07X.c5536d9dae75.css", "assets/flag-tab-D-Vm731o.js": "assets/flag-tab-D-Vm731o.de445bf1efd8.js", "assets/VCombobox-C44w_9Tr.js": "assets/VCombobox-C44w_9Tr.e8c0aeaf51bb.js", "assets/copy-to-clipboard-DoUvDJVx.js": "assets/copy-to-clipboard-DoUvDJVx.bec27f144aca.js", "assets/VTable-qFAzmpUV.js": "assets/VTable-qFAzmpUV.238dcd9fe0c9.js", "assets/user-tab-Dx51peTz.js": "assets/user-tab-Dx51peTz.6cb9636f08c5.js", "assets/main-K8cER0IH.css": "assets/main-K8cER0IH.d529e8b3f52a.css", "assets/change-password-dialog-C3iwpm32.js": "assets/change-password-dialog-C3iwpm32.22e54e2544c2.js", "assets/VExpansionPanels-y8aa_9Go.js": "assets/VExpansionPanels-y8aa_9Go.f8eadc657914.js", "assets/browser-gQKq4cjC.css": "assets/browser-gQKq4cjC.3225a1a29760.css", "assets/unauthorized-DzlsifqK.js": "assets/unauthorized-DzlsifqK.c3244dbd219a.js", "assets/VSelect-CP_CVb8s.css": "assets/VSelect-CP_CVb8s.6309f7bf17bb.css", "assets/VRadioGroup-Cp9mZ7cb.css": "assets/VRadioGroup-Cp9mZ7cb.8e3741381961.css", "assets/confirm-dialog-DONZupFF.js": "assets/confirm-dialog-DONZupFF.351a50590157.js", "assets/VDivider-DU47sRrT.css": "assets/VDivider-DU47sRrT.3d2e17799e5c.css", "assets/pagination-toolbar-CO5jadWr.js": "assets/pagination-toolbar-CO5jadWr.5314a10eaf91.js", "assets/VSelectionControl-DPpfgCW2.css": "assets/VSelectionControl-DPpfgCW2.cc18de4e83f6.css", "assets/admin-menu-B3iXsOyy.css": "assets/admin-menu-B3iXsOyy.c13b7df2ff57.css", "assets/admin-menu-R2n0F_fo.js": "assets/admin-menu-R2n0F_fo.c1c4570d9ede.js", "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/pdf-doc-BgNMLC4l.js": "assets/pdf-doc-BgNMLC4l.87fba253596f.js", "assets/VExpansionPanels-RsCANmDP.css": "assets/VExpansionPanels-RsCANmDP.5b17872981df.css", "assets/VDialog-BDaX1tXA.css": "assets/VDialog-BDaX1tXA.c61bfde6cb2a.css", "assets/VCheckbox-CvH8ekHL.css": "assets/VCheckbox-CvH8ekHL.016ed8d222c4.css", "assets/index-B7MTJvsh.js": "assets/index-B7MTJvsh.72d1b5a22643.js", "assets/VTable-BnxSZ_W5.css": "assets/VTable-BnxSZ_W5.c36f0a6a30cf.css", "assets/stats-tab-WvF2acoZ.css": "assets/stats-tab-WvF2acoZ.9fdb0106124d.css", "assets/library-tab-BwNsGaT8.js": "assets/library-tab-BwNsGaT8.ac078d92716c.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/pager-full-pdf-Br7cqXaJ.js": "assets/pager-full-pdf-Br7cqXaJ.6d9ddf768fd7.js", "assets/index-BHXJTQ4V.css": "assets/index-BHXJTQ4V.523d7b3d350f.css", "assets/VForm-moUsJiEX.js": "assets/VForm-moUsJiEX.a1aa6a07978f.js", "assets/admin-settings-button-progress-C9lCWw8k.js": "assets/admin-settings-button-progress-C9lCWw8k.35b197626186.js", "assets/http-error-CODU7jcH.css": "assets/http-error-CODU7jcH.8c13689ae574.css", "assets/admin-BtjKFdWH.js": "assets/admin-BtjKFdWH.835867135730.js", "assets/pdf-doc-B4cGW_Hl.css": "assets/pdf-doc-B4cGW_Hl.b94aac7e3313.css", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.8decabd0856e.json"}, "version": "1.1", "hash": "de3597cc5da0"}
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"}
@@ -1,10 +1,11 @@
1
1
  """Librarian Status."""
2
2
 
3
3
  from enum import Enum
4
- from logging import DEBUG, INFO
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 datetime, now, timedelta
8
9
 
9
10
  from codex.choices.admin import ADMIN_STATUS_TITLES
10
11
  from codex.librarian.notifier.tasks import LIBRARIAN_STATUS_TASK
@@ -66,12 +67,12 @@ class StatusController(LoggerBaseMixin):
66
67
  status = status.value
67
68
  return status
68
69
 
69
- def start(
70
+ def _update(
70
71
  self,
71
72
  status,
72
- notify: bool = True, # noqa: FBT002
73
- preactive: bool = False, # noqa: FBT002
74
- now_pad=0.0,
73
+ notify: bool,
74
+ active: datetime | None = None,
75
+ preactive: datetime | None = None,
75
76
  ):
76
77
  """Start a librarian status."""
77
78
  try:
@@ -79,13 +80,16 @@ class StatusController(LoggerBaseMixin):
79
80
  reason = f"Bad status type: {status.status_type}"
80
81
  raise ValueError(reason) # noqa: TRY301
81
82
  updates = {
82
- "preactive": preactive,
83
83
  "complete": status.complete,
84
84
  "total": status.total,
85
- "active": Now() + now_pad,
86
- "subtitle": status.subtitle,
87
85
  "updated_at": Now(),
88
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
89
93
  LibrarianStatus.objects.filter(status_type=status.status_type).update(
90
94
  **updates
91
95
  )
@@ -94,14 +98,23 @@ class StatusController(LoggerBaseMixin):
94
98
  status.since = time()
95
99
  except Exception:
96
100
  title = ADMIN_STATUS_TITLES[status.status_type]
97
- self.log.exception(f"Start status: {title}")
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())
98
111
 
99
112
  def start_many(self, status_iterable):
100
113
  """Start many librarian statuses."""
101
- now_pad = 0.0 # a little hack to order these things
102
- for status in status_iterable:
103
- self.start(status, notify=False, now_pad=now_pad, preactive=True)
104
- now_pad += 0.1
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)
105
118
  self._enqueue_notifier_task(notify=True)
106
119
 
107
120
  def update(self, status, notify: bool = True): # noqa: FBT002
@@ -109,23 +122,7 @@ class StatusController(LoggerBaseMixin):
109
122
  if time() - status.since < self._UPDATE_DELTA:
110
123
  # noop unless time has expired.
111
124
  return
112
- updates = {
113
- "preactive": False,
114
- "complete": status.complete,
115
- "total": status.total,
116
- "updated_at": Now(),
117
- }
118
- try:
119
- LibrarianStatus.objects.filter(status_type=status.status_type).update(
120
- **updates
121
- )
122
- self._enqueue_notifier_task(notify)
123
- if notify:
124
- self._loggit(INFO, status)
125
- status.since = time()
126
- except Exception as exc:
127
- title = ADMIN_STATUS_TITLES[status.status_type]
128
- self.log.warning(f"Update status {title}: {exc}")
125
+ self._update(status, notify=notify)
129
126
 
130
127
  def finish_many(self, statii, notify: bool = True, until=0.0): # noqa: FBT002
131
128
  """Finish all librarian statuses."""
@@ -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(active__isnull=False).order_by(
121
- "active", "pk"
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
- LOG = get_logger(__name__)
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"} | _COMIC_VALUE_FIELDS_CONFLICTING
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 _PATH_GROUPS
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.alias(
71
- filter_count=Count(full_field, distinct=True)
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
- val = None
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
- _COMIC_VALUE_FIELDS_CONFLICTING,
101
- annotation_prefix=_COMIC_VALUE_FIELDS_CONFLICTING_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 _PATH_GROUPS
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 _COMIC_VALUE_FIELDS_CONFLICTING:
67
+ for field in COMIC_VALUE_FIELDS_CONFLICTING:
76
68
  """Copy conflicting fields over naturral fields."""
77
- conflict_field = _COMIC_VALUE_FIELDS_CONFLICTING_PREFIX + 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
  {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: codex
3
- Version: 1.7.6
3
+ Version: 1.7.8
4
4
  Summary: A comic archive web server.
5
5
  Home-page: https://github.com/ajslater/codex
6
6
  License: GPL-3.0-only